锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. zabbix
  3. zabbix监控rabbitmq消息队列服务

zabbix监控rabbitmq消息队列服务

0
  • zabbix
  • 发布于 2024-12-16
  • 11 次阅读
黄健
黄健

点击蓝字 关注我们

1、脚本文件

cat rabbitmq_queues.sh

!/bin/bash

source /etc/profile

rabbitmqctl list_connections name state \|grep -Ev 'List\|name' >/tmp/rabbitmq_connections.txt

cat zabbix_rabbitmq.sh

!/bin/bash

RMQ_COMMAND=$1

QUEUE=$2

rabbitmq进程

function rabbitmq_process {

ps -ef \|grep rabbitmq \|grep -v grep \|wc -l

}

rabbitmq健康检查

function health_check {

rabbitmqctl node_health_check 2>\&1 \|grep “Health check passed” 2>\&1 >/dev/null

if [ $? -ne 0 ];then

echo “1”

else

echo “0”

fi

}

case $RMQ_COMMAND in

check_process)

rabbitmq_process ;;

check_health)

health_check ;;

*)

echo -e “Usage: $0 [check_process\|check_health] "

esac

cat mq_stat_discovery.sh

!/bin/bash

===============================================================================

MAIN SCRIPT

===============================================================================

echo “{”

echo '“data”:['

echo “{”

echo '““:“Rabbit_MQ”'

echo “}”

echo “]”

echo “}”

cat rabbitmq_discovery.sh

!/bin/bash

===============================================================================

MAIN SCRIPT

===============================================================================

AGENTD_BIN为脚本存放路径

AGENTD_BIN=“/scripts”

cd “${AGENTD_BIN}”

for queue_name in $(sudo rabbitmqctl -q list_queues -p apollo_vhost \| sed -n '2,$p' \|awk '{print $1}')

do

queue_list=“$queue_list,“'{““:“'${queue_name}'“}'

done

echo '{“data”:['${queue_list#,}']}'

cat rabbitmq_queues_num.sh #该脚本host_name要修改为服务器主机名称

!/bin/bash

===============================================================================

MAIN SCRIPT

===============================================================================

AGENTD_BIN为脚本存放路径

zabbix安装目录

host_name zabbix配制文件中的主机名

AGENTD_BIN=“/scripts”

AGENTD_HOME=“/etc/zabbix”

host_name=“cache_test_150.39”

cd “${AGENTD_BIN}”

queue_file=${AGENTD_HOME}“/queue_list.txt”

if [ -f “$queue_file” ]; then

sudo chown zabbix.zabbix $queue_file

>$queue_file

else

sudo touch $AGENTD_HOME/queue_list.txt

sudo chown zabbix.zabbix $queue_file

fi

AGENTD_CONF=“${AGENTD_HOME}““/zabbix_agentd.conf”

sudo rabbitmqctl -q list_queues -p apollo_vhost \| sed -n '2,$p' \|awk '{print “\“'$host_name'\““” rabbit.queue.num[“$1”] “$2}' >>${queue_file}

zabbix_sender -c ${AGENTD_CONF} -v -i ${queue_file}

上传以下文件到/scripts目录下

zabbix-get-4.0.27-1.el7.x86_64.rpm

zabbix-sender-4.0.26-1.el7.x86_64.rpm

然后赋权:

chmod 755 rabbitmq_queues.sh

chmod 755 zabbix_rabbitmq.sh

chmod 755 mq_stat_discovery.sh

chmod 755 rabbitmq_discovery.sh

chmod 755 rabbitmq_queues_num.sh

chown zabbix.zabbix mq_stat_discovery.sh

chown zabbix.zabbix rabbitmq_discovery.sh

chown zabbix.zabbix rabbitmq_queues_num.sh

安装依赖包:

rpm -ivh zabbix-get-4.0.27-1.el7.x86_64.rpm

rpm -ivh zabbix-sender-4.0.26-1.el7.x86_64.rpm

2、zabbix_agentd 配置文件增加用户参数

vi /etc/zabbix/zabbix_agentd.conf

UserParameter=rabbitmq[*],/scripts/zabbix_rabbitmq.sh “$1”

UserParameter=rabbitmq.connections,cat /tmp/rabbitmq_connections.txt \|wc -l

UserParameter=rabbitmq.queue.discovery[*],“/scripts/rabbitmq_discovery.sh”

UserParameter=rabbitmq.get.stat_num[*],“/scripts/rabbitmq_queues_num.sh”

UserParameter=rabbitmq.stat.discovery[*],“/scripts/mq_stat_discovery.sh”

3、添加脚本定时任务

crontab -e

*/1 * * * * bash /scripts/rabbitmq_queues.sh

4、编辑sudo权限

visudo

在root ALL=(ALL) ALL下面加上下面两行

zabbix ALL=(ALL) NOPASSWD: ALL

Defaults:zabbix !requiretty

5、重启 zabbix_agent

systemctl restart zabbix-agent

6、自定义模板

zabbix服务端web页面设置

l创建模板

lTemplate RabbitMQ for Linux

l创建宏

l宏:{$MQ_QUEUE_NUM_ALARM__THRESHOLD} 值:1000

l创建自动发现规则1

l名称: Rabbitmq Queue

l类型: zabbix 客户端(主动式)

l键值: rabbitmq.queue.discovery

l创建【监控项原型】

l名称: [] current_num

l类型: zabbix 采集器

l键值: rabbit.queue.num[]

l信息类型: 数字(无正负)

注:如果这里推送不到据,需要在允许主机这里加白名单

l创建自动发现规则2(按上面的操作方法)

l名称: Rabbitmq.stat.discovery

l类型: zabbix 客户端(主动式)

l键值: rabbitmq.stat.discovery

l创建监控项原型(按上面的操作方法)

l名称: [] rabbit.get.stat_num

l类型: zabbix 客户端(主动式)

l键值: rabbitmq.get.stat_num[]

l创建触发器

l在【Rabbitmq Queue】 自动发现规则下创建

l名称: 队列【】 当前未消费消息数量过多

l严重度: 警告

l表 达 式 : {Template RabbitMQ for Linux:rabbit.queue.num[].last()}>{$MQ_QUEUE_NUM_ALARM__THRESHOLD}

7、添加rabbitmq监控模板

监控主机添加模板:

8、查看监控图形效果

以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~谢谢你看我的文章,我们,下次再见。

原文链接: https://mp.weixin.qq.com/s/84cYOL3vXUOw67GMWM_R3g

标签: #运维 80
相关文章

shell脚本一键部署Zabbix的实现步骤 2024-12-16 09:38

本文主要介绍了shell一键部署Zabbix的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧!

docker快速安装zabbix7.0 2024-12-16 09:38

1、安装docker (1)卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc (2)更新apt包索引并安装包以允许apt在HTTPS上使用存储库 sudo apt-get install -y apt-t

轻松搞定Zabbix监控部署,打造高效运维利器! 2024-12-16 09:38

点击蓝字 关注我们 安装环境: 系统:centos7.5 nginx版本:nginx-1.15.3.tar.gz php版本:php-5.6.36.tar.gz mysql版本:mysql-5.7 zabbix版本:zabbix-4.0.0.tar 1、部署Nginx 1.1、安装依赖包 wget

zabbix监控域名到期时间 2024-12-16 09:38

点击蓝字 关注我们 1、自定义监控项 在zabbix server端这里面创建一个监控项 cd /etc/zabbix/zabbix_agentd.d ``` # vi domain_certificate_check.conf ``` UserParameter=https.remaining

zabbix监控rabbitmq消息队列服务 2024-12-16 09:38

点击蓝字 关注我们 1、脚本文件 cat rabbitmq_queues.sh !/bin/bash source /etc/profile rabbitmqctl list_connections name state \|grep -Ev 'List\|name' >/tmp/rabbitmq_

zabbix监控mysql服务器 2024-12-16 09:38

点击蓝字 关注我们 监控指标: 实例状态 连接数 流量 增删改查 缓冲池大小与利用率 1、编写监控数据采集脚本 cat /etc/my.cnf #创建一个普通用户用于免交互 [mysql] host=192.168.0.14 user=wp password=MyNewPass4! [mysqlad

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.