此篇文档非常适合初次尝试zabbix监控activemq的同学,很详细(不要嫌弃啰嗦哈)
zabbix自定义监控Activemq
监控mq一下几点:
pending 未读队列 unread
Consumers 消费者
Enqueued 入队列总数
Dequeued 出队列总数 read
1、zabbix没有像mysql一样有模板则需要自己手动编写脚本监控
2、明确好监控项后,我用的 curl 命令监控
首先先给大家熟悉下curl的使用
查看mq所有队列具体信息 (mqIP+访问页面用户名密码+queues.jsp|grep )
curl -s -u admin:admin http://127.0.0.1:8161/admin/queues.jss
陈列出队列简要信息
curl -s -u admin:admin http://127.0.0.1:8161/admin/queues.jsp|grep ''
查看所有的队列信息(包含消费者、入队列数等)
curl -s -u admin:admin http://127.0.0.1:8161/admin/queues.jsp|grep '' -A 4
查看某个队列的(消费者、入队列数、出队列数字)
curl -s -u admin:admin http://127.0.0.1:8161/admin/queues.jsp|grep '' -A 4 |grep 'se-taskresult' -A 4 | sed -n '2p' | egrep -o '[0-9]+'
解:sed -n '2p' p则表示查看哪里的监控数据,表示未读消息队列(想查看消费者则3p 以此类推)
3、在编写脚本前一定要在本地根据实际mq队列运行熟悉以上命令,下面在本地使用脚本测试
#!/bin/sh
username=admin
password=admin
queuename=$1
mytype=$2
case ${mytype} in
"unread")
curl -s -u "$username:$password" "http://127.0.0.1:8161/admin/queues.jsp"|grep "${queuename}" -A 4|sed -n '2p'|egrep -o '[0-9]+';;
"read")
curl -s -u "$username:$password" "http://127.0.0.1:8161/admin/queues.jsp"|grep "${queuename}" -A 4|sed -n '5p'|egrep -o '[0-9]+';;
"consumers")
curl -s -u "$username:$password" "http://127.0.0.1:8161/admin/queues.jsp"|grep "${queuename}" -A 4|sed -n '3p'|egrep -o '[0-9]+';;
"enqueued")
curl -s -u "$username:$password" "http://127.0.0.1:8161/admin/queues.jsp"|grep "${queuename}" -A 4|sed -n '4p'|egrep -o '[0-9]+';;
*) echo "unsupported";;
esac
4、脚本防置路径(我在初次配置后脚本在本地生效,但zabbix-sevrer一直报错因脚本存放位置原因,切记一定要防置到/etc/zabbix/zabbix_agentd.d)
5、测试脚本
(脚本存放位置+队列名称+监控值名称)此处的read是自定义
查看se-taskresult消息队列的未读消息队列
sh /etc/zabbix/zabbix_agentd.d/activemq_monitor.sh se-taskresult unread/
测试脚本无误(此处上面的基本命令就用到啦 哈哈~脚本验证嘛~)
6、zabbix添加监控项
创建模板———此处省略了
在模板上创建监控项
7、在此目录下创建一个.conf文件 用于指定脚本存放路径
vim /etc/zabbix/zabbix_agentd.d/activemq.conf
UserParameter=activemq.monitor[*],sh /etc/zabbix/zabbix_agentd.d/activemq_monitor.sh $1 $2
8、补充点(记得检查zabbix_agentd.conf文件中以下配置是否开启)
Include=/etc/zabbix/zabbix_agentd.d/*.conf
9、创建监控图形
10、查看监控图
以上是zabbix监控activemq全部过程,下一个博客讲解脚本具体细节