您好,登錄后才能下訂單哦!
被監控客戶端的操作系統 cat /etc/issue,ubuntu 14.04.3 server
zabbix-agent --version v2.2.2
zabbix-server --version v4.0.7
本篇文章主要講的是自定義監控項
使用有sudo權限的用戶執行下列操作
第一步: cat /etc/zabbix/scripts/rabbitmq.sh
#! /bin/bash
passwd=" * " # 此處為sudo密碼 ,如果是root用戶執行請忽略
echo "$passwd" | sudo -S rabbitmqctl list_queues -p / | sed 1d | sed -n '/'$1'/p' | awk -F ' ' '{print $2}'
這個腳本的作用就是輸出rabbitmq指定虛擬主機的下面的隊列數
后面考慮安全問題,服務器密碼不應該暴露在服務器上.決定使用sudo 解決這個問題
讓普通用戶執行rabbitmqctl 這個命令的時候免密,其他命令需要密碼.經過測試
在sudo visudo 也就是 /etc/sudoers添加下面兩句.(我是把 原來的%sudo ALL=(ALL:ALL) ALL 刪除后再后面添加這兩句的)
wang ALL=(ALL) ALL
wang ALL=(ALL) NOPASSWD:/usr/sbin/rabbitmqctl
建議root用戶禁用的服務器先解鎖再給root用戶設置一個密碼
以免配置文件寫錯導致普通用戶沒有sudo權限,又登錄不了root用戶.那么只有重啟服務器進入單用戶模式修改
/etc/sudoers 文件了. 所以最終的腳本內容是
cat scripts/rabbitmq.sh
#!/bin/bash
sudo rabbitmqctl list_queues -p /test | sed 1d | sed -n '/'$1'/p' | awk -F ' ' '{print $2}'
第二步:配置客戶端配置文件
UnsafeUserParameters=1 這個由原來的0改為1 表示允許自定義監控項
AllowRoot=1 允許agent以root用戶執行
自定義監控項可以在/etc/zabbix/zabbix_agented.conf 添加也可以在/etc/zabbix/zabbix_agentd.conf.d/下面新建 conf文件 (前提是配置文件有Include=/etc/zabbix/zabbix_agentd.conf.d/),我在配置文件直接加的 每個消息隊列一個key值,(如果key值過多不適合這個方法,請自己動腦子寫腳本。我監控的虛擬主機下14個消息隊列。下面是一個例子)
UserParameter=$key值,sh /etc/zabbix/scripts/rabbitmq.sh $1
$1為sudo rabbitmqctl list_queues -p /* | sed 1d | sed -n '/'$1'/p' | awk -F ' ' '{print $1}' 輸出的消息隊列名稱
重啟下zabbix_agent服務 sudo service zabbix_agent restart
可以使用zabbix_get 測試下(我的系統沒有這個命令就沒測試了)
第三步:登錄zabbix網頁端 可以先創建一個rabbitmq 主機組,然后將服務器加入該主機組中.
創建模板 然后創建監控項目,然后創建觸發器(分為告警,一般嚴重,嚴重)
參考文檔:
https://blog.csdn.net/baidu_38432732/article/details/90756509 參考文檔
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。