zabbix_agent自动发现服务端口
应用背景:
zabbix监控系统介绍及安装,参考大牛运维生存时间,在这儿就不啰嗦了
为了zabbix-agent端能自动把服务器端的服务端口汇报给 zabbix server端,监控其端口是否存活可用,
用下面的脚本:service_scan.py 部署于agent端 /usr/local/zabbix-agent/bin/service_scan.py
部署准备:
- service_scan.py脚本 依懒 python2.7版本下的 psutil库,
- 需要在agent端安装 python2.7版本,
- 用python2.7 安装相关的 psutil库
1
|
/usr/local/python27/bin/pip install psutil |
服务器端口自动发现脚本: service_scan.py
#!/usr/local/python27/bin/python # author: moorewqk@163.com # import os, sys, time import commands import psutil import socket import json del_list = ["rpc.statd","java"] def Handle_Connects(): rows = [] lc = psutil.net_connections('inet') for c in lc: (ip, port) = c.laddr if ip == '0.0.0.0' or ip == '::': if c.type == socket.SOCK_STREAM and c.status == psutil.CONN_LISTEN: proto_s = 'tcp' #elif c.type == socket.SOCK_DGRAM: # proto_s = 'udp' else: continue pid_s = str(c.pid) if c.pid else '(unknown)' #print pid_s,port rows.append('%s:%s'%(pid_s,port)) dedup_list = {}.fromkeys(rows).keys() return dedup_list def handler_pid(pid,port): service_dict = {} p = psutil.Process(int(pid)) if p.as_dict()['name'] == 'jsvc': service_pname = p.as_dict()['environ']['HOME'].split('/')[3] service_dict['{#PNAME}'] = service_pname service_dict['{#PPORT}'] = port else: service_pname = p.as_dict()['name'] service_dict['{#PNAME}'] = service_pname service_dict['{#PPORT}'] = port return service_dict def main(): zb_dict = {} service_list = [] result_list = [] clist = [] for i in Handle_Connects(): pid = i.split(':')[0] port = i.split(':')[1] service_list.append(handler_pid(pid,port)) for dictlist in service_list: if dictlist["{#PNAME}"] in del_list: result_list.append(dictlist) #service_list.remove(dictlist) #print result_list for delname in service_list: if delname not in result_list: clist.append(delname) zb_dict['data'] = clist print json.dumps(zb_dict,sort_keys=True,indent=4) if __name__ == "__main__": main()
zabbix_agent自动发现服务端口的更多相关文章
- ZABBIX自动发现Redis端口并监控
由于一台服务器开启许多Redis实例,如果一台一台的监控太耗费时间,也非常容器出错.这种费力不讨好的事情我们是坚决杜绝的,幸好ZABBIX有自动发现功能,今天我们就来用该功能来监控我们的Redis实例 ...
- python 自动发现Java端口
python 自动发现Java端口 #!/usr/bin/env python #encoding: utf8 import subprocess try: import json except Im ...
- Prometheus + Consul 自动发现服务监控
一.Prometheus支持的多种服务发现机制(常用如下) static_configs: 静态服务发现 file_sd_configs: 文件服务发现 dns_sd_configs: DNS 服务发 ...
- 分布式监控系统Zabbix--完整安装记录-批量添加主机和自动发现端口
一.Zabbix-3.0.3批量添加主机的配置如下: 0)被监控机上要安装zabbix_agent,并配置好zabbix_agentd.conf (如下172.29.8.50是zabbix_serve ...
- marathon的高可用服务自动发现和负载均衡
上一篇我们说谈了docker+zookeeper+mesos+marathon集群,本篇我们来谈谈marathon的集群和自动发现服务. marathon的服务自动发现和负载均衡有两种,1是mesos ...
- Spring Cloud 入门教程(四): 分布式环境下自动发现配置服务
前一章, 我们的Hello world应用服务,通过配置服务器Config Server获取到了我们配置的hello信息“hello world”. 但自己的配置文件中必须配置config serve ...
- 使用 zabbix 自动发现监控 MySQL
介绍 使用 zabbix 的 low-level 自动发现功能完成单主机多端口的监控, 详见low_level_discovery, 整体上监控类似 percona 的 zabbix 监控插件, 不过 ...
- Prometheus基于consul自动发现监控对象 https://www.iloxp.com/archive/11/
Prometheus 监控目标为什么要自动发现 频繁对Prometheus配置文件进行修改,无疑给运维人员带来很大的负担,还有可能直接变成一个“配置小王子”,即使是配置小王子也会存在人为失误的情况 ...
- Zabbix--06主动模式和被动模式、低级自动发现、性能优化、
目录 一. Zabbix主动模式和被动模式 1.克隆模版 2.修改克隆后的模版为主动模式 3.修改监控主机关联的模版为主动模式 4.修改客户端配置文件并重启 5.查看最新数据 二.Zabbix低级自动 ...
随机推荐
- 设计四个线程,当中共两个线程每次对j添加1,另外两个线程每次对j降低1。循环100次,写出程序。
package cn.usst.DataTest6; /** * 设计四个线程,当中共两个线程每次对j添加1,另外两个线程每次对j降低1.循环100次,写出程序. * @ * */ public cl ...
- IPV6相关RFC文档
1. 通用 IPv6的通用RFC和Internet草案 RFC# 类 标题 1752 标准记录 对IP下一代协议的建议 1924 资料 IPv6地址的压缩表示法 2851 标准记录 Internet网 ...
- android Activity初次的启动的时候播放声音
代码例如以下: private MediaPlayer mMediaPlayer; mMediaPlayer = new MediaPlayer(); mMediaPlayer = MediaPlay ...
- What is an ISAPI Extension?
https://www.codeproject.com/Articles/1432/What-is-an-ISAPI-Extension Introduction Unless you have be ...
- js addeventlistener 刮刮贴
<!doctype html><html><head><meta charset="utf-8"><title>无标题文 ...
- 9.22 NOIP模拟题
吉林省信息学奥赛 2017 冬令营 ...
- .Net Core开源小工具mssql2mysql,从mssql生成mysql脚本
Microsoft SQL Server to MySQL 这个工具用于从MSSQL生成MySQL脚本,生成的脚本包含表结构和数据 安装 这是一个.Net Core的具具,所以需要先安装.net co ...
- DB2锁表或超时解决方案
DB2锁表或超时 一.场景 对数据表进行更新(查询没问题),错误提示如下: SQLCODE=-911, SQLSTATE=40001, DRIVER=3.63.75SQL0911N The curre ...
- 【HTML5】基于HTML5的高性能动画与游戏
其实这篇文章类似版本早在12年就在网上各处出现了,也随着HTML5的兴起,HTML的新特性也是倍受开发者们追捧,自然相关HTML5的高性能动画与游戏的相关文章也是层出不穷的,笔者也是在12年接触的相关 ...
- sql数据库中常用连接
很简单的知识点,今天有点搞不清楚左外连接,右外连接:详见以下: --表stu id name 1, Jack 2, Tom 3, Kity 4, nono --表exam id grade 1, 56 ...