1.编写脚本zabbix_monitor_amq.sh,内容如下
#!/bin/sh
#Description: get activemq queue info
IP=192.168.xxx.xxx
PORT=8161
QUEUENAME=$1
Warn_Pending=`curl -s -uadmin:admin http://$IP:$PORT/admin/queues.jsp | grep -A 5 "${WARN_Queuename}</a></td>"|awk -F '<' '{print $2}'|sed 's/td>//g'|grep '^[0-9]'|head -1`
Pending=`curl -s -uadmin:admin http://$IP:$PORT/admin/queues.jsp | grep -A 5 "${QUEUENAME}</a></td>"|awk -F '<' '{print $2}'|sed 's/td>//g'|grep '^[0-9]'|head -1`
Consumers=`curl -s -uadmin:admin http://$IP:$PORT/admin/queues.jsp | grep -A 5 "${QUEUENAME}</a></td>"|awk -F '<' '{print $2}'|sed 's/td>//g'|grep '^[0-9]'|head -2|tail -1`
Enqueued=`curl -s -uadmin:admin http://$IP:$PORT/admin/queues.jsp | grep -A 5 "${QUEUENAME}</a></td>"|awk -F '<' '{print $2}'|sed 's/td>//g'|grep '^[0-9]'|head -3|tail -1`
Dequeued=`curl -s -uadmin:admin http://$IP:$PORT/admin/queues.jsp | grep -A 5 "${QUEUENAME}</a></td>"|awk -F '<' '{print $2}'|sed 's/td>//g'|grep '^[0-9]'|head -3|tail -1`
case $2 in
Warn_Pending|Warn_Pending)
echo "$Warn_Pending"
;;
Pending|pending)
echo "$Pending"
;;
Consumers|consumers)
echo $Consumers
;;
Enqueued|enqueued)
echo $Enqueued
;;
Dequeued|dequeued)
echo $Dequeued
;;
*)
echo "Usage: $0 QueueName Pending|Consumers|Enqueued|Dequeued|Warn_Pending"
esac
#注意脚本的返回必须为只有一个数字
2.将脚本放置于zabbix对应的脚本目录下
3.在zabbix_agentd.conf中添加自定义监控项
UserParameter=amq[*],/usr/local/zabbix/shell/zabbix_monitor_amq.sh $1 $2
4.重启zabbix_agent
5.测试
在zabbix的server端运行
zabbix_get -s 192.168.1.26 -p 10050 -k “amq[queueName,enqueued]”
注意 -s后的地址要和zabbix_agentd.conf中的server地址对应否则可能会报错。
6.在zabbix页面中添加相应监控项及触发器即可