目录
1. 模板下载地址
本人改进后,只有python模板:
https://github.com/baiyang-hub/template_for_zabbix4.2.git
官方模板地址:
https://github.com/zabbix/zabbix-community-repos
该模板是官方推荐的模板
2. 脚本说明
该脚本采用python语言编写,数据收集方式采用外部检查,所为外部检查,简单理解为server将脚本发送到agent端进行执行(个人理解)
该脚本和shell “echo mntr| nc ip port” 实现方式相同,文末会补充shell脚本实现方式(使用shell脚本,需要自己完善模板)
3. 安装
3.1 脚本安装
确保zabbix启动了外部检查
zabbix_server.conf 配置:ExternalScripts=/home/zabbix/externalscripts
修改脚本中ip和端口改为本机ip端口
3.2 导入模板
zabbix 页面上导入zbx_zookeeper_templates.xml 模板,然后新建主机,连接模板即可
图中为redis模板导入方式,zookeeper模板导入方式完全相同
其中 这俩对应的是集群检查,只有在zookeeper为集群,并且在leader节点会有,其他节点禁用掉这俩监控项
4. Shell脚本实现方式
可用监控项有如下,脚本中自己添加,实际内容和python监本监控项完全相同
['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.9 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
[root@mng-sys zabbix_agentd.d]#
5. zookeeper JVM 监控
zookeeper为java编写,所以可以对jvm进行监控,gc 为默认jdk自带gc或者手动指定的gc
zk添加jmx启动参数,IP改成zookeeper自己的IP
-Djava.rmi.server.hostname=本机ip -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=jmx端口
导入zabbix-java 自带的jmx模板即可