经过zabbix trapper方式监控,以前看到网友们都是经过定时任务进行主动上传数据,可是,zabbix还有另一神器--自动发现,也能达到一样的功能。java
一、准备脚本node
二、安装依赖包git
#Centos6 rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm #Centos7 rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm yum install -y nc yum install -y zabbix-sender
三、实现原理github
echo ruok|nc 127.0.0.1 2181 imok echo mntr|nc 127.0.0.1 2181 zk_version 3.4.6-1569965, built on 02/20/2014 09:09 GMT zk_avg_latency 0 zk_max_latency 6 zk_min_latency 0 zk_packets_received 93114 zk_packets_sent 93113 zk_num_alive_connections 4 zk_outstanding_requests 0 zk_server_state leader zk_znode_count 29 zk_watch_count 0 zk_ephemerals_count 14 zk_approximate_data_size 1087 zk_open_file_descriptor_count 39 zk_max_file_descriptor_count 1000000 zk_followers 4 zk_synced_followers 4 zk_pending_syncs 0 echo srvr|nc 127.0.0.1 2181 Zookeeper version: 3.4.6-1569965, built on 02/20/2014 09:09 GMT Latency min/avg/max: 0/0/6 Received: 93121 Sent: 93120 Connections: 4 Outstanding: 0 Zxid: 0x900000020 Mode: leader Node count: 29
ZooKeeper 经常使用四字命令:web
ZooKeeper 支持某些特定的四字命令字母与其的交互。它们大可能是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息。用户在客户端能够经过 telnet 或 nc 向 ZooKeeper 提交相应的命令服务器
1. 能够经过命令:echo stat|nc 127.0.0.1 2181 输出服务器的详细信息:接收/发送包数量、链接数、模式(leader/follower)、节点总数、延迟。 全部客户端的列表。 2. 使用echo ruok|nc 127.0.0.1 2181 测试服务是否处于正确运行状态。若是正常返回"imok",不然返回空。 3. echo dump| nc 127.0.0.1 2181 ,列出未经处理的会话和临时节点(只在leader上有效)。 4. echo kill | nc 127.0.0.1 2181 ,关掉server 5. echo conf | nc 127.0.0.1 2181 (New in 3.3.0)输出相关服务配置的详细信息。好比端口、zk数据及日志配置路径、最大链接数,session超时时间、serverId等 6. echo cons | nc 127.0.0.1 2181 ,(New in 3.3.0)列出全部链接到这台服务器的客户端链接/会话的详细信息。包括“接受/发送”的包数量、session id 、操做延迟、最后的操做执行等信息。 7. echo envi |nc 127.0.0.1 2181 ,输出关于服务器的环境详细信息(不一样于conf命令),好比host.name、java.version、java.home、user.dir=/data/zookeeper-3.4.6/bin之类信息 8. echo reqs | nc 127.0.0.1 2181 ,列出未经处理的请求。 9. echo wchs | nc 127.0.0.1 2181 ,(New in 3.3.0)列出服务器watches的简洁信息:链接总数、watching节点总数和watches总数 10. echo wchc | nc 127.0.0.1 2181 ,(New in 3.3.0)经过session分组,列出watch的全部节点,它的输出是一个与 watch 相关的会话的节点列表。若是watches数量很大的话,将会产生很大的开销,会影响性能,当心使用。 11. echo wchp | nc 127.0.0.1 2181 ,(New in 3.3.0)经过路径分组,列出全部的 watch 的session id信息。它输出一个与 session相关的路径。若是watches数量很大的话,将会产生很大的开销,会影响性能,当心使用。 12.echo mntr | nc localhost 2181 (New in 3.4.0)列出集群的健康状态。包括“接受/发送”的包数量、操做延迟、当前服务模式(leader/follower)、节点总数、watch总数、临时节点总数。 13.echo srvr | nc localhost 2181 (New in 3.3.0)输出服务器的详细信息。zk版本、接收/发送包数量、链接数、模式(leader/follower)、节点总数。 14.echo crst | nc localhost 2181 (New in 3.3.0)重置当前这台服务器全部链接/会话的统计信息 15.echo srst | nc localhost 2181 重置服务器的统计信息
四、配置agent端session
安装:将脚本zookeeper-monitor-lld.py放置在/etc/zabbix/externalscripts目录下app
配置文件中添加:性能
UserParameter=zookeeper.discovery,python /etc/zabbix/externalscripts/zookeeper-monitor-lld.py all
五、web配置模板(Template App For Zookeeper Traper LLd)
特别注意地方!!!配置发现规则,设置数据发送间隔,很重要!!!
六、应用模板,查看数据
七、设置触发器