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模板


猜你喜欢

转载自blog.csdn.net/yq90125/article/details/79378014