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

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

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

约定

zabbix所有执行的脚本统一放置在 /etc/zabbix/scripts 目录下

#cd  /etc/zabbix/
#mkdir scripts
#chown root:zabbix -R /etc/zabbix/scripts/
#chmod /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=;i<$length;i++))
do
printf '\n\t\t{'
printf "\"{#TCP_PORT}\":\"${portarray[$i]}\"}"
if [ $i -lt $[$length-] ];then
printf ','
fi
done
printf "\n\t]\n"
printf "}\n" scripts]#chmod +s /usr/bin/netstat

2、添加key值

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

3、重启agent服务

#systemctl restart zabbix-agent.service

 zabbix-server端操作

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

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

 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 json data = {}
tcp_list = []
port_list = []
t = ['','','','','','','','','','','','','','','','','','','']
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[])
for i in port_list:
if i in t:
tt.appendinformation
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=)
print jsonStr
~
#scripts]#chmod +xdiscovery.sh # /scripts]# ./discovery.sh
{
"data": [
{
"{#TCP_PORT}": ""
},
{
"{#TCP_PORT}": ""
},
{
"{#TCP_PORT}": ""
},
{
"{#TCP_PORT}": ""
}
]
}

OK!

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

zabbix—自动发现端口并监控的更多相关文章

  1. zabbix 自动发现端口服务监控教程

    目录 创建数据表(收集haproxy服务的信息) 针对生成的数据表做监控 在haproxy服务机器上配置 在zabbix上添加监控 前言: 1.线上业务使用了几十上百台haproxy服务,需要针对这些 ...

  2. zabbix 添加自动发现端口并监控

    最近在部署zabbix监控  有些服务器上开启的服务端口非常多  如果一个个添加监控会很繁琐,于是想到了自动发现规则  自动发现服务器上的服务端口并进行监控. 在zabbix客户端服务器上进行操作 1 ...

  3. zabbix 自动发现端口并添加监控设置

    自动发现端口并添加监控设置UserParameter=net.listen.discovery,sudo /etc/zabbix/scripts/discovery_listport.sh #!/bi ...

  4. Zabbix实现自动发现端口并监控

    1.新建客户端需要的脚本 # vim discovertcpport.sh #!/bin/bash portarray=(`sudo netstat -tnlp|egrep -i "$1&q ...

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

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

  6. 分布式监控系统Zabbix--完整安装记录-批量添加主机和自动发现端口

    一.Zabbix-3.0.3批量添加主机的配置如下: 0)被监控机上要安装zabbix_agent,并配置好zabbix_agentd.conf (如下172.29.8.50是zabbix_serve ...

  7. zabbix自动发现功能实现批量web url监控

    需求: 现在有大量url需要监控,形式如http://www.baidu.com ,要求url状态不为200即报警. 需求详细分析: 大量的url,且url经常变化,现在监控用的是zabbix,如果手 ...

  8. zabbix自动发现监控mysql

    一. 数据库给只读权限 1.1 grant usage on *.* to 'zabbix'@'127.0.0.1' identified by 'zabbix'; flush privileges; ...

  9. Zabbix自动发现并监控磁盘IO、报警

    本文转载自: https://www.93bok.com 引言 Zabbix并没有提供模板来监控磁盘的IO性能,所以我们需要自己来创建一个,由于一台服务器中磁盘众多,如果只有一两台可以手动添加,但服务 ...

随机推荐

  1. 【新手可看懂】ubuntu配置appium环境

    1.node安装: 在node官网:https://nodejs.org/en/download/ 下载对应的安装包(这里建议下载最新的版本)下载好后放在liunx指定路径下 我这里放到opt这个文件 ...

  2. Xen们和Open Stack们

    1.虚拟化技术:XEN.KVM.ESXI 2.虚拟化管理:Eucalyptus, OpenNebula, OpenStack, OpenQRM, XenServer, Oracle VM, Cloud ...

  3. Map转url ,url转Map工具类

    /** * 将url参数转换成map * @param param aa=11&bb=22&cc=33 * @return */ public static Map<String ...

  4. 【转】基于TMS320C6455的千兆以太网设计

    基于TI公司最新DSP芯片TMS320C6455.设计并实现了以太网通信软硬件接口.采用TMS320C6455片内以太网接口模块EMAC/MDIO,结合片外AR8031 PHY芯片,在嵌入式操作系统D ...

  5. SHELL脚本编程的条件测试

    SHELL脚本编程的条件测试 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.条件测试概述 判断某需求是否满足,需要由测试机制来实现 专用的测试表达式需要由测试命令辅助完成测试过 ...

  6. 基于STM8的IIC协议--实例篇--时钟模块(DS3231)读取

    1. 综述 由上篇博客可知道IIC协议如何用代码实现,本篇博客就不涉及协议内容,只讲解如何使用. 本次的实验传感为:DS3231(时钟模块),对于时钟模块的具体信息我也就不多介绍,大家可以自行度娘,具 ...

  7. SpringCloud2.0 Zuul 网关路由 基础教程(十)

    1.启动基础工程 1.1.启动[服务注册中心],工程名称:springcloud-eureka-server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) ...

  8. 用js刷剑指offer(从1到n整数中1出现的次数)

    题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了. ...

  9. 行为型模式(三) 迭代器模式(Iterator)

    一.动机(Motivate) 在软件构建过程中,集合对象内部结构常常变化各异.但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素:同时这种"透明 ...

  10. DELL--R420 CPU报警“CPU0000 cpu2 internal error (IERR)contact support”

    按照以下操作解决: 请用户按以下操作,搞定. 请使用一台服务器测试: 开机看到dell标志时,按F2键→"System BIOS Setting" →"System Pr ...