本文主要是介绍zabbix故障自愈设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
zababix故障自愈设计
概述
在监控系统中,故障自愈是一个老生常谈的话题,他可以对于常见的运维故障,及时响应解决,减少人工干预,实现运维故障快速恢复。
这里采用zabbix的脚本功能,配合触发器,可以实现故障发生时,手动点击运行故障恢复脚本,达到故障自愈的效果。
故障恢复原理
在监控系统中,故障事件是由于某些指标数据不符合正常的期望数据,由此便引发了一个故障事件,提醒用户及时关注和处理。
针对于某些故障场景,恢复就比较简单,像服务停止,进程停止等,直接通过简单的命令行就可以恢复,针对一些复杂的故障,可能需要比较复杂的脚本运行逻辑,以及外部数据参与才能完成恢复,简单来说就是在故障发生后,通过运行一系列的预定义的脚本或者代码,来实现故障的及时恢复。
在zabbix系统中,提供了丰富的脚本解决方案,可以基于Webhook、脚本、SSH、Telnet、IPMI方式进行故障自愈,脚本的作用域可以为自动执行、基于主机手动执行以及基于事件手动执行。
在本文中,以在事件上进行手动执行,来验证服务停止情况下,故障自愈的场景。
配置
脚本配置
在脚本中,按如下所示,配置一个启动服务的脚本处理,由于当前版本的zabbix不支持传入参数(期待后续版本的zabbix能支持脚本参数传递,这在通过api调用的过程中还是十分有用的),所以只能将服务名通过事件的标签宏传入
触发器配置
在一个模板中,配置一个httpd服务的触发器,条件为当该服务处于不活跃状态下,则触发该故障
这里需要额外的设置事件的标签值,servicename为httpd.service,因为在脚本中,需要知道触发器中的标签名为servicename,以方便脚本知道需要启动哪个服务。其他的额外两个参数为我们产品内部项目使用的,可以不管
验证
设置完成之后,我们将目标服务器的httpd服务进行停止,使之产生一条告警数据
点击故障自愈->启动服务
执行完成后,脚本将以运行zabbix代理的用户,去执行 sudo systemctl start httpd.service,成功后等会便可以看到该故障就已经处于已解决状态
这篇关于zabbix故障自愈设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!