1. 程式人生 > >zabbix新增telnet監控

zabbix新增telnet監控

新增針對埠監聽telnet的監控項

應運營需求,新增程式埠的telnet監控。整體思路如下,


1.收集當前ip及埠情況,形成test檔案,後邊會被ansible批量執行時呼叫

2.將指令碼2(monitor_listen_port.py)放到各機子下的/etc/zabbix/script/monitor_listen_port.py,並修改定時任務,這兩項寫到ansible-playbook中執行,執行指令碼(ansible_add.yml)如下


 執行ansible-playbook指令碼

3.zabbix-server端相關修改

3.1修改/etc/zabbix/zabbix_agentd.d/userparameter_auto_check_conn.conf,新增用於lld的兩個指令碼,修改後重啟zabbix-agent服務

#指令碼telnet_port.py
#!/usr/bin/python
import telnetlib,sys
IP=sys.argv[1]
PORT=sys.argv[2]
try:
        tn = telnetlib.Telnet(IP,PORT,timeout=10)
        ok=tn.set_debuglevel(2)
        print 1
except:
        print 0
#指令碼listen_port_detect.py
#! /usr/bin/python
import os,sys,json
def read_file(host_file_list):
        temp_list=[]
        for per_file_name in host_file_list:
                with open('/logdata/zabbix_monitor/%s' %(per_file_name)) as f:
                        data=f.readlines()
                data=data+temp_list
                temp_list=data
        return data
def rebuild_lld_format(ip_port_list,dict_hehe):
        for i in ip_port_list:
                port,ip=i.split()
                dict_hehe['data'].append({"{#IP}":'%s' %(ip),"{#PORT}":'%s' %(port)})
        print json.dumps(dict_hehe)
if __name__=="__main__":
        dict_hehe={'data':[]}
        host_file=os.listdir('/logdata/zabbix_monitor')
        list_ip_port=read_file(host_file)
        rebuild_lld_format(list_ip_port,dict_hehe)


3.2 zabbix配置模板

新增名為 listen_port_monitor 的模板

新增discovery rules


新增lld item模板

新增lld trigger模板