博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zabbix监控activemq队列脚本
阅读量:7286 次
发布时间:2019-06-30

本文共 1648 字,大约阅读时间需要 5 分钟。

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

 

一、脚本部分

1.脚本内容,如下:

[root@localhost ~]# cat activemqqueue.sh  #!/bin/bash#author:xkops#define common infoHOST=10.44.144.92PORT=8161USER=adminPASSWORD=admin#obtain queue's Pending,Consumers,Enqueued,Dequeuedfunction 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_typeQueue $1 $2

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 portUserParameter=tomcatamqqueue[*],/etc/scripts/activemqqueue.sh $1 $2

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

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

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

5.邮件发送。

 

转载于:https://www.cnblogs.com/xkops/p/5591983.html

你可能感兴趣的文章
Yii2页面缓存详解
查看>>
ECMAScript正则表达式6个最新特性
查看>>
android Studio 快捷键
查看>>
MySQL Explain
查看>>
Java NIO
查看>>
1、图片水印 之 一
查看>>
分布式锁
查看>>
使用proxychains-ng代理转发终端命令
查看>>
mysql初始化错误
查看>>
shell中的函数,shell中的数组,告警系统需求分析
查看>>
df命令 、du命令 、磁盘分区
查看>>
Java并发编程:CountDownLatch、CyclicBarrier和 Semaphore
查看>>
使用JDK自带的jmap和jhat监控处于运行状态的Java进程
查看>>
App怎么免费接入聚合支付SDK?
查看>>
什么是TensorFlow?
查看>>
Web3与智能合约交互实战(附代码)
查看>>
选择日期:年月日时分秒 插件
查看>>
从零到有的突破:BCH爱好者聚集地BCH.Club公测上线
查看>>
自建容器映像登录也行?Quay整合多种进阶功能
查看>>
如何快速打造一款高清又极速的短视频APP?
查看>>