zoukankan      html  css  js  c++  java
  • 利用zabbix监控RocketMQ

    根据需求,监控三个指标:MQ进程、自定义监控项订阅组的未消费值Diff Total和TPS。

    创建MQ 状态的监控模板,进程监控利用zabbix自带的模板;

    监控订阅组的Diff Total和TPS

    因为每个Nameserver的订阅组可能会实时改变,所以采用自动发现的方式获取所有的订阅组信息。再根据nameserver 和订阅组获取其Diff Total和TPS。

    步骤:

    编写订阅组自动发现和自定义监控项的脚本。

    #!/bin/bash
    GroupInfo=`sh /opt/rocketmq/incubator-rocketmq-rocketmq-all-4.1.0-incubating/distribution/target/apache-rocketmq/bin/mqadmin consumerProgress -n "ip:port;ip:port;ip:port" 2>/dev/null`
    #echo "$GroupInfo"
    GroupName=`echo "$GroupInfo"|grep -v "#Group"|awk '{print $1}'`
    subgroup_discovery () {
    COUNT=`echo "$GroupName" |wc -l`
    INDEX=0
    echo '{"data":['
    echo "$GroupName" | while read LINE; do
        echo -n '{"{#GROUPNAME}":"'$LINE'"}'
        INDEX=`expr $INDEX + 1`
        if [ $INDEX -lt $COUNT ]; then
            echo ','
        fi
    done
    echo ']}'
    }
    
    
    diffandtps () {
    GroupConsume=`echo "$GroupInfo"|grep -w $1`
    #echo $GroupConsume
    if [[ $2 == "TPS" ]]; then
    echo $GroupConsume|awk '{print $(NF-1)}'
    #echo "TPS"
    elif [[ $2 == "diff" ]];then
    echo $GroupConsume|awk '{print $NF}'
    fi
    }
    
    
    case "$1" in
    subgroup_discovery)
     subgroup_discovery
    ;;
    diffandtps)
      diffandtps $2 $3
    ;;
    *)
    echo "Usage:$0"
    ;;
    esac
    

    根据nameserver实时获取所有的订阅组信息。

    命令为MQ自带的mqadmin:

    sh mqadmin consumerProgress -n ip:port
    

     

    根据订阅组名称获取其Diff Total 和TPS。

    修改配置文件,重启zabbix agent。在zabbix/conf/zabbix_agentd.conf中添加如下信息:

    Timeout=30

    UnsafeUserParameters=1

    UserParameter=mq.subgroup.discovery,/opt/zabbix/mq_status.sh subgroup_discovery

    UserParameter=mq.subgroup.diff[*],/opt/zabbix/mq_status.sh diffandtps $1 diff

    UserParameter=mq.subgroup.tps[*],/opt/zabbix/mq_status.sh diffandtps $1 TPS

    注意:mqadmin命令执行时有一定的时长,所以设置Timeout=30,否则会报错。

    配置文件改好后重启agent生效。

    在zabbix web端创建自动发现规则

    配置文件的自动发现项名称为键值

    zabbix web端的自动发现规则里面创建监控项原型

    此处监控两个指标,需要两个监控项

    Diff Total监控:

    因为可能存在复值,所以信息类型选择浮点数

    TPS监控:

    在检测中-最新数据-主机中查看是否出现预期的数据。

  • 相关阅读:
    dell服务器 bios界面
    windows server 常用功能(一)
    Windows server 2016 / Windows 10关于域管理员帐号权限不足的问题
    (转)Java并发编程:并发容器之CopyOnWriteArrayList
    (转)ThreadLocal
    (转)java volatile关键字
    (转)java fail-fast机制
    (转)java并发对象锁、类锁、私有锁
    (转)java synchronised关键字
    javascript array
  • 原文地址:https://www.cnblogs.com/gy99/p/11763365.html
Copyright © 2011-2022 走看看