配置 nodata 告警策略后,重启应用系统就会先报 nodata 的告警

black83 发布于 06/30 11:26
阅读 45
收藏 0

精选30+云产品,助力企业轻松上云!>>>

配置了“监控agent失联 (proc.agent.alive)”的 nodata 告警策略,统计周期是 180 秒(上报周期 60 秒),关闭应用系统(./control stop all),等个 10 秒后,再重启应用系统(./control start all),发现都产生了“监控agent失联”的告警,然后很快就又产生了“监控agent失联”的恢复记录。

如果是通过重启命令(./control restart all),则有些会产生“监控agent失联”的告警,有些不会。

加载中
0
夜莺监控
夜莺监控

先stop再start,和restart相比,就是前者花的时间更久一些,监控数据上报填充需要一个过程,主要是tsdb模块没有及时填充好,所以nodata报警了,后面升级重启之前可以把proc.agent.alive统一屏蔽一下

0
black83
black83

由于对于服务器突然停电重启的情况,无法提前预判,因此无法提前设置屏蔽,另外屏蔽时需要一个个指定要屏蔽的 endpoint ,比较繁琐。因此结合官方技术人员的帮忙解答,考虑了个解决方案,通过修改 control 脚本的 start_all 方法,让 judge 延迟启动,确保启动时,已接收到上报的数据,这样就不会报 nodata 报警了。修改后的内容如下:

start_all()
{
    # http: 5800
    test -x n9e-monapi && start monapi
    # http: 5810 ; rpc: 5811
    test -x n9e-transfer && start transfer
    # http: 5820 ; rpc: 5821
    test -x n9e-tsdb && start tsdb
    # http: 5830 ; rpc: 5831
    test -x n9e-index && start index
    # http: 2058
    test -x n9e-collector && start collector
    
    declare -i interval=60 # 注意:须与探针上报周期 interval 值一致
    declare -i counter=0
    declare -i max_counter=$interval+5
    printf "等待探针采集上报周期 ${interval} + 5 秒后再启动 judge ,避免启动时产生 nodata 告警"
    until [[  (( counter -ge max_counter )) ]];
    do
        printf "."
        counter+=1
        sleep 1
    done
    echo
    # http: 5840 ; rpc: 5841
    test -x n9e-judge && start judge
}

返回顶部
顶部