zabbix 自動發現主機,端口,自定義腳本key值

自動發現主機規則python

首先建立自動發現主機:json


image.png


配置自動發現規則:vim

image.png

完成後在動做中的自動發現建立發現動做便可:bash

image.png



自定義腳本服務器

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,咱們把這個腳本自定義到上述目錄app

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

設置啓動服務的腳本 /opt/autorestart.sh
最後修改sudoers文件 在下邊一行新加 zabiix用戶的啓動權限 visudo
root ALL=(ALL) ALL
zabbix ALL=(root) NOPASSWD:/opt/autorestart.sh
最後重啓agentide

界面設置
建立監控項:工具

image.png

建立觸發器:spa

image.png

最後條件動做通知:

image.png

最後實現告警:

image.png


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輸出結果

image.png

其原理就是利用python腳本分離出pyadmin管理工具輸出的結果,把進程名和端口過濾出來,傳到zabbix自動發現規則中
vim zabbix-agentd.conf
UserParameter=nettcpservice,/usr/bin/python /etc/zabbix/alertscripts/discover_tcpport.py "$1" "$2"
重啓agent便可


配置自動發現規則

image.png

健值對應咱們配置文件中的健值,這裏類型選擇主動式,爲了減小服務端探測致使客戶端服務器鏈接數過多。

image.png

image.png

最後綁定到咱們的服務器便可~

zabbix agent Value should be a JSON object 故障排除
首先考慮腳本執行權限
chmod 755 發現腳本其次visudo,最後一行追加zabbix ALL=(ALL) NOPASSWD: ALL

相關文章
相關標籤/搜索