Zabbix实现自动发现端口并监控
1、新建客户端需要的脚本
# vim discovertcpport.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'"\"data\":["
for ((i=0;i<$length;i++))
do
printf '\n\t\t{'
printf "\"{#TCP_PORT}\":\"${portarray[$i]}\"}"
if [ $i -lt $[$length-1] ];then
printf ','
fi
done
printf "\n\t]\n"
printf "}\n"
2、客户端增加discovery的key
UserParameter=tcpportlisten,/usr/local/zabbix_agent/sbin/discovertcpport.sh "$1"
3、重启zabbix_agentd服务
# /etc/init.d/zabbix_agentd restart
4 、服务端测试
# /usr/local/zabbix/bin/zabbix_get -s 192.168.0.111 -k tcpportlisten
{
"data":[
{"{#TCP_PORT}":""},
{"{#TCP_PORT}":""},
{"{#TCP_PORT}":""}
]
}
返回类似以上内容即为正常
5、在Linux模板中创建端口自动发现规则

然后创建项目原型

此处要确实注意端口变量{#TCP_PORT}名称要与上面脚本中的保持一致。
再创建触发器原型

到此,监控端口已经完成。
-------------------------------------------------------
可能遇到的问题:
1 、 执行脚本的时候发现提示 Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) 应该是没权限的意思,
2 、添加完自动发现规则之后,提示 Value should be a JSON object 这个错误
解决办法是 vim /etc/sudoers
#Defaults requiretty 注释掉这个
然后在上面的脚本里面加上sudo netstat -tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq
--------------------------------------------
附:tomcat端口监控脚本
#!/bin/bash
sudo netstat -tnlp|grep "java"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq >/tmp/tomcat
portarray=(`sudo grep "^$1$" /tmp/tomcat`)
length=${#portarray[@]}
printf "{\n"
printf '\t'"\"data\":["
for ((i=;i<$length;i++))
do
printf '\n\t\t{'
printf "\"{#TOMCAT_PORT80}\":\"${portarray[$i]}\"}"
if [ $i -lt $[$length-] ];then
printf ','
fi
done
printf "\n\t]\n"
printf "}\n"
UserParameter=tomcat_port8080[*],/etc/zabbix/monitor_scripts/discover_tomcat8080.sh $1
# zabbix_get -s 172.17.213.62 -k tomcat_port8080[8080]
{
"data":[
{"{#TOMCAT_PORT8081}":"8081"}
]
}
Zabbix实现自动发现端口并监控的更多相关文章
- zabbix 添加自动发现端口并监控
最近在部署zabbix监控 有些服务器上开启的服务端口非常多 如果一个个添加监控会很繁琐,于是想到了自动发现规则 自动发现服务器上的服务端口并进行监控. 在zabbix客户端服务器上进行操作 1 ...
- zabbix—自动发现端口并监控
自动批量检查agent开放的端口 PS:如果服务器上的应用都是固定的,不会随机产生的都可以使用自动发现端口来监控: 如果服务器会随机出现端口且每次启动程序都会改变,可以采用第二种方法,来监控指定的端 ...
- zabbix 自动发现端口服务监控教程
目录 创建数据表(收集haproxy服务的信息) 针对生成的数据表做监控 在haproxy服务机器上配置 在zabbix上添加监控 前言: 1.线上业务使用了几十上百台haproxy服务,需要针对这些 ...
- zabbix的日常监控-自动发现端口并监测(服务器开启的所有端口或监控指定端口)(十三)
动批量检查agent开放的端口 注:此方法给监控磁盘IO(即十二)篇过程一样: 注释:如果服务器上的应用都是固定的,不会随机产生的都可以使用自动发现端口来监控: 如果服务器会随机出现端口且每次启动程 ...
- 分布式监控系统Zabbix--完整安装记录-批量添加主机和自动发现端口
一.Zabbix-3.0.3批量添加主机的配置如下: 0)被监控机上要安装zabbix_agent,并配置好zabbix_agentd.conf (如下172.29.8.50是zabbix_serve ...
- zabbix 自动发现端口并添加监控设置
自动发现端口并添加监控设置UserParameter=net.listen.discovery,sudo /etc/zabbix/scripts/discovery_listport.sh #!/bi ...
- zabbix 网络模板自动发现端口时,过滤掉某些特定规则的端口,减少item的方法
1.需求描述 默认情况下Zabbix 模板 中网络接口自动发现接口时,会产生很多item,有时候会有我们不需要的一些接口,这时候需要过滤掉他们. 比如我有一台运行kvm的服 ...
- zabbix的自动发现、自定义添加监控项目、配置邮件告警
1.zabbix的自动发现这里的自动发现,所显示出来的是规则的上自动了现 然后 可以对其内容进行相关的配制,如时间或周期 注意:对于单个主机的规则,可以自行添加或删除, 但对于已经添加好了的规则,若需 ...
- zabbix使用自动发现监控esxi的磁盘存储storage
zabbix使用自动发现监控esxi的磁盘存储storage 在任意一台可以访问vcenter的zabbix-agent服务器上添加exsi的磁盘监控模板即可 创建模板过程: custom.esxi. ...
随机推荐
- win10 php7.2 nginx 安装 imagick,适用于phpstudy
imagick 拓展的下载地址 https://windows.php.net/downloads/pecl/releases/imagick/ 可惜的是这个地址最新版没有php7.2, 如果是7.1 ...
- windows下pem转ppk
下载puttygen.exe,启动 下载路径:链接:https://pan.baidu.com/s/1hstORTa 密码:kvfi pem -> ppk :通过PuTTYgen 转换 1. I ...
- SpringMVC 请求响应流程
SpringMVC的工作原理图: SpringMVC流程 1. 用户发送请求至前端控制器DispatcherServlet. 2. DispatcherServlet收到请求调用HandlerMa ...
- 一次线上zabbix server 挂掉的思考
突然间发现zabbix 挂了,咋发现的呢?报警的世界突然安静了,你就会觉得不妥了.这是运维人员的通病,有报警嫌烦,没报警心里会不安.1,图形界面上确实显示zabbix server is not ru ...
- npm rebuild node-sass
在使用npm安装node-sass的时候,可能会出现如下的报错: Error: ENOENT: no such file or directory, scandir 'D:\IdeaWork\code ...
- mac一些设置
Mac自带了的JDK6,安装在目录:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/下. JDK8则需要自己到Oracle官网下载安装对应的版本. ...
- iOS NSUserDefaults
一.介绍 NSUserDefaults适合存储请练级的本地数据,对于一些简单的数据(NSString类型)来说是首选,但是如果我们自定义了一个对象,对象保存的是一些信息,这是就不能直接存储到NSUse ...
- DB通用类:Access通用类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- navicat创建存储过程的小问题
再简单的东西长时间不用了就会出错,特此即时的记录下来,以便以后参考! 转自:http://blog.csdn.net/winy_lm/article/details/49690633 以下为navic ...
- 10 sed命令的基本用法
grep灵活的关联正则表达式实现文件过滤,而sed是一个数据流的编辑器,或者说是一个行编辑器,它将文件一行一行的数据放入到内存中进行编辑,而awk是一个报告生成器,这个我们以后再说: 之前我们介绍过g ...