cdn设备需要监控,会在本地有个上报信息的程序,但是这个程序是否正常也需要监控,于是会在跳板机部署个监控脚本,来判断设备本身的监控进程是否正常。
这样有个弊端,到个别小运营商的链路有时不是特别好,其实可以用3台设备分别去探测,然后汇总到一起。
本文章使用的监控是open-falcon,内置有一个监测的接口。
Open-Falcon各个组件,都会提供一个描述自身服务可用性的自监控接口,描述如下。AntEye服务会定时巡检、主动调用Open-Falcon各实例的自监控接口,如果发现某个实例的接口没有如约返回”ok”,就认为这个组件故障了(约定),就通过短信、邮件等方式 通知相应负责人员。为了减少报警通知的频率,AntEye采用了简单的报警退避策略,并会酌情合并一些报警通知的内容。
API for my availability
接口URL
/health 检测本服务是否正常
请求方法
GET http://$host:$port/health
$host 服务所在机器的名称或IP
$port 服务的http.server监听端口
请求参数
无参数
返回结果(string)
"ok"(没有返回"ok", 则服务不正常)
#!/bin/bash
# 判断cdn设备falcon进程是否宕掉
# author emmby,last update on 2017-07-24,16:16:16
# version:2.0
# value: 0 错误;1 正常
export PATH=/home/caozhi/ven_work/bin:/usr/local/java/bin:/usr/local/java/jre/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ksyun/bin:/home/caozhi/bin
rm -f /home/caozhi/error.ip
rm -f /tmp/tmp.*
rm -f /home/caozhi/alllive_edge.hosts
ts=`date +%s`
metric="video_live_cdn_falcon_agent"
endpoint=`hostname`
function test_falcon () {
for i in `cat /home/caozhi/$ip`
do
curl -s --retry 1 --connect-timeout 2 -m 2 http://$i:1988/health -w "%{http_code}" > /tmp/tmp.