1. 程式人生 > >使用Zabbix監控RabbitMQ消息隊列

使用Zabbix監控RabbitMQ消息隊列

模板 zabbix rabbitmq

註:本文檔根據GitHub開源項目,實踐成功後所編寫


開源項目地址:https://github.com/jasonmcintosh/rabbitmq-zabbix


為方便大家下載,已經將此項目整個打包上傳至附件,可從附件中直接下載


監控部署督步驟:

  1. 下載附件中文件

  2. 復制項目中scripts目錄中所有內容至 zabbix_agentd 端服務器的 /usr/local/sbin 目錄下(任何包含 zabbix_agentd 端服務器均可)

    註:放置文件的服務器需要能與rabbitmq服務器通訊,假設我存放的服務器為agent1

  3. 上傳項目中 zabbix_agentd.d 目錄下面的 zabbix-rabbitmq.conf 至agent1服務器的zabbix_agentd 擴展配置文件目錄

    註:執行以下shell命令可以找到擴展配置文件目錄,如果沒有任何顯示,那麽需要修改配置文件打開對應的選項,並註意路徑設置正確

    grep "^Include" zabbix_agentd.conf

  4. 導入 rabbitmq.template.xml 模板文件至zabbix,導入方法省略

  5. 修改 zabbix-rabbitmq.conf 配置文件,保證裏面各腳本的路徑與第2步中上傳的路徑一至,也就是確保此路徑能找到相對應的文件,否則就不要繼續下一步

  6. 修改 zabbix_agentd 端和 zabbix_server 端,修改Timeout超時時間為10秒,默認為3秒,因為腳本有的執行時間超過3秒,這樣會超時,無法獲取數據,定義具體多大,視情況而定,最大30秒

  7. 在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管理訪問端口

  8. 修改api.py文件

    1. 全文替換 /etc/zabbix/zabbix_agentd.conf 此路徑為你自己的路徑,如果相同就不必替換

    2. 全文替換 /var/log/zabbix/rabbitmq_zabbix.log 此路徑為你自己的路徑

    3. 修改 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

  9. 修改api.py文件所在目錄的所有文件,包括.rab.auth隱藏文件的所屬組和所屬主為zabbix,然後修改權限為755

  10. 修改 rabbitmq.template.xml 中所有獲取數據模式為“Zabbix客戶端(主動式)”的監控項,改為“Zabbix客戶端”

  11. 將模板關聯到對應的主機

  12. 監控結果如下:


    技術分享

    上圖為所有隊列信息

    技術分享

    上圖為服務器概況


監控過程中有可能遇到問題解決:

  1. 查看debug日誌,訪問的地址與指定的地址不正確時解決方法如下

    修改api.py文件中RabbitMQAPI類中call_api方法

    把self.host_name改為rabbitmq服務器的地址,註意加單引號

  2. zabbix監控服務器監控數據中有信息,但是為python報錯,並且報錯有401錯誤,此為登錄認證失敗,需要確認配置用戶名密碼正確

本文出自 “藍色_風暴” 博客,請務必保留此出處http://270142877.blog.51cto.com/12869137/1937241

使用Zabbix監控RabbitMQ消息隊列