zabbix-agent自定義item監控遠端伺服器
阿新 • • 發佈:2019-02-18
1.首先是自己的指令碼
我的指令碼就是簡單的正則表示式的指令碼,只是為了模擬檢測bond中網絡卡關閉的資訊。檢測到網絡卡關閉就報警。
具體程式碼如下:
#!/usr/bin/env python
# -*-coding:utf-8 -*-
import os
def detect(file_name):#提取出網絡卡錯誤的資訊
bond_txt = file_name.split('\\')
file = open( file_name , 'r')
line = file.readline()
detect_str = 'Slave Interface:'
while( line ):
#print ( line )
if detect_str in line:
second_line = file.readline()
detect_down = 'down'
if detect_down in second_line :
list_first = line.split()
#print ( len(list_first) )
print ( 'in the ' + bond_txt[len(bond_txt)-1] + ', network ' + list_first[ len( list_first ) -1] + ' is down')
#print( '++++++++++++++++++++++++++++++++++' )
line = file.readline()
def main():
dic = 'C:\\Users\\daicy\\Desktop\\test_for_bonding\\bond0.txt'
detect( dic )
if __name__ == '__main__':
main()
2.建立host並將模板template新增上
建立如下圖:
3.建立item
4.建立triggers
5.在遠端伺服器上,進行zabbix-agent的配置
首先將/usr/local/etc/zabbix_agentd.conf中的伺服器地址新增上
然後就是新增userparameter,我的是在/usr/local/etc/zabbix_agentd.conf.d/這個資料夾下新增
這樣一個簡易的報警觸發裝置就弄好了。
自己遇到的一個錯誤資訊:
提示:unsupported item key
自己的錯誤是埠10050被防火牆關閉了,導致訊息傳達不到,大家遇到此類問題,可以參考一下:
首先使用iptables -nL檢視埠是否沒有開啟
經過上圖我們可以發現確實沒有開啟,我們將該埠開啟就好了
開啟程式碼如下:
iptables -I INPUT -p tcp -s 10.10.30.232 -m tcp --dport 10050 -m comment --comment "zabbix_agentd listen 10050" -j ACCEPT
最後,我們再檢視其是否開啟了:
這樣就是開啟了,問題就得到了解決。