一直在弄监控,这些个中间件Zookeeper、Kafka......,平时也只知道一点皮毛,也就搭建部署过,没有真正的用过,一般都是大数据的同学在用,作为运维人员我需要对他做一个监控,由于对他不是知根知底,监控哪些指标就真的是一个大头了。经过不断的在网上搜集,看别人是怎么做的,做了以下一个基本的监控。

一、效果图

 

zabbix自定义脚本监控docker zabbix监控zookeeper_zookeeper

 

zabbix自定义脚本监控docker zabbix监控zookeeper_zabbix自定义脚本监控docker_02

二、指标

监控最重要的就是数据,一切皆数据,有了数据想怎么监控就怎么监控。那么哪些数据是重要的?这些数据怎么获取?监控指标尤其重要。

 

Zookeeper的监控指标(通过网上收集,等实际情况中遇到了特殊的,再补充)

 

zabbix自定义脚本监控docker zabbix监控zookeeper_zookeeper_03

 

三、实现

实现这些监控指标我是通过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

 

zabbix自定义脚本监控docker zabbix监控zookeeper_服务器_04

t。

 

四、添加到Zabbix

在Zabbix上导入模板,把上面的Zookeeper_template.xml文件导入,然后把模板连接到Zookeeper服务器上

 

zabbix自定义脚本监控docker zabbix监控zookeeper_zabbix自定义脚本监控docker_05

 

 

可以看到监控项有:

 

zabbix自定义脚本监控docker zabbix监控zookeeper_服务器_06

 

 

触发器:

 

zabbix自定义脚本监控docker zabbix监控zookeeper_zabbix自定义脚本监控docker_07

 

五、注意事项

在做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时,不能只使用监控端口存不存在,得通过状态监控才能真正的知道是否正常

 

六、总结

量变产生质变这句话是有道理的,知识面见识也是一个很大的问题,一直在收集收集监控指标,但是就是不知道哪一些是重要的,看再多,查再多,还是要动手做起来才行。

 

上面的监控只是很基础的一部分,记录下来,一是对自己心路历程的一个总结,而是完成了一件小事情,有结果的完成了会有一点点成就感,会增加自己的信心。