珀耳塞福建 发表于 2019-1-18 10:32:33

使用Zabbix监控RabbitMQ消息队列

  注:本文档根据GitHub开源项目,实践成功后所编写
  开源项目地址:https://github.com/jasonmcintosh/rabbitmq-zabbix
  为方便大家下载,已经将此项目整个打包上传至附件,可从附件中直接下载

  监控部署督步骤:

[*]  下载附件中文件

[*]  复制项目中scripts目录中所有内容至 zabbix_agentd 端服务器的 /usr/local/sbin 目录下(任何包含 zabbix_agentd 端服务器均可)
  注:放置文件的服务器需要能与rabbitmq服务器通讯,假设我存放的服务器为agent1
[*]  上传项目中 zabbix_agentd.d 目录下面的 zabbix-rabbitmq.conf 至agent1服务器的zabbix_agentd 扩展配置文件目录
  注:执行以下shell命令可以找到扩展配置文件目录,如果没有任何显示,那么需要修改配置文件打开对应的选项,并注意路径设置正确
  grep "^Include" zabbix_agentd.conf
[*]  导入 rabbitmq.template.xml 模板文件至zabbix,导入方法省略
[*]  修改 zabbix-rabbitmq.conf 配置文件,保证里面各脚本的路径与第2步中上传的路径一至,也就是确保此路径能找到相对应的文件,否则就不要继续下一步
[*]  修改 zabbix_agentd 端和 zabbix_server 端,修改Timeout超时时间为10秒,默认为3秒,因为脚本有的执行时间超过3秒,这样会超时,无法获取数据,定义具体多大,视情况而定,最大30秒
[*]  在api.py文件所在目录创建一个文件,名称为“.rab.auth”注意,此文件是隐藏文件,前面有个点,文件内容为
  USERNAME=guest
  PASSWORD=guest
  CONF=/etc/zabbix/zabbix_agentd.conf
  LOGLEVEL=DEBUG
  LOGFILE=/var/log/zabbix/rabbitmq_zabbix.log
  PORT=15672
  USERNAME:rabbitmq管理界面登录用户名
  PASSWORD:rabbitmq管理界面登录密码
  CONF:指定 zabbix_agentd 配置文件路径
  LOGLEVEL:指定日志级别,如果监控调试OK,可将此值改为INFO
  LOGFILE:指定日志文件路径
  PORT:指定rabbitmq管理访问端口

[*]  修改api.py文件

[*]  全文替换 /etc/zabbix/zabbix_agentd.conf 此路径为你自己的路径,如果相同就不必替换
[*]  全文替换 /var/log/zabbix/rabbitmq_zabbix.log 此路径为你自己的路径
[*]  修改 RabbitMQAPI 类中的 __init__ 方法中:
  user_name:rabbitmq管理界面登录用户名
  password:rabbitmq管理界面登录密码
  host_name:rabbitmq管理界面地址
  port:rabbitmq管理界面端口
  conf:zabbix_agentd 配置文件路径
  senderhostname:此选项为zabbix_sender往zabbix_server推送数据的地址,默认此模板                  是按“Zabbix客户端(主动式)”把数据传输到服务端的,我推荐使用                  服务端主动式,所以这里默认及可
  protocol:rabbitmq管理界面使用协议,比如http或者https,默认为http

[*]  修改api.py文件所在目录的所有文件,包括.rab.auth隐藏文件的所属组和所属主为zabbix,然后修改权限为755
[*]  修改 rabbitmq.template.xml 中所有获取数据模式为“Zabbix客户端(主动式)”的监控项,改为“Zabbix客户端”
[*]  将模板关联到对应的主机
[*]  监控结果如下:
https://s1.运维网.com/wyfs02/M02/98/FA/wKioL1lCVpjQhUQ9AAG-3YimkUs408.png-wh_500x0-wm_3-wmp_4-s_187104716.png
  上图为所有队列信息
https://s5.运维网.com/wyfs02/M02/98/FA/wKiom1lC***DVKXPAAHYyaAjHlg054.png-wh_500x0-wm_3-wmp_4-s_860261865.png
  上图为服务器概况
  监控过程中有可能遇到问题解决:

[*]  查看debug日志,访问的地址与指定的地址不正确时解决方法如下
  修改api.py文件中RabbitMQAPI类中call_api方法
  把self.host_name改为rabbitmq服务器的地址,注意加单引号
[*]  zabbix监控服务器监控数据中有信息,但是为python报错,并且报错有401错误,此为登录认证失败,需要确认配置用户名密码正确


附件:http://down.运维网.com/data/2366752

页: [1]
查看完整版本: 使用Zabbix监控RabbitMQ消息队列