使用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客戶端”
將模板關聯到對應的主機
監控結果如下:
上圖為所有隊列信息
上圖為服務器概況
監控過程中有可能遇到問題解決:
查看debug日誌,訪問的地址與指定的地址不正確時解決方法如下
修改api.py文件中RabbitMQAPI類中call_api方法
把self.host_name改為rabbitmq服務器的地址,註意加單引號
zabbix監控服務器監控數據中有信息,但是為python報錯,並且報錯有401錯誤,此為登錄認證失敗,需要確認配置用戶名密碼正確
本文出自 “藍色_風暴” 博客,請務必保留此出處http://270142877.blog.51cto.com/12869137/1937241
使用Zabbix監控RabbitMQ消息隊列