随着智慧运维平台的不断落地,我们基于平台能力,落地了很多场景,监控、告警、运维操作等等,但我们的监控场景与运维操作场景依然还是分段式的,平台监测到故障告警,依旧需要运维人员根据告警内容去判断执行相对应的运维操作。
如何将监控、告警能力与运维操作能力结合,使之成为一套完整的自动化流程?这就是本篇我们分享的主题——基于智慧运维平台故障自愈场景的小“探索”。
基于智慧运维平台监控weblogicserverFullGC情况,模拟触发FullGC告警,再基于平台ATM模块编排自愈运维操作,在告警产生后自动触发故障自愈操作,完成自愈操作。
监控自愈流程如下:
基于AMP监控采集FullGC信息,同时针对监控项配置告警触发器
基于ATM配置自愈操作,完成故障时刻信息搜集、server重启
绑定告警与自愈操作,使告警产生后自动触发完成自愈动作
模拟FullGC场景,触发故障自愈流程
监控配置模块,相信各地已经玩的很溜了,也不是本文探究的主题,在此就不占用太多的篇幅去介绍如何去基于AMP接入监控了。我们在测试环境部署了一套weblogicserver,将GC信息接入平台监控:同时针对JVM堆old区使用率配置了告警触发器(PS:GC监控场景有很多,如:FullGC次数、持久代使用率、O区使用率等等,本次仅以O区使用率作为验证场景)。
同样针对操作编排的配置,相信大家也都有用过,本文也不做详细赘述。针对本次测试,我们在ATM模块简单配置了一个weblogic自愈操作:操作内容也很简单,搜集了故障时刻server的堆栈信息treaddump、heapdump(PS:由于是测试,未做过多的信息搜集),之后便进行了服务重启动作,脚本配置了采用local模式执行。
配置故障自愈方案,当配置了故障处理方案且符合触发条件的告警产生时,故障自愈方案可自动执行,对Server进行应急处理,达到快速解决故障的目的。可在监控模板告触发器配置时,“故障自愈”页面配置操作绑定
或者在配置管理的“告警自愈配置”模块新增自愈配置,绑定监控模板和触发场景。两个页面配置类似,见下图,在故障自愈方案选择田间之前在ATM配置好多自愈操作:
配置完成后,如下图,则新增了一条故障自愈策略,“启用状态”开启,“自动执行”状态开启。其中自动执行状态若是未开启,则告警产生后需要手动触发自动动作,可以根据具体需要设定。
至此,一个简单的故障自愈场景算是配置完成了。
在模拟FullGC场景之前,我们先来观察一下正常情况下,weblogicserver的GC情况,如下图,JVMold区使用率较低,稳定在12.4%左右,FGC次数也仅有3次。
当模拟触发了FullGC场景后,weblogicserver进程的FULLGC频繁执行,old区使用率也接近100%。
观察平台,告警如期触发:
自愈动作在告警触发后同样触发,如下图,自愈触发记录
触发自愈操作,搜集信息及weblogicserver信息,如下图,服务重启,证实自愈动作作发生:通过平台GC信息采集看,JVM堆Old区使用率在触发FULLGC前后的变化趋势图,从10%->100%->10%,恢复到正常水平。
Weblogicserver在模拟FullGC并自愈前后GC次数的变化趋势图如下图所示,FullGC次数迅速增加,触发自愈动作重启实例后,FULLGC再次恢复实例启动状态。
自愈后告警状态自动变更为“已恢复”,至此,自愈流程验证完成。
以上便是通过智慧运维平台AMP监控场景、ATM运维操作场景结合,以完成从监控,到告警产生,再到故障自愈的一次“探索”。过程略简陋了些,在实际运维中,自愈场景需要考虑的点有很多,如自动or手动触发自愈,自愈搜集哪些信息,如何确保自愈动作100%完成,风险等等,都是需要我们根据不同的故障场景,去探究分析一套安全有效的解决方案。