美文网首页
zabbix通过http API监控RabbitMQ指定队列速率

zabbix通过http API监控RabbitMQ指定队列速率

作者: 阿乐_822e | 来源:发表于2021-07-27 16:40 被阅读0次

    队列所在vhost: /abc
    队列名称: abc-def
    rabbitmq访问帐号:admin / admin
    rabbitmq httpapi地址:192.168.0.114:15672
    zabbix安装目录: /usr/local/zabbix-agent
    需求:查询指定队列的访问速率

    1、编写脚本文件

    $ cd  /usr/local/zabbix-agent/scripts
    $ vi  check_queue_rate.sh
    #!/bin/bash
    curl -s 'http://admin:admin@192.168.0.114:15672/api/queues/%2fabc/abc-def?columns=backing_queue_status' | sed 's/,/\n/g' | grep avg_ingress_rate | head -1 | sed 's/:/\n/g'| sed 1d | cut -c1-4
    $ chmod +x *.sh
    $ chown zabbix.zabbix *.sh
    

    脚本文件说明:

    1. vhost以斜杠“/"打头,要使用“%2f"转义;
    2. curl命令使用-s参数,不输出回应的头部信息;
    3. curl命令会返回json字符串,要对它进行解析;
    4. sed 's/,/\n/g' 将返回json字符串中逗号替换为换行,将信息分行,以便截取;
    5. sed 1d 将返回的信息删除第一行标题(“avg_ingress_rate”)
    6. cut -c1-4  取返回速率的左4位(含小数点)

    2、添加自定义监控项

    $ cd  /usr/local/zabbix-agent/conf
    $ vi zabbix_agentd.conf   #添加一行
    userParameter=rabbitmq.mq.checkqueuerate[*],/usr/local/zabbix-agent/scripts/check_queue_rate.sh
    

    3、重启zabbix-agent服务

    4、添加自定义监控项

    登陆zabbix web页面,添加自定义监控项,键值使用,rabbitmq.mq.checkqueuerate[*],信息类型为浮点数,单位为b/s

    5、添加触发器(略)

    说明:如果要监控多个队列,可以改造一下脚本,接收2个传入参数(vhost名称与队列名称),再拼装一下url

    相关文章

      网友评论

          本文标题:zabbix通过http API监控RabbitMQ指定队列速率

          本文链接:https://www.haomeiwen.com/subject/heeomltx.html