前言
對於很多情況下手動創建監控項是很費勁的事,所以zabbix提供了自動發現的功能,我這裏以自動發現agent端活動端口爲例,再借助zabbix自帶的端口監控項來實現自動監控。廢話不多說,直接來硬的。
一、修改agent端配置文件
該位置以自己安裝的爲準,沒找到可用locate搜索一下
vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1 # 默認爲0,表示不允許自定義key
UserParameter=portall,/root/shell/python/postjson.py #自定義監控項
注意:如果不能成功獲取到監控項數據(一般提示權限不夠),請修改agent配置文件 AllowRoot=1
二、在agent上添加腳本
獲得本地端口的shell語句如下:
netstat -ntl|tail -n +3|awk '{print $4}'|awk -F: '{print $NF}'|sort|uniq
然後寫個python2的腳本,將數據轉換成json格式
Vim /root/shell/python/postjson.py
#!/usr/bin/env python
import json
import os
cmd=os.popen("""netstat -ntl|tail -n +3|awk '{print $4}'|awk -F: '{print $NF}'|sort|uniq""")
ports=[]
for port in cmd.readlines():
r=port.strip()
ports+=[{'{#PORT}':r}]
print json.dumps({'data':ports},sort_keys=True,indent=4,separators=(',',':'))
效果截圖
注意:記得給腳本加執行權限
三、重啓agent服務,server端測試
server端使用zabbix_get測試監控項有效性。
四、創建自動發現規則
鍵值就是前面agent配置文件那裏寫的名稱
五、創建監控項原型
注意:net.tcp.port[,{#PORT}]鍵值必須這麼寫,在寫的時候參考官方文檔不然監控項無效。
六、zabbix 查看監控項數據
總結:
我這裏主要是介紹zabbix有這個功能,簡單的實現方法,如果自己有其他需求要自己去寫腳本咯,監控項原型也可以是自己自定義的監控項,我希望我的文章對朋友們有幫助,記得點個贊啥的,哈哈