一直在弄监控,这些个中间件Zookeeper、Kafka......,平时也只知道一点皮毛,也就搭建部署过,没有真正的用过,一般都是大数据的同学在用,作为运维人员我需要对他做一个监控,由于对他不是知根知底,监控哪些指标就真的是一个大头了。经过不断的在网上搜集,看别人是怎么做的,做了以下一个基本的监控。
一、效果图
二、指标
监控最重要的就是数据,一切皆数据,有了数据想怎么监控就怎么监控。那么哪些数据是重要的?这些数据怎么获取?监控指标尤其重要。
Zookeeper的监控指标(通过网上收集,等实际情况中遇到了特殊的,再补充)
三、实现
实现这些监控指标我是通过Zabbix的自定义脚本实现的,脚本地址:https://github.com/Lemon-le/Zookeeper-Monitor-Zabbix
使用的是Zookeeper的四字命令获取相关的指标,把zookeeper_mntr.sh和zookeeper_ruok.sh两个脚本分别放在有Zookeeper服务的机器上,我的路径为:/etc/zabbix/zabbix_agentd.d/shell-script目录下,把zookeeper.conf放在/etc/zabbix/zabbix_agentd.d/目录下,然后重启Zookeeper服务器上的zabbix-agent
t。
四、添加到Zabbix
在Zabbix上导入模板,把上面的Zookeeper_template.xml文件导入,然后把模板连接到Zookeeper服务器上
可以看到监控项有:
触发器:
五、注意事项
在做Zookeeper监控的时候,发现如下问题,使用ps查看zookeeper进程是存在的,端口也是存在的,但是他的状态是错误的,使用四字命令也是错的
[root@ip-10-10-1-2 bin]# ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /data/zookeeper-3.4.13/bin/../conf/zoo.cfg Error contacting service. It is probably not running.
上面的错误通过排查是Zookeeper的2888,和3888端口安全组没打开,但是不知道为什么只有一台报错,有两台选举出了leader与follower
[root@ip-172-30-36-157 bin]# echo mntr|nc 10.10.1.2 2181 This ZooKeeper instance is not currently serving requests
注:监控Zookeeper时,不能只使用监控端口存不存在,得通过状态监控才能真正的知道是否正常
六、总结
量变产生质变这句话是有道理的,知识面见识也是一个很大的问题,一直在收集收集监控指标,但是就是不知道哪一些是重要的,看再多,查再多,还是要动手做起来才行。
上面的监控只是很基础的一部分,记录下来,一是对自己心路历程的一个总结,而是完成了一件小事情,有结果的完成了会有一点点成就感,会增加自己的信心。