背景
有时候我们想要检测服务器的Java端口是不是挂了。但是又不想手工去写检测端口,这时候我们可以使用Zabbix的自动发现功能自动发现即可。当然Prometheus也是需要手工写端口的。这一点也是Zabbix的自动发现强大的地方。
版本1
只发现端口
#!/usr/bin/env python
#coding:utf-8
import os, json
port_list=[]
# 添加不是标准jar的应用端口
apiServer_port="8800"
port_list=[]
port_list.append({"{#TCP_PORT}": apiServer_port})
port_dict={"data":None}
cmd='''
aa=$(ps -ef |grep jar|grep -v grep|awk '{print $2}')
for i in $aa
do
netstat -ntlp|grep $i|awk '{print $4}'|cut -d ":" -f2
done
'''
local_ports=os.popen(cmd).readlines()
for port in local_ports:
pdict={}
pdict["{#TCP_PORT}"]=port.replace("\n", "")
port_list.append(pdict)
port_dict["data"]=port_list
jsonStr = json.dumps(port_dict, sort_keys=True, indent=4)
print jsonStr </
|