您好,登錄后才能下訂單哦!
自動發現主機規則
首先創建自動發現主機:
配置自動發現規則:
完成后在動作中的自動發現創建發現動作即可:
自定義腳本
zabbix自定義監控key值 自動發現 自動執行遠程腳本
例如:
監控一個進程是否存在:
mkdir /etc/zabbix/alertscripts/
vim check_badvp.sh
#!/bin/bash
result=`ps -ef | grep badvp-udpgw | grep -v grep`
if [ -n "$result" ]
then
echo '1'
else
echo '0'
fi
通過腳本判斷這個進程是否存在 存在返回1 不存在返回0,我們把這個腳本自定義到上述目錄
在zabbix_agent.conf中配置腳本路徑 和key值
UnsafeUserParameters=1
UserParameter=check_badvp,/bin/bash /etc/zabbix/alertscripts/check_badvp.sh
修改超時時間
Timeout = 8
設置超時時間,避免腳本執行不成功
設置啟動服務的腳本 /opt/autorestart.sh
最后修改sudoers文件 在下邊一行新加 zabiix用戶的啟動權限 visudo
root ALL=(ALL) ALL
zabbix ALL=(root)?NOPASSWD:/opt/autorestart.sh
最后重啟agent
界面設置
創建監控項:
創建觸發器:
最后條件動作通知:
最后實現告警:
zabbix端口自動發現
經歷了很多次試驗,由于公司服務器上的業務端口又多又沒有規律,因此使用網上的端口自動發現規則(netstat)的方法會發現大量的無用端口,而且在告警時候只顯示端口也不友好,最終找到了解決辦法。
python腳本和pyadmin腳本
利用zabbix的自定義key來調用公司服務器現有的進程管理工具pyadmin
python腳本:
#!/usr/bin/python
import os,json
#command = "sudo /usr/skymobi/admin/PYsanpadmin |awk -F'_' {'print $2'} | awk '{print $1}' | sort|uniq"
command = "sudo /usr/skymobi/admin/PYsanpadmin"
lines = os.popen(command).readlines()
resultLi = []
for line in lines:
lineLi = line.split()
newLineLi = lineLi[0].split("_")
resDic = {"{#SERVICES}":newLineLi[0],"{#TCP_PORT}":newLineLi[1]}
resultLi.append(resDic)
data = {"data":resultLi}
jsonStr = json.dumps(data, sort_keys=True, indent=4)
jsonStr=jsonStr.replace(r"\u001b[1;32;40m","").replace(r"\u001b[1;31;40m","").replace(r"\u001b[1;33;40m","")
print jsonStr
腳本中的replace 是過濾我一下PY輸出結果的顏色的 綠色 紅色 否者在打印出json格式就會有顏色的代碼
PYadmin輸出結果
其原理就是利用python腳本分離出pyadmin管理工具輸出的結果,把進程名和端口過濾出來,傳到zabbix自動發現規則中
vim zabbix-agentd.conf
UserParameter=nettcpservice,/usr/bin/python /etc/zabbix/alertscripts/discover_tcpport.py "$1" "$2"
重啟agent即可
配置自動發現規則
健值對應我們配置文件中的健值,這里類型選擇主動式,為了減少服務端探測導致客戶端服務器連接數過多。
zabbix agent Value should be a JSON object 故障排除
首先考慮腳本執行權限
chmod 755 發現腳本
其次visudo,最后一行追加
zabbix ALL=(ALL) NOPASSWD: ALL
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。