标签:完成 用户 roc vpd shell脚本 文本 strong 扫描端口 text
我们搭建了***,主要是利用公网地址上tcp端口映射进行连接,从而达到访问的目的。但是有时候,网络不稳定,或者是公网地址震荡异常,导致***连接异常,所以我们很有必要监控tcp端口的连接的时延情况,当时延大于1000ms时,会严重的影响到使用体验,这时就要排查网络原因了。如果能利用zabbix监控tcp端口的情况,并统计,当达到一定阈值的时候就告警,方便及时排查。
一、思路
1.linux上,可以使用nmap程序扫描端口之外,还可以统计大致的扫描结果,可以利用每次扫描端口的耗时来衡量网络连接质量,例如时延;
2.编写shell脚本,定期检测nmap扫描结果,截取耗时的字段,生成监控项,衡量时延
3.zabbix上可以使用外部检查的方式使用自定义脚本
4.zabbix上利用脚本,定期检查,生成图形和告警
二、脚本编写
使用nmap程序,获取指定端口连接信息
nmap -Pn xxxx.xxxx.xxxx.xxxx -pxxxxx
获取信息如下所示
其中(0.0081s latency),指的就是监测指定端口扫描的时延,这个就是我们需要获取的信息
为了获取指定信息,我们就必须使用正则表达式和相关的文本处理,按照如下方式进行
nmap -Pn xxxx.xxxx.xxxx.xxxx -pxxx|grep 'Host' |awk '{print $4}'|sed 's/^(//'|sed 's/s$//'
完成处理后,显示结果就是我们需要的信息
按照以上,就可以编写脚本了,记得加上可执行权限
zabbix上的外部脚本是以zabbix用户身份运行的,而nmap的运行需要root权限,这时我们需要必须使用visudo让zabbix用户能够以root权限运行nmap,网上关于visudo的教程很多,本文不再说明
在20行下添加
zabbix ALL=(root)/usr/bin/nmap
完成脚本编写后,将脚本放在/usr/lib/zabbix/externalscripts/路径下
三、监控实现
在zabbix上,配置监控项,使用外部检查的方式
注意,信息类型改为浮点,而非数字;更新间隔推荐60秒以上
配置触发器,当延迟超过1000ms,则开始报警
触发器定义方式为在平均5分钟内检查到监控项的平均值大于1(1000ms)时告警
最后,定义图形,如下所示
最后完成效果如下所示
zabbix3.4上使用自定义脚本监控公网tcp端口时延情况
标签:完成 用户 roc vpd shell脚本 文本 strong 扫描端口 text
原文地址:http://blog.51cto.com/11555417/2147411