zabbix3.4监控zookeeper

zookeeper监控要点系统监控 这个监控linux系统以及修改linux服务器参数即可
内存使用量 ZooKeeper应当完全运行在内存中,不能使用到SWAP。Java Heap大小不能超过可用内存。
Swap使用量 使用Swap会降低ZooKeeper的性能,设置vm.swappiness = 0
网络带宽占用 如果发现ZooKeeper性能降低关注下网络带宽占用情况和丢包情况,通常情况下ZooKeeper是20%写入80%读入
磁盘使用量 ZooKeeper数据目录使用情况需要注意
磁盘I/O ZooKeeper的磁盘写入是异步的,所以不会存在很大的I/O请求,如果ZooKeeper和其他I/O密集型服务公用应该关注下磁盘I/O情况

ZooKeeper监控
zk_avg/min/max_latency 响应一个客户端请求的时间,建议这个时间大于10个Tick就报警 平均延迟/最小延迟/最大延迟
zk_outstanding_requests 排队请求的数量,当ZooKeeper超过了它的处理能力时,这个值会增大,建议设置报警阀值为10 堆积请求数
zk_packets_received 接收到客户端请求的包数量 收包数
zk_packets_sent 发送给客户单的包数量,主要是响应和通知 发包数
zk_max_file_descriptor_count 最大允许打开的文件数,由ulimit控制 最大文件描述符数量
zk_open_file_descriptor_count 打开文件数量,当这个值大于允许值得85%时报警 打开的文件描述符数量
Mode 运行的角色,如果没有加入集群就是standalone,加入集群式follower或者leader
zk_followers leader角色才会有这个输出,集合中follower的个数。正常的值应该是集合成员的数量减1 follower数量
zk_pending_syncs leader角色才会有这个输出,pending syncs的数量 准备同步数
zk_znode_count znodes的数量 znode数量
zk_watch_count watches的数量 watch数量
Java Heap Size ZooKeeper Java进程的


监控脚本

[root@lanzhu-linux-nginx-cn summer]# cat check_zookeeper.sh
#!/bin/bash

function imok {
        echo ruok|nc 127.0.0.1 2181 | wc -l
}

function  zk_min_latency {
        echo mntr | nc 127.0.0.1 2181 | grep "$1" |awk '{print $2}'| awk "NR == 4" 2>/dev/null
}

function  zk_avg_latency {
        echo mntr | nc 127.0.0.1 2181 | grep "$1" |awk '{print $2}'| awk "NR == 2" 2>/dev/null
}

function  zk_max_latency {
        echo mntr | nc 127.0.0.1 2181 | grep "$1" |awk '{print $2}'| awk "NR == 3" 2>/dev/null
}

function  zk_outstanding_requests {
        echo mntr | nc 127.0.0.1 2181 | grep "$1" |awk '{print $2}'| awk "NR == 8" 2>/dev/null
}

function  zk_packets_received {
        echo mntr | nc 127.0.0.1 2181 | grep "$1" |awk '{print $2}'| awk "NR == 5" 2>/dev/null
}

function  zk_packets_sent {
        echo mntr | nc 127.0.0.1 2181 | grep "$1" |awk '{print $2}'| awk "NR == 6" 2>/dev/null
}

function  zk_znode_count {
        echo mntr | nc 127.0.0.1 2181 | grep "$1" |awk '{print $2}'| awk "NR == 10" 2>/dev/null
}

function  zk_watch_count {
        echo mntr | nc 127.0.0.1 2181 | grep "$1" |awk '{print $2}'| awk "NR == 11" 2>/dev/null
}

#excute function
$1

zabbix_agentd.conf配置文件添加

UserParameter=zookeeper.status[*],/alidata/summer/check_zookeeper.sh $1


zabbix-web端添加zookeeper模板见附件



3.4
2018-09-28T08:08:15Z


Templates







{Template App zookeeper:zookeeper.status[imok].last()}<>0
1
{Template App zookeeper:zookeeper.status[imok].diff()}=0
php_39.108.161.17_zookeeper is down
0


0
3

0
0






zookeeper request time
900
200
0.0000
100.0000
1
1
0
1
0
0.0000
0.0000
0
0
0
0


0
0
1A7C11
0
2
0

Template App zookeeper
zookeeper.status[zk_avg_latency]



1
0
F63100
0
2
0

Template App zookeeper
zookeeper.status[zk_max_latency]



2
0
2774A4
0
2
0

Template App zookeeper
zookeeper.status[zk_min_latency]





zookeeper server status
900
200
0.0000
100.0000
1
1
0
1
0
0.0000
0.0000
0
0
0
0


0
0
1A7C11
0
2
0

Template App zookeeper
zookeeper.status[zk_packets_sent]



1
0
F63100
0
2
0

Template App zookeeper
zookeeper.status[zk_watch_count]



2
0
2774A4
0
2
0

Template App zookeeper
zookeeper.status[zk_outstanding_requests]



3
0
A54F10
0
2
0

Template App zookeeper
zookeeper.status[zk_packets_received]



4
0
FC6EA3
0
2
0

Template App zookeeper
zookeeper.status[zk_znode_count]





zookeeper status
900
200
0.0000
100.0000
1
1
0
1
0
0.0000
0.0000
0
0
0
0


0
1
1A7C11
0
2
0

Template App zookeeper
zookeeper.status[imok]