参考官方的Kubernetes cluster state by HTTP下的【Kubernetes: Namespace [{#NAMESPACE}] Deployment [{#NAME}]: Replicas available】item创建了一个名为"deploys item"的监控项用于收集每个delpoyment的有效实例。创建好“deploys item"后,给每个deployment都定义了一个item并在master item处填写"deploys item"进行继承。并给每个deployment item添加了对应的trigger。随后把上述的所有item和trigger都放到了一个名为"k8s deploy template"的模板里,并在每个worker node里添加引用该模板。每个worker node的宏值都设置成一样。在测试过程中发现如下干问题:
前置条件:uat环境和prd环境都各有3台master node和7台worker node,uat和prd的主机都设置了使用proxy(Monitored by proxy)。
1 在uat环境测试,发现7台主机中,只有3台主机能正常采集到数据。剩余4台提示“Cannot get kube-state-metrics endpoints from Kubernetes API"。
2 在prd环境测试,发现7台主机都无法采集到数据。信息提示Preprocessing failed for: {"error":"Error: cannot get URL: Timeout was reached."}。把worker node任意一台主机的Monitored by proxy设置为no之后,能顺利采集到数据。但是过一小段时间主机会自动恢复为使用代理并且信息又提示Preprocessing failed for: {"error":"Error: cannot get URL: Timeout was reached."},主机重新变为无法采集数据的状态。
zabbix可参考资料甚少,相关解疑答惑的帖子更是少得可怜。已经被该问题卡住了1个多星期。哪位同仁能帮忙解答下,感激不尽。