公司业务使用activemq5.9.1消息队列,由于队列阻塞导致程序端口无响应,并且telnet无法连通。经过over 1 hour的排查,最终定位原因activemq导致。遂写了一个监控activemq队列信息的脚本。

一、脚本部分

1.脚本内容,如下:

[root@localhost ~]# cat activemqqueue.sh 
#!/bin/bash
#author:xkops
#define common info
HOST=10.44.144.92
PORT=
USER=admin
PASSWORD=admin #obtain queue's Pending,Consumers,Enqueued,Dequeued
function Queue()
{
Count=$(curl -u"$USER":"$PASSWORD" http://$HOST:$PORT/admin/queues.jsp 2> /dev/null |grep -A 5 "^$1"|grep -oP '\d+');
#echo $Count
Pending=$(echo $Count |awk '{print $1}');
#echo $Count
Consumers=$(echo $Count |awk '{print $2}');
Enqueued=$(echo $Count |awk '{print $3}');
Dequeued=$(echo $Count |awk '{print $4}');
#EndeltaDn=$(($Enqueued - $Dequeued))
#echo '-------------'
#echo -e "$Pending\n$Consumers\n$Enqueued\n$Dequeued";
#echo "$2"
if [ "$2" = '' ];then
exit
fi
if [ "$2" = 'Pending' ];then
echo $Pending
elif [ "$2" = 'Consumers' ];then
echo $Consumers
elif [ "$2" = 'Enqueued' ];then
echo $Enqueued
#elif [ "$2" = 'EndeltaDn' ];then
# echo $EndeltaDn
else
echo $Dequeued
fi
} #call function and input queue_name queue_type
Queue $ $

2.测试执行脚本,需要传入2个参数,其中一个是对列名称,一个是队列类型(如Pending,Consumers,Enqueued,Dnqueued)

[root@localhost ~]# bash activemqqueue.sh message.push Consumers
32

二、zabbix监控部分

1.编辑配置文件

[root@localhost ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_activemqqueue.conf
# monitor tomcat process and port
UserParameter=tomcatamqqueue[*],/etc/scripts/activemqqueue.sh $ $

2.创建zabbix模板,并传递相应的队列名称和队列类型。根据下图依次创建自己的item。

3.创建展示Pending,Consumers,Enqueued,Dequeued等图表。

4.触发报警,当Pending的值大于某一个值时报警,比如1000。

5.邮件发送。

zabbix监控activemq队列脚本的更多相关文章

  1. zabbix监控服务部署脚本

    搭建平台脚本: #!/bin/bash #zabbix监控服务部署 #脚本使用前提:yum搭建,nginx-1.12.2源码包,zabbix-3.4.4源码包,要求源码包尽量在单一目录下,最好在默认管 ...

  2. zabbix监控rabbitmq队列消费状态

    使用rabbitmqctl 管理 mq -n 指定节点 [root@logging-master zabbix]# rabbitmqctl -n rabbit@localhost list_queue ...

  3. Zabbix监控ActiveMQ

    当我们在线上使用了ActiveMQ 后,我们需要对一些参数进行监控,比如 消息是否有阻塞,哪个消息队列阻塞了,总的消息数是多少等等.下面我们就通过 Zabbix 结合 Python 脚本来实现对 Ac ...

  4. zabbix 监控redis python3脚本

    一:安装redis-python模块 wge  thttps://pypi.python.org/packages/source/r/redis/redis-2.9.1.tar.gz tar xf r ...

  5. 解决mysql5.6+在zabbix监控中执行脚本出现密码的错误问题

    1.mysql命令行中授权mysql监控所需的账号和密码(权限select权限即可) 2.通过mysql_config_editor 配置登录问题: [root@back_zabbix_100 scr ...

  6. zabbix 监控 AWS-SQS 队列

    zabbix-AWS_SQS-monitor AWS SQS status monitor with zabbix zabbix通过 AWS 云 api 自动发现.监控 AWS-SQS 本版本数据的图 ...

  7. 使用Zabbix监控ZooKeeper服务的健康状态

    一 应用场景描述 在目前公司的业务中,没有太多使用ZooKeeper作为协同服务的场景.但是我们将使用Codis作为Redis的集群部署方案,Codis依赖ZooKeeper来存储配置信息.所以做好Z ...

  8. zabbix 自定义脚本监控activemq

    1. 编写获取activemq队列积压消息(check-amq.sh) #!/bin/bash QUEUENAME=$ MQ_IP='172.16.1.56' curl -uadmin:admin h ...

  9. zabbix监控系统_监控收集脚本使用分享

    性能测试总是要监控服务器,做了zabbix监控之后,重要收集监控数据,这里分享下我是怎么做的.  准备文件 python2.7 pypa-setuptools.tar.gz  -p  -path /h ...

随机推荐

  1. Java实现FTP上传下载功能

    Java FTP客户端工具包很多,在此我选用的Apache的FTPClient.这个包的获取可以通过http://commons.apache.org/net/来获取,我使用的是最新的commons- ...

  2. WPF 中Frame + Page 的使用

    1 在window 的设计的时候 ,中间需要进行页面切换的时候,顶一个Frame <Frame Name="MainPage"  NavigationUIVisibility ...

  3. CKEditor的使用-编辑文本

    官网下载以及演示:http://ckeditor.com/ 引入js <script src="/Example6/ckeditor/ckeditor.js">< ...

  4. SVN 树冲突的解决方法(Ubuntu 环境)

    今天在 服务器上(Ubuntu) svn up 更新的时候,出现了 SVN 树冲突 root@futongdai:~# cd /home/wwwroot/newcrm.ofim.com/ root@f ...

  5. directX学习系列8 颜色融合(转)

    1, Multipass(多通道)    将一个任务划分成几个阶段,由多个pass处理不同阶段,后续pass总是处理前一个pass的结果.例如复杂的光照方程可以分成几个pass来计算.    用不同的 ...

  6. 如何用Apache TCPMon来截获SOAP消息

    在WebService服务器和客户机之间会传递SOAP消息,有时我们需要得到这些消息以便调试,而Apache的TCPMon可以帮助我们做到这一点.  TCPMon的下载地址在http://ws.apa ...

  7. LR中的C语言问题

    今天在调试LR的脚本(C)时遇到了几个甚是头痛得问题,下面简单总结下: 1.首先LR中的C编译器遵循C90标准,规定在一个函数中,变量定义必须放在所有的执行语句之前!一旦在运行语句之间再有定义的话,会 ...

  8. Environment Variables

    https://msdn.microsoft.com/en-us/library/windows/desktop/ms682653(v=vs.85).aspx Every process has an ...

  9. apex-utility-ai-unity-survival-shooter

    The AI has the following actions available: Action Function Shoot Fires the Kalashnikov Reload Reloa ...

  10. java Channel filp compact

    import java.nio.ByteBuffer; //Listing 7-1. Copying Bytes from an Input Channel to an Output Channel ...