添加针对端口监听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模板