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

我们搭建了***,主要是利用公网地址上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)时告警

最后,定义图形,如下所示

最后完成效果如下所示

原文地址:http://blog.51cto.com/11555417/2147411

时间: 2024-08-10 08:43:31

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

zabbix自定义脚本监控pps(Packets per Second,包转发率)

一:介绍 网络的性能通常用吞吐率(throughput)这个指标来衡量.常用的网络吞吐率的单位有:PPS(即每秒发送多少个分组数据包).BPS(Bytes Per Second;即每秒发送多少字节).bPS (bits Per Second;即每秒发送多少比特).TPS(TransactionsPer Second;即每秒完成多少次发送过程). pps:(包每秒)包转发率标志了交换机转发数据包能力的大小.一般交换机的包转发率在几十Kpps到几百Mpps.包转发速率是指交换机每秒可以转发多少百万个

zabbix 自定义脚本监控配置之网卡

注:要添加自定义脚本监控,必须升级zabbix agent版本至2.0.0以上, 一:配置步骤 1. 完成自定义监控脚本的编写(windows或linux脚本) 脚本要求: (1)既然是监控,那必然要有输出结果值(字符串,数字皆可) (2)必须要求zabbix用户有执行权限,当然可以直接设置所有用户都有执行权限(chmod 777 脚本文件) (3)若脚本需要传入参数,按照参数传入的顺序,在脚本中可用$1-$9来引用传入的参数 2 找到zabbix agent的配置文件zabbix_agentd

zabbix通过orabbix和自定义脚本监控oracle数据库

由于公司要上oracle数据库,需要对这个东西惊醒监控,于是去网上淘资料,发现有一个套件orabbix监控oracle的效果还不错,于是拿来试验了一下.orabbix是由JAVA写的一个套件,需要在oracle服务器上面安装JAVA环境才能运行.这里为了简便,可以使用yum -y install java来安装JAVA环境. 安装完java环境之后可以通过下面命令来检测是否安装成功: [[email protected] ~]# java -version java version "1.7.0

zabbix使用自定义脚本监控内存

我这里的脚本是监控centos7系统的内存.centos7系统的内存如何查看我之前的博客都是有的.这里直接写了监控步骤 1.首先是编写脚本. #!/bin/bash mem_total(){ TOTAL=`free |grep -i mem |awk '{print $2}'` echo ${TOTAL} } mem_use(){ USE=`free |grep -i mem | awk '{print $3}'` echo ${USE} } mem_free(){ FREE=`free |gr

nagios自定义脚本监控

客户端IP:192.168.1.11 服务端IP:192.168.1.12 目的:检查eip用户的java进程是否存在 客户端配置 脚本名:check_pid.sh 脚本如下: #! /bin/bash si=`ps -ef|grep java|grep eip|wc -l` if [ $si -eq 1 ];then echo "status ok" exit 0 else echo "The pro is down,plaese check!" exit 1 f

nagios自定义脚本监控<检查eip用户的java进程是否存在 >

客户端IP:192.168.1.11 服务端IP:192.168.1.12 目的:检查eip用户的java进程是否存在 客户端配置 脚本名:check_pid.sh 脚本如下: #! /bin/bash si=`ps -ef|grep java|grep eip|wc -l` if [ $si -eq 1 ];then echo "status ok" exit 0 else echo "The pro is down,plaese check!" exit 1 f

Cacti 自定义脚本监控

************************************************* 脚本内容: [[email protected] scripts]# cat get_snmp_network_data.sh #!/bin/bash # ======================================================================================== # goldengate health plugin for Na

Nagios 利用NSClient++的check_nrpe方式使用自定义脚本监控windows

分类 NsClient++来监控windows主机有三种方式:check_nt.check_nrpe.nsca.check_nt自带很多功能,但是扩展性差,check_nrpe可以通过执行自己定义的脚本做到很好地扩展(官方推荐). 原理 监控端通过check_nrpe把要监控的指令发送给被监控端,被监控端在本机执行监控任务,并把执行的结果发送回被监控端. 实现 以NSClient++0.3为例,示例的功能是监控某个进程是否运行. 1. 编辑NSClient配置文件NSC.ini,去掉以下几行前面

zabbix通过自定义脚本监控nginx,php-fpm和mysql占用内存数和进程的个数

首先,在zabbix脚本目录下添加一个脚本,写入如下代码 #!/bin/bash #license:GPL #mail:[email protected] #date:2015.04.16 top -bn1>/usr/local/zabbix-2.4.4/scripts/process.log LOG=/usr/local/zabbix-2.4.4/scripts/process.log php_fpm(){ grep "php-fpm" $LOG |awk '{sum+=$6}