溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

zabbix 自動發(fā)現(xiàn)主機(jī),端口,自定義腳本key值

發(fā)布時(shí)間:2020-08-01 03:03:20 來源:網(wǎng)絡(luò) 閱讀:324 作者:laihuadongcto 欄目:系統(tǒng)運(yùn)維

自動發(fā)現(xiàn)主機(jī)規(guī)則

首先創(chuàng)建自動發(fā)現(xiàn)主機(jī):


zabbix 自動發(fā)現(xiàn)主機(jī),端口,自定義腳本key值


配置自動發(fā)現(xiàn)規(guī)則:

zabbix 自動發(fā)現(xiàn)主機(jī),端口,自定義腳本key值

完成后在動作中的自動發(fā)現(xiàn)創(chuàng)建發(fā)現(xiàn)動作即可:

zabbix 自動發(fā)現(xiàn)主機(jī),端口,自定義腳本key值



自定義腳本

zabbix自定義監(jiān)控key值 自動發(fā)現(xiàn) 自動執(zhí)行遠(yuǎn)程腳本
例如:
監(jiān)控一個(gè)進(jìn)程是否存在:
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
通過腳本判斷這個(gè)進(jìn)程是否存在 存在返回1 不存在返回0,我們把這個(gè)腳本自定義到上述目錄

在zabbix_agent.conf中配置腳本路徑 和key值
UnsafeUserParameters=1
UserParameter=check_badvp,/bin/bash /etc/zabbix/alertscripts/check_badvp.sh
修改超時(shí)時(shí)間
Timeout = 8
設(shè)置超時(shí)時(shí)間,避免腳本執(zhí)行不成功

設(shè)置啟動服務(wù)的腳本 /opt/autorestart.sh
最后修改sudoers文件 在下邊一行新加 zabiix用戶的啟動權(quán)限 visudo
root ALL=(ALL) ALL
zabbix ALL=(root)?NOPASSWD:/opt/autorestart.sh
最后重啟agent

界面設(shè)置
創(chuàng)建監(jiān)控項(xiàng):

zabbix 自動發(fā)現(xiàn)主機(jī),端口,自定義腳本key值

創(chuàng)建觸發(fā)器:

zabbix 自動發(fā)現(xiàn)主機(jī),端口,自定義腳本key值

最后條件動作通知:

zabbix 自動發(fā)現(xiàn)主機(jī),端口,自定義腳本key值

最后實(shí)現(xiàn)告警:

zabbix 自動發(fā)現(xiàn)主機(jī),端口,自定義腳本key值


zabbix端口自動發(fā)現(xiàn)
經(jīng)歷了很多次試驗(yàn),由于公司服務(wù)器上的業(yè)務(wù)端口又多又沒有規(guī)律,因此使用網(wǎng)上的端口自動發(fā)現(xiàn)規(guī)則(netstat)的方法會發(fā)現(xiàn)大量的無用端口,而且在告警時(shí)候只顯示端口也不友好,最終找到了解決辦法。
python腳本和pyadmin腳本
利用zabbix的自定義key來調(diào)用公司服務(wù)器現(xiàn)有的進(jìn)程管理工具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輸出結(jié)果的顏色的 綠色 紅色 否者在打印出json格式就會有顏色的代碼

PYadmin輸出結(jié)果

zabbix 自動發(fā)現(xiàn)主機(jī),端口,自定義腳本key值

其原理就是利用python腳本分離出pyadmin管理工具輸出的結(jié)果,把進(jìn)程名和端口過濾出來,傳到zabbix自動發(fā)現(xiàn)規(guī)則中
vim zabbix-agentd.conf
UserParameter=nettcpservice,/usr/bin/python /etc/zabbix/alertscripts/discover_tcpport.py "$1" "$2"
重啟agent即可


配置自動發(fā)現(xiàn)規(guī)則

zabbix 自動發(fā)現(xiàn)主機(jī),端口,自定義腳本key值

健值對應(yīng)我們配置文件中的健值,這里類型選擇主動式,為了減少服務(wù)端探測導(dǎo)致客戶端服務(wù)器連接數(shù)過多。

zabbix 自動發(fā)現(xiàn)主機(jī),端口,自定義腳本key值

zabbix 自動發(fā)現(xiàn)主機(jī),端口,自定義腳本key值

最后綁定到我們的服務(wù)器即可~

zabbix agent Value should be a JSON object 故障排除
首先考慮腳本執(zhí)行權(quán)限
chmod 755 發(fā)現(xiàn)腳本
其次visudo,最后一行追加
zabbix ALL=(ALL) NOPASSWD: ALL


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI