目录
将脚本放到/home/zabbix/externalscripts文件夹下,打开脚本,修改如下内容:
1. 模板下载地址
https://github.com/baiyang-hub/template_for_zabbix4.2.git
官方模板地址:
https://github.com/zabbix/zabbix-community-repos
该模板是官方推荐的模板,使用python实现,支持python2,python3应该是不支持
2. 模板说明
- 该模板实际上和shell 命令 “echo mntr| nc ip port“ 实现方式完全相同,如果不方便使用python,可以使用shell版本,本文最后会奉上shell版本的脚本
- 该模板采用的采集方式为【外部检查】,所为外部检查,目前展现出的原理就是zabbix-server端配置脚本,会通过agent,将该脚本发送到agent端进行执行(本人观测)
- 其中 这俩对应的是集群检查,只有在zookeeper为集群,并且在leader节点会有,其他节点禁用掉这俩监控项
3. 安装
确定zabbix_server.conf 开启配置:ExternalScripts=/home/zabbix/externalscripts
将脚本放在这个路径下面即可
3.1 脚本安装
将脚本放到/home/zabbix/externalscripts文件夹下,打开脚本,修改如下内容:
ZookeeperServer = '127.0.0.1' ZookeeperPort = 2181
3.2 导入模板
zabbix 页面上导入zbx_zookeeper_templates.xml 模板,然后新建主机,连接模板即可
4. 模板shell版本
下面是本人改动后脚本,如果使用shell请自定义模板
可以grep监控到的内容包括下面这些
['zk_version','zk_avg_latency','zk_max_latency','zk_min_latency','zk_packets_received','zk_packets_sent','zk_num_alive_connections','zk_outstanding_requests','zk_server_state','zk_znode_count','zk_watch_count','zk_ephemerals_count','zk_approximate_data_size','zk_open_file_descriptor_count','zk_max_file_descriptor_count','zk_followers','zk_synced_followers','zk_pending_syncs']
[root@mng-sys zabbix_agentd.d]# more zookeeper.*
::::::::::::::
zookeeper.conf
::::::::::::::
UserParameter=zookeeper[*],/etc/zabbix/zabbix_agentd.d/zookeeper.sh $1
::::::::::::::
zookeeper.sh
::::::::::::::
#!/bin/bash
#这个地址就随便配置一个集群地址就行
LEADER_ADDR="10.0.0.99 2181"
case $1 in
Connections)
echo srvr | nc ${LEADER_ADDR} | grep Connections | awk '{print $2}'
;;
sync)
All_node_num=`echo mntr| nc ${LEADER_ADDR} | grep zk_followers | awk '{print $2}'`
sync_node_num=`echo mntr| nc ${LEADER_ADDR} | grep zk_synced_followers| awk '{print $2}'`
pending_syncs=`echo mntr| nc ${LEADER_ADDR} | grep zk_pending_syncs | awk '{print $2}'`
if [ $All_node_num == $sync_node_num ];then
echo 0
else
echo $pending_syncs
fi
;;
*|help)
echo '
使用下面参数
Concurrent : zk连接数
注:改参数只有在集群环境生效,非集群环境sync无数据
sync : 同步状态,0表示同步正常,非0表示还有多个节点等待同步
'
;;
esac
5. zookeeper JVM 监控
zk添加jmx启动参数,IP改成zookeeper自己的IP
-Djava.rmi.server.hostname=192.168.151.19 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=22181
然后在页面添加zabbix-java的模板进行监控即可