码迷,mamicode.com
首页 > 其他好文 > 详细

zabbix3.4上使用自定义脚本监控公网tcp端口时延情况

时间:2018-07-19 22:02:07      阅读:560      评论:0      收藏:0      [点我收藏+]

标签:完成   用户   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!