Zabbix+Python自动发现进程端口和进程名称

Python脚本

#!/usr/bin/env python
#coding=utf-8
#Debug in Python2.7
#used for discovery the Listen Port and Process
#Author wangshisheng 20180602

import os
import json
import string

t = os.popen(""" sudo ss -tunlp |grep LISTEN |sed "s#::#FF#g" |grep users |sort |uniq """)

array = []
for port in t.readlines():
 r=port.strip()

 #print r
 port = r.split(‘:‘)[1].split(‘ ‘)[0]
        try:
     name = r.split(‘\"‘)[1]
        except:
            name = "none"

 cluster = {}
        cluster[‘{#TCP_PORT}‘] = port
        cluster[‘{#TCP_NAME}‘] = name

        array.append(cluster)

#amy = [{k:v} for k,v in dict([list(d.iteritems())[0] for d in array]).iteritems()]
amy = [dict(t) for t in set([tuple(d.items()) for d in array])]

print json.dumps({‘data‘:amy},sort_keys=True,indent=4,separators=(‘,‘,‘:‘))

运行结果如下

{
    "data":[
        {
            "{#TCP_NAME}":"srv.User.plus",
            "{#TCP_PORT}":"6049"
        },
        {
            "{#TCP_NAME}":"zabbix_agentd",
            "{#TCP_PORT}":"10050"
        }
    ]
}

原文地址:http://blog.51cto.com/ipcpu/2178605

时间: 2024-11-10 05:39:49

Zabbix+Python自动发现进程端口和进程名称的相关文章

python 自动发现Java端口

python 自动发现Java端口 #!/usr/bin/env python #encoding: utf8 import subprocess try: import json except ImportError: import simplejson as json command = "netstat -tpln | grep -v '127.0.0.1' | awk -F '[ :]+' '/java/ && / / {print $5}'" p = subp

zabbix自动发现mysql端口并监控

一.需求: 因为我们是游戏业务,要用到mysql,一个服务器上面跑多个mysql实例也是很正常.如果单独手动一台台修改agent.conf,添加web监控,太费时费力.所以就想的要用zabbix 的自动发现来监控 二.配置Agent 1.编写自动发现端口脚本 [[email protected] ~]# cat /etc/zabbix/alertscripts/zabbix_discovery_mysql.sh  #!/bin/bash mysql() {             port=($

Zabbix之自动发现

1. 打开configure--Discovery--create discovery rule: 需要添加名称,ip地址段(这个地址段以覆盖你所有IP的最小地址段为好),checks.其中checks最为重要,总共三项,只填写key,这里用 system.uname这个key.然后点击添加并保存.这里的意思是zabbix服务器端扫描这个网段中的zabbix客户端(客户端端口默认为 10050),扫描到之后取客户端的system.uname值,这个值返回的类似于linux系统中的uname –a

zabbix的自动发现、自定义添加监控项目

1.zabbix的自动发现这里的自动发现,所显示出来的是规则的上自动了现 然后 可以对其内容进行相关的配制,如时间或周期 注意:对于单个主机的规则,可以自行添加或删除, 但对于已经添加好了的规则,若需要修改那么,就只有到模板里面进行相关设置.   2.自定义添加监控项目,监控项目都是针对于客户机而言的,一般都是对客户机进行配制 先在客户机创建一个脚本加入以下内容:mkdir /etc/zabbix/sh; vim /etc/zabbix/sh/estab.sh #!/bin/bash##获取80

zabbix通过自动发现功能实现自动识别网络设备接口

由于之前网络设备不是很多,监控网络设备接口就直接使用模版中的item来实现了,可是现在公司上线了一大批网络设备,如果要每个网络设备都做模板,添加item......那就该废了,于是迫于压力今天来测试使用zabbix的自动发现功能实现自动发现网络设备接口,并且自动获取接口的流量值,生成流量图等功能. 这样的话就能节省大量时间,时间就是生命啊,把时间浪费在枯燥的添加网络接口的工作上就是在浪费生命!好了,废话不多说,进入正题: 首先,在交换机上面配置好snmp协议,为了简单,这里目前使用的是snmp

zabbix自动发现使用中端口并图形展示各个端口连接数

zabbix自动发现当前服务器使用中的端口并图形展示各个端口连接数 1.修改配置文件 vi /data/server/zabbix_agent/conf/zabbix_agentd.conf UserParameter=tcp.port.discovery,/data/server/zabbix/bin/discover_tcp_port_count tcp_port_discovery UserParameter=tcp.port.count[*],/data/server/zabbix/bi

zabbix 自动发现指定端口和服务

官方有模板示例,根据官方更改 连接如下 https://zabbix.org/wiki/File:ZabbixTemplate_-_TCP_service_discovery.xml 配置端口服务列表 root #cat tcp-port.conf http,80 tomcat,8080 mq,1883 编写自动发现脚本 discovery_tcp_service.sh #/bin/bash CONFIG_FILE=/etc/zabbix/script/tcp-port.conf portarr

zabbix 自动发现监控端口(六)

一.配置脚本,将脚本分发到各个minion端 1.1.脚本内容 vim discover_port.sh  #!/bin/bash portarray=(`sudo netstat -tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq`) length=${#portarray[@]} printf "{\n" printf  '\t'&q

zabbix低级自动发现之mysql多实例

1.低级自动发现概述 zabbix的低级自动发现(LLD)适用于监控多实例,监控变化的数据(分区.网卡). 自动发现(LLD)提供了一种在计算机上为不同实体自动创建监控项,触发器和图形的方法.例如,Zabbix可以在你的机器上自动开始监控文件系统或网络接口,而无需为每个文件系统或网络接口手动创建监控项.此外,可以配置Zabbix根据定期执行发现后的得到实际结果,来移除不需要的监控项. 在zabbix中,支持六种类型的发现项目: 系统文件的发现 网络接口的发现 CPU和CPU内核的发现 SNMP