【zabbix】批量监控端口,自动发现规则

本文介绍了如何使用Python脚本`check_port.py`结合ZabbixAgent配置端口批量监控,包括解决脚本执行中的权限问题,配置Zabbix自动发现规则,以及通过`zabbix_Script_Deployment.sh`自动化脚本进行环境部署。通过这些步骤,可以实现对Linux服务器端口状态的实时监控并自动化处理。

 快速搞定端口批量监控

一、脚本及配置

1、(文件名:check_port.py)(python2.7版本) 存在路径:/etc/zabbix/zabbix_agentd.d/check_port.py

这个脚本有一部分内容是我从百度上找的,有一部分自己新增的,有一部分改吧改吧,凑合用

#!/usr/bin/python
__author__ = 'Hudaye'
import os
import json
import subprocess

command = "sudo netstat -tnlp|egrep -i tcp|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq"
process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
output = process.communicate()[0]
ports = output.decode().split()
json_output = json.dumps(ports)

data = {}
tcp_list = []
port_list = []
tt = []
lines = os.popen(command).readlines()
for line in lines:
    port = line.split()
    port_list.append(port[0])
for i in port_list:
    if i in json_output:
      tt.append(i)
for port in list(set(tt)):
    port_dict = {}
    port_dict['{#TCP_PORT}'] = port
    tcp_list.append(port_dict)

data['data'] = tcp_list
jsonStr = json.dumps(data, sort_keys=True, indent=4)
print(jsonStr)

执行check_port.py脚本因为linux环境各不一样,所以当你在服务端使用:zabbix_get -s 'ip' -p 10050 -k mis-port 命令获取agent端数据时或许会报以下错误:

sudo: sorry, you must have a tty to run sudo
# 1、那就把:sudo netstat -tnlp|egrep -i tcp|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq
# 这一行中的sudo拿掉就行了
# 2、或者不拿掉sudo可以在sudo后面加-t或者-tt
# 两个方法都试下,哪个能用用哪个,再解决不了,就上百度

2、(文件名:ZHJX_Port_Status.conf) zabbix配置文件

1、mis-port键

2、python指令路径:/usr/bin/python

3、文件存在路径:/etc/zabbix/zabbix_agentd.d/

将下面的命令写入ZHJX_Port_Status.conf配置文件中

UserParameter=mis-port,/usr/bin/python /etc/zabbix/zabbix_agentd.d/check_po
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值