zoukankan      html  css  js  c++  java
  • Zabbix监控Zookeeper健康状况

    非原创内容,转自眄眄的闺蜜

    首先最简单的是监听服务端口,在zabbix界面直接添加监控项
    item:
    zookeeper.status
    key:
    net.tcp.listen[2181]
     
    ZooKeeper监控要点:
     

    内存使用量    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情况

    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

    zk_pending_syncs       leader角色才会有这个输出,pending syncs的数量

    zk_znode_count         znodes的数量

    zk_watch_count         watches的数量

    Java Heap Size         ZooKeeper Java进程的
     
    在服务器端我们可以通过命令查看这些项目:
     
    [root@localhost ~]# echo ruok|nc 127.0.0.1 2181
    imok
     
    [root@localhost ~]# 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    1364
    zk_min_latency    0
    zk_packets_received    184218311
    zk_packets_sent    184995960
    zk_num_alive_connections    33
    zk_outstanding_requests    0
    zk_server_state    leader
    zk_znode_count    821128
    zk_watch_count    2346
    zk_ephemerals_count    47
    zk_approximate_data_size    62155934
    zk_open_file_descriptor_count    62
    zk_max_file_descriptor_count    4096
    zk_followers    2
    zk_synced_followers    2
    zk_pending_syncs    0
     
    [root@localhost ~]# 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/1364
    Received: 184218603
    Sent: 184996253
    Connections: 33
    Outstanding: 0
    Zxid: 0x40d1a259a
    Mode: leader
    Node count: 821136
     
    接下来就是写一个监控脚本来输出这些参数的具体情况:
    cd /usr/local/zabbxi/share/script/
    vi zookeeper_check1.sh
     
    #!/bin/bash
    echo mntr | nc 127.0.0.1 2181 | grep "$1" |awk '{print $2}'
     
    vi zookeeper_check2.sh
     
    #!/bin/bash
    echo srvr|nc 127.0.0.1 2181 | grep "$1" |awk '{print $2}'
     
    zabbix-agentd.comf里面加入key:
    vi /usr/local/zabbix/etc/zabbix_agentd.conf
     
    UserParameter=zookeeper1[*],/bin/sh /usr/local/zabbix/share/script/zookeeper_check1.sh $1
    UserParameter=zookeeper2[*],/bin/sh /usr/local/zabbix/share/script/zookeeper_check2.sh $1
     
    重启zabbix客户端
     
    然后在zabbix界面添加监控项
     
    ------------------------------------------------------------------------------------------------
    ztwl配置实例:
     
    复制代码
    #!/bin/bash
    zk=`echo ruok|nc 127.0.0.1 2181`
    if [[ "$zk" == "imok" ]] ; then
        echo 1
    else
        echo 0
    fi
    复制代码

    UserParameter=zookeeper.status,/bin/sh /etc/zabbix/zookeeper_check.sh

  • 相关阅读:
    堆和栈的差别(转过无数次的文章)
    【java】Windows7 下设置环境变量
    很好的理解遗传算法的样例
    Flex里的特效
    Spring3.0 AOP 具体解释
    send,recv,sendto,recvfrom
    协方差矩阵, 相关系数矩阵
    解决Shockwave flash在chrome浏览器上崩溃的问题
    杂记之activity之间的跳转
    DropdownList绑定的两种方法
  • 原文地址:https://www.cnblogs.com/hh2737/p/8257419.html
Copyright © 2011-2022 走看看