zabbix检测网络质量取代smokeping

趁着中午休息时间写篇博吧。

最近让我很头疼的一件事就是公司网络的监控,不知道该用什么方案解决,大的网络故障一出现,老总第一时间就问怎么没有监控,这锅真的不好甩。花钱的方案有,但是作为运维人来说不是首选。怎么从开源领域找到一个切实可行的办法呢?

  1. 写脚本,全国的节点每个机房抽两台机器跑脚本,管理难度大;
  2. smokeping,搭一台,这是有必要的,但是告警不好聚合与分级,没办法做总的预测;
  3. 用zabbix写一个template替代smokeping,看好zabbix告警聚合分级功能;


zabbix-trapper:这是一种数据传递方式,不同于zabbix-agent,这种方式定义的item需要使用zabbix-sender来发送数据给zabbix-server

(原文:http://wuhf2015.blog.51cto.com/8213008/1766184)

zabbix-sender需要的参数:

-z - 指定zabbix server的IP

-p - 指定zabbix server的端口,默认为10051

-s - 指定目标主机,主机名必须是配置中的hostname而不是visible name,切记

-k - 指定key,我们定义的trapper的key,这边便是我们前面定义的trap

-o - 指定要传递的数据

使用fping探测各节点丢包率

fping的参数:

-b ping包大小

-c ping的次数

-p ping间隔,单位ms



放在server端的externalscripts中的脚本:

#!/bin/bash
# 
ZBXSERVER=127.0.0.1
FPING=/usr/sbin/fping
ZBXSENDER=/usr/local/zabbix/bin/zabbix_sender
# Where to send ping
IP=$1
# How many ping to send
COUNT=$2
# What interval between ping [ms]
INTERVAL=$3
# How many bytes in one ping
BYTES=$4
# ‘Hostname‘ of the host which will collect data
HOSTNAME=$5
if [ $# -lt 5 ]
 then
     echo
     echo " Not enough parameters"
     echo " Usage: zbxsmokeping <HOST_IP> <NUMBERS_OF_PINGS> <INTERVAL> <BYTES> <TO_WHICH_HOST_SEND_DATA_IN_ZABBIX>"
     echo " Zabbix External Check Item ex.: zbxsmokeping[{HOST.IP},6,1000,68,{HOST.HOST}]"
  exit 2
fi
# debug
#echo $FPING -b $BYTES -c $COUNT -q -p $INTERVAL $IP 2>&1
OUTPUT=`$FPING -b $BYTES -c $COUNT -q -p $INTERVAL $IP 2>&1 | awk ‘{print $5,$8}‘ | tr -d "%|," | tr -s " " "/" | awk -F"/" ‘{print $3,$4,$5,$6}‘`
tab=($OUTPUT)
#echo ${tab[3]}
# debug
# echo $ZBXSENDER -z $ZBXSERVER -p 10051 -s $HOSTNAME -k PrimaryLoss -o ${tab[0]}
# echo $ZBXSENDER -z $ZBXSERVER -p 10051 -s $HOSTNAME -k PrimaryLatencyMin -o ${tab[1]}
# echo $ZBXSENDER -z $ZBXSERVER -p 10051 -s $HOSTNAME -k PrimaryLatencyMax -o ${tab[3]}
# echo $ZBXSENDER -z $ZBXSERVER -p 10051 -s $HOSTNAME -k PrimaryLatencyAvg -o ${tab[2]}
$ZBXSENDER -z $ZBXSERVER -p 10051 -s $HOSTNAME -k SmokLoos -o ${tab[0]} -v | grep  "failed: 1" &> /dev/null
$ZBXSENDER -z $ZBXSERVER -p 10051 -s $HOSTNAME -k SmokLatencyMin -o ${tab[1]} -v | grep  "failed: 1" &>/dev/null
$ZBXSENDER -z $ZBXSERVER -p 10051 -s $HOSTNAME -k SmokLatencyMax -o ${tab[3]} -v |grep  "failed: 1"  &>/dev/null
$ZBXSENDER -z $ZBXSERVER -p 10051 -s $HOSTNAME -k SmokLatencyAvg -o ${tab[2]} -v | grep  "failed: 1"  &>/dev/null

脚本赋予执行权限和属主,模板挂载需要探测的节点上,并不需要在每个节点上定义键值对。

模板中的项:

模板中的触发值:

模板中的图:



以上我们的zabbix形式的smokeping已经建立完成,下面就要用zabbix关联触发与平均值的方式设置主干网的监控了。

1.每个机房分一个组,在组的基础上设置一个丢包率平均值的it

em

2.设置这个组的警戒点

3.将几个组的警戒点关联在一起,都达到触发要求的时候执行总判断,判断为主干网故障。

时间: 04-18

zabbix检测网络质量取代smokeping的相关文章

通过持续ping来检测网络质量

通过在两个远程节点之间持续ping,可以来检测网络质量是否稳定. 下面的办法是每秒ping一次,每天一个日志. 一.ping脚本/opt/pinglog.sh,带日志记录 #!/usr/bin/env bash if [ ! -d /var/log/ping ];then     mkdir -p /var/log/ping fi pkill -f "/bin/ping -i 1 192.168.1.10" || sleep 1 /bin/ping -i 1 192.168.1.10 

2015-09-04 网络质量监控smokeping master/slave部署

http://my.oschina.net/lxcong/blog/150617 1.master的部署 参考前面 2.部署master/slaves a.master端 1)在master上添加配置,添加以下内容到配置文件 2)生成master校验文件 3)重启smokeping服务 b.在slaves端 1)生成slaves的校验文件 2)启动slaves服务 master的配置文件参考 smokeping页面和rrd图片支持中文 smokeping页面和rrd图片支持中文 默认不支持中文,

zabbix使用fping监控任意两个节点之间的网络质量、丢包率和响应时间

zabbix使用fping监控任意两个节点之间的网络质量.丢包率和响应时间 之前的博文 使用zabbix3.0.4的ICMP Ping模版实现对客户端网络状态的监控 https://www.cnblogs.com/reblue520/p/6832059.html 只能监控zabbix server到zabbix_agent之间的网络情况,不能监控任意两点间的网络情况 此次的方法可以监控任意两点之间的网络情况 需求: mysql主从之间同步经常会延迟,为了查看是否网络问题,先添加两个节点之间的网络

IDC机房服务器网络质量检测

一 应用场景描述 使用了多个IDC机房的服务器作为外层代理,但是经常有用户反映网站卡.当联系用户时,又不卡了.所以有必要对每台外网服务器到各个区域的网络质量进行监测以确保不是服务器的网络问题. 参考文档: http://blog.coocla.org/smokeping-slave.html http://blog.coocla.org/smokeping-with-nginx.html

linux6下网络环境监控工具smokeping部署

smokeping简介 smokeping是一款监控网络状态和稳定性的开源软件(它是rrdtool的作者开发的),通过它可以监控到公司IDC的网络状况,如延时,丢包率,是否BGP多线等: smokeping会向目标设备和系统发送各种类型的测试数据包,测量.记录,并通过rrdtool制图方式,图形化地展示网络的时延情况,进而能够清楚的判断出网络的即时通信情况: 通过smokeping来监控IDC机房网络质量情况,可以从监控图上的延时与丢包情况分辨出机房的网络是否稳定,是否为多线,是否为BGP机房以

Zabbix 检测Mysql数据库的主从同步

Zabbix 检测Mysql数据库的主从同步 在高并发网站架构中,MySQL数据库主从同步是不可或缺的,不过经常会发生由于网络原因或者操作错误,MySQL主从经常会出现不同步的情况,那么如何监控MySQL主从同步,也变成检测网站正常运行的重要环节. MySQL同步功能由3个线程(master上1个,slave上2个)来实现,简单的说就是:master发送日志一个,slave接收日志一个,slave运行日志一个. Slave_io_Running:yes Slave_SQL_Running: ye

Zabbix模版+网络发现

模版介绍 模版是一系列配置的集合,它可以方便地快速部署在某监控对象上,并支持重复应用,将模版应用至某主机上时,其定义的所有条目都会自动添加,模版的另一个好处在于,必要时,修改了模版,被应用的主机都会相应的做出修改. 模版中可以定义的内容:应用集(application), 项目(item),触发器( trigger),图形( graph), 屏幕(screen), 发现规则(discovery), web 模版创建 创建一个模版:在组态-->模版中点击创建模版 定义模版,创建一个模版名关联一个组

zabbix实现网络发现、自动注册、自动监控

网络发现是zabbix最具特色的功能之一,它能够根据用户事先定义的规则自动添加监控的主机或服务等 Zabbix的网络发现功能可以基于如下信息进行 ip地址范围 可用的服务(ftp,ssh,http,tcp,....) zabbix_agent的响应 snmp_agent的响应 网络发现通常包含两个阶段:discovery和actions 发现事件discovery: service:自动发现已有监控主机的服务 host:发现新的主机 四类事件:discovered,lost;up,downloa

两阶段实时检测网络ThunderNet

ThunderNet是旷视和国防科技大学合作提出的目标检测模型,目标是在计算力受限的平台进行实时目标检测.需要关注的地方主要就是提出的两个特征增强模块CEM和SAM,其设计理念和应用的方法都非常值得借鉴. 1. 介绍 在移动端的实时目标检测是一个极为重要并且有挑战性的视觉问题.很多基于CNN的检测器都有巨大的计算量,所以在计算受限的场景下难以进行实时推理.论文提出了一个轻量级的两阶段的检测方法-ThunderNet. 在backbone部分,分析了以往的轻量级backbone的不足并提出了一个专