自动批量检查agent开放的端口

PS:如果服务器上的应用都是固定的,不会随机产生的都可以使用自动发现端口来监控;

    如果服务器会随机出现端口且每次启动程序都会改变,可以采用第二种方法,来监控指定的端口

约定

zabbix所有执行的脚本统一放置在 /etc/zabbix/scripts 目录下#cd  /etc/zabbix/
#mkdir  scripts
#chown root:zabbix -R /etc/zabbix/scripts/
#chmod 755 /etc/zabbix/scripts/

 zabbix-agent操作

1、脚本内容

scripts]# vim discovery.sh#!/bin/bash
portarray=(`netstat -tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq`)
length=${#portarray[@]}
printf "{\n"
printf  '\t'"\"data\":["
for ((i=0;i<$length;i++))doprintf '\n\t\t{'printf "\"{#TCP_PORT}\":\"${portarray[$i]}\"}"if [ $i -lt $[$length-1] ];thenprintf ','fidone
printf  "\n\t]\n"
printf "}\n"scripts]#chmod +s /usr/bin/netstat

2、添加key值

cat /etc/zabbix/zabbix_agentd.conf
添加如下内容:
UnsafeUserParameters=1
UserParameter=tcpportlisten,/etc/zabbix/scripts/discovery.sh

3、重启agent服务

#systemctl restart zabbix-agent.service

 zabbix-server端操作

# zabbix_get -s 172.18.243.7  -p 10050 -k tcpportlisten
{"data": [{"{#TCP_PORT}": "10000"},{"{#TCP_PORT}": "10050"},{"{#TCP_PORT}": "9400"},{"{#TCP_PORT}": "9500"}]
}

说明:由于端口太多,这里只是部分端口

 ps:172.18.243.7  #客户端IP
tcpportlisten   # /etc/zabbix/zabbix_agentd.confkey值

Web端的配置

1、创建模板:Template Ports Discovery

2、创建自动发现规则

3、创建监控项原型

4、创建图形原型

5、创建触发器

6、在主机中关联此模板

7、查看结果

酱紫就配置完成端口自动扫描并监控完成了,酱紫就可以通过监控端口实现监控服务是否正常了<^^>

监控指定端口范围内的端口

scripts]#vim discovery.sh#!/usr/bin/python
__author__ = 'Yan'
import os
import jsondata = {}
tcp_list = []
port_list = []
t = ['10050','10081','10087','10096','10097','10000','10073','10099','120000','17000','18050','18051','18081','22','28050','3000','32000','5500','80']
tt = []
command = " netstat -tnlp|egrep -i tcp|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq"
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 t:tt.appendinformation
for port in list(set(tt)):port_dict = {}port_dict['{#TCP_PORT}'] = porttcp_list.append(port_dict)data['data'] = tcp_list
jsonStr = json.dumps(data, sort_keys=True, indent=4)
print jsonStr
~
#scripts]#chmod +xdiscovery.sh# /scripts]# ./discovery.sh
{"data": [{"{#TCP_PORT}": "80"},{"{#TCP_PORT}": "22"},{"{#TCP_PORT}": "12000"},{"{#TCP_PORT}": "10050"}]
}

OK!

友情提示:Web端提示Value should be a J.SON object
原因为python脚本中使用了netstat -p参数,权限问题,zabbix_agentd是zabbix用户启动的,默认不能执行netstat -p等命令,导致从服务器取到的自动发现脚本为空。
解决办法:
chmod +s /bin/netstat(客户端)

转载于:https://www.cnblogs.com/yaun1498078591/p/10782253.html

zabbix—自动发现端口并监控相关推荐

  1. zabbix自动发现端口

    目的: 通过批量实现自动发现端口,避免傻傻的一个一个添加 解决方案: 使用zabbix的discovery功能来实现监控. 注意:自动发现端口,需要在sysctl.conf中修改下系统自动打开端口的范 ...

  2. zabbix自动发现实现批量监控docker状态

    最近在搞zabbix监控docker以及docker内部应用状态信息,网上找的资料好少,只找到了一个大神的一篇文章,用的是python实现监控docker容器的基本状态,我在他给的脚本基础上进行修改, ...

  3. zabbix的日常监控-自动发现端口并监测(服务器开启的所有端口或监控指定端口)(十三)...

    动批量检查agent开放的端口 注:此方法给监控磁盘IO(即十二)篇过程一样: 注释:如果服务器上的应用都是固定的,不会随机产生的都可以使用自动发现端口来监控:  如果服务器会随机出现端口且每次启动程 ...

  4. ZABBIX自动发现Redis端口并监控

    转载来源 :ZABBIX自动发现Redis端口并监控 : https://mp.weixin.qq.com/s/UDeRYn6376MBzNyRt48aAw ZABBIX自动发现Redis端口并监控 ...

  5. zabbix自动发现规则实现批量监控主机的TCP监听端口

    检查服务器所有监听端口和其对应的服务名称的脚本可以参考https://blog.zzyyxx.top/blog/post/gordy/acf57f04f9e1  现在准备加入zabbix自动发现规则并 ...

  6. zabbix自动发现,端口 url检测

    一,自动发现 1,开启自动发现 配置自动发现 修改自动发现的网段 启用自动发现 2.配置自动发现的动作 配置自动发现的动作 添加动作的IP地址 添加自动发现的操作 启用动作 3,检验 二,自动注册 1 ...

  7. 利用zabbix自动发现监控mongo数据库

    但如果公司使用mongo的端口如果不一致的话,那建议使用zabbix的自动发现的功能,自动发现mongo监听的端口,并对它进行相关数据的收集. 先看一下效果图, 教你如何利用zabbix自动发现监控m ...

  8. 基于docker安装部署Zabbix及使用,自动发现、日志监控报警及参照官方文档遇到的问题(图文)

    目录 一.相关原理 (1)概述 (2)Zabbix 功能 (3)Zabbix 概述 (4)zabbix监控架构详解 二.主要步骤 (一)工具/环境准备 (二)docker安装及测试 (三)docker ...

  9. 5 zabbix 添加host_运维监控实战篇,zabbix自动发现和自动注册图文详解

    一.介绍 自动发现 Zabbix自动发现就是为了解决批量监控而设计的功能之一,什么是自动发现呢,简单来说就是Zabbix Server端可以基于设定的规则,自动批量的去发现局域网若干服务器,并自动把服 ...

最新文章

  1. codevs 1531 山峰
  2. hdu4847 水题
  3. 强化学习(十三) 策略梯度(Policy Gradient)
  4. Velocity语法使用总结
  5. Spring中Quartz的最精简的配置
  6. leetcode 刷题142 143
  7. VC 对话框 DIALOG
  8. python迭代-可迭代对象与迭代器对象
  9. php钓鱼怎么使用方法,路亚钓法操作步骤及抛投技巧
  10. 程序自动化需要一个Windows服务
  11. 单例模式 - 双锁机制
  12. 数据挖掘:模型选择——监督学习(回归)
  13. vc与三菱PLC编程口通信C语言源代码,三菱PLC通讯与编程实例!
  14. JSON字符串转对象集合
  15. 腾讯教育 App Flutter 跨端点播组件实践
  16. 设置为首页,加入收藏 | JS完美实现代码收藏
  17. 【大话Mysql面试】-Mysql常见面试题目
  18. Cisco交换机下载IOS
  19. 新中大 金蝶 用友产品技术比较
  20. 区块链开发基础知识学习

热门文章

  1. 面向站长和网站管理员的Web缓存加速指南
  2. Mozilla官方:Firefox 3.5.1问题并非安全漏洞 仅是堆溢出Crash
  3. C++读取numpy数据二进制文件
  4. 使用FastJson解析时有关内部类的两个问题
  5. pandas如何统计所有列的空值,并转化为list?
  6. python3 爬虫--Chrome以及 Chromedriver安装配置
  7. [SecureCRT]通过SFTP方式上传本地文件到服务器
  8. 架构实例之Demo_JSP
  9. android MotionEvent中getX()和getRawX()的区别
  10. poj1182(食物链)续