有客户监控CDB的公网延迟,细粒度到每秒,对你没听错是每秒,云平台级别的监控阿里云/腾讯云虽都支持自定义监控,可是限于数据的存储,粒度最小为每一分钟,阿里云免费云监控频率是5分钟,收费的粒度才可调至1分钟,对此想到利用ZABBIX来进行每一秒的数据上报,最终利用其绘图来进行展现。在此抛砖引玉,其余自定义监控均为此类方法,只须要简单修改脚本获取到须要上报的值便可。bash
安装与zabbix版本同样的zabbix sender
例如此处安装3.0的版本服务器
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm yum install zabbix-sender -y
其核心为利用zabbix_sender来发送数据分布式
zabbix_sender -z zabbix服务器的地址 -s 建立主机的主机名称 -k 键值名称 -o 上报的数据 -p zabbix 服务器的端口
在此只简单来监控公网地址的ping延迟ide
#!/bin/bash #auth:kaliarch # ping可执行路径 PINGCMD=/usr/bin/ping # zabbix_sender可执行文件路径 SENDCMD=/usr/bin/zabbix_sender # ping测主机ip地址 CHECKHOST=baidu.com11 # zabbix服务器ip地址 ZABBIXSERVER=43.254.55.xx # zabbix服务器监听端口 ZABBIXPORT=10051 # zabbix添加这条监控主机名 LOCALHOST=checkping_monitor # ping包的数量 PAG_NUM=1 # 添加监控项的键值 ZAX_KEY=ping_response # 获取ping响应时间 check_ping() { $PINGCMD -c $PAG_NUM $CHECKHOST >/dev/null 2>&1 if [ $? -eq 0 ];then RESPONSE_TIME=`$PINGCMD -c $PAG_NUM -w 1 $CHECKHOST |head -2 |tail -1|awk '{print $(NF-1)}'|cut -d= -f2` echo $RESPONSE_TIME else echo 0 fi } # 发送数据到zabbixserver send_data() { DATA=`check_ping` $SENDCMD -z $ZABBIXSERVER -s $LOCALHOST -k $ZAX_KEY -o $DATA } while true do send_data sleep 0.5 done
其中上报给zabbix server端的数据能够根据本身实际自定义需求上报便可
在服务器上将脚本在后台运行便可。阿里云
nohup /bin/bash check_ping.sh &
注意:此处的主机名称为脚本中的-LOCALHOS3d
注意:此处类型选择zabbix采集器,键值为脚本中的ZAX_KEY,下面填写容许上报的主机IPcode
能够看到监控的粒度为1秒钟server