当前位置:首页 > 工业控制 > 《机电信息》
[导读]摘要:随着分布式计算服务的不断发展,信息系统所使用的服务资源越来越多,所涉及的设备也越来越多,而出于成本的考虑,运维人员却越来越少,因此,如何通过运维自动化缓解工作人员的压力显得尤为重要。现通过Zabbix自动告警配合Jenkins的任务配置,提出了一种能够可视化、可追踪的自动故障处理方式,可以有效提升系统的自动化运维水平。

引言

随着分布式系统以及x86服务器的大规模运营,系统所涉及的主机越来越多,应用的服务器类型也越来越多,使得业务复杂度逐步提升,运维人员的工作强度和压力也越来越大。为解决这一问题,提升维护工作的自动化水平势在必行。在系统日常维护工作中,故障处理是最常见的问题,对常见故障进行自动化处理,能够在极大程度上减轻维护人员的压力。本文将基于Zabbix和Jenkins,研究并设计一个自动化故障处理方案。

!$0ZZab和ienkans简介

Zabbix是开源分布式监控方案之一,具有良好的可用性和可靠性,能够对系统中的机器磁盘、CPU、内存以及网络状况进行实时监控并进行可视化呈现。相对于其他的开源监控软件,如Nagios、Cacti等,Zabbix具有更好的中文兼容性以及更好的文档支持[l]。

Jenkins是一个开源软件,其主要目的是为了对于持续的重复性工作进行可视化展现[2],旨在提供一个开放易用的软件平台。Jenkins具有丰富的插件,包括ssH、0racle、HTTPP0sT等,提供了易于扩展的能力,为配置化操作提供了便利[3]。

2系统设计总体介绍

系统总体设计流程如图1所示。

故障自动化处理是通过使用Zabbix对主机进行监控,配合Zabbix配置的触发器进行动作触发、告警,并通过调用在Jenkins配置的任务而实现的,并且可以运用短信进行可视化追踪呈现。整体设计包括4个模块:服务器监控模块、告警触发模块、预案调用模块、可视化配置操作模块。

2.!服务器监控模块

服务器监控模块主要用来采集每台生产机器的信息,是整个监控系统的核心。利用部署在每台生产机器上的ZabbixClient客户端对主机的信息进行采集,信息包括内存、CPU、磁盘、网络状况以及服务运行情况等。

监控平台通过服务器主机IP或者主机名对于不同的主机进行区分,实时对系统上报的信息进行处理,同时进行数据存储和展示。

2.2告警触发模块

告警触发模块是通过配置在Zabbix主机中的触发器和阀值来实现的,例如,当CPU可利用率高于阀值时就会进行告警:内存剩余可利用率低于阀值触发告警。对于一个具有较小容量的磁盘来说,80%的磁盘利用率已经具有很高的风险性了,而对于一个较大空间的磁盘而言,l0%的磁盘剩余足够安全运行很长时间。因此,对于不同的指标、不同的业务场景,需要配置不同的触发器以及阀值。服务器监控模块中的数据一旦满足触发器条件,触发器即会工作,触发相应的动作,Zabbix提供了多种操作方式,如Curl调用、ssH命令执行以及短信邮件等操作。

2.3预案调用模块

相对于Zabbix提供的操作方式,Jenkins的扩展性更为优秀,提供更多插件,Jenkins提供了极具扩展性的使用方式,无需进行代码编写,即可实现数据库sOL执行、shell脚本执行、HTTP请求执行等功能,具有优秀的可视化能力。本文采用ssH方法对远程主机的服务进行重启,磁盘空间清理、对数据库长会话进行监控处理、对锁表进行杀锁操作等,均可以通过Jenkins的配置操作方法实现。

2.4可视化配置模块

在Zabbix以及Jenkins中通过配置化的操作告警以及触发器和预案处理方式进行配置,避免了传统告警触发机制的黑盒化、脚本化。将故障和数据清晰展示在维护人员面前,进一步提高了运维水平,并降低了人员要求。

3系统配置实现方法

3.1系统短信发送

Zabbix的短信发送预置方式为调用串口进行短信发送,直接调用即可发送到设备。在目前的系统建设中,较少采用这种方式,而是采用PosT请求或者数据库插表的方式实现。短信内容在数据库插入表之后,后台发送进行扫描,这种处理方式具有较好的抗挤压性,可以提供较好的缓冲能力。本文通过编写脚本,将告警短信的接收者和接受短信设置为参数,传入后台sqlplus脚本中进行数据插入,Zabbix的短信模板如下:

Problems=ar=eta=(EVENT.TIME}on(EVENT.DATE}Problemname:EVENT.NAME}:(ITEM.VALUE}Hos=:(HosT.NAME}

severi=y:(EVENT.sEVERITY}

originalproblemID:(EVENT.ID}(TRIGGER.URL}

对于sqlPlus脚本而言,不同参数的传递是根据空格区分的,需要对后续参数进行合并,sqlplus脚本中第一个参数为接收者号码,而第二、第三以及第N个参数均为告警内容,在shell中使用msg='echos(@:2}'进行合并,将msg向后传输即可,最终生成接收者号码和短信内容的脚本进行传送。

3.2动作调用

触发器被触发后,调用短信模块将告警信息发送给接收者,同时利用Curl工具调用Jenkins中已经配置好的预案。

Jenkins出于安全的考虑,在远程调用过程中,需要通过验证用户密码和=oken来进行安全认证。为此,建议设置独立的用户进行远程调用。远程调用的格式是由用户名、key、JoB对应的URL以及=oken共同构成。例如:h==p://=riggerurl:t2一4f3347t982c一ca12一cc69323190a3@IP:Por=/0enkins/0ob/tblogspar=i=iontrop/builtj=oken==okenName。

其中,key的查看需要在Jenkins设置中通过查看用户APIToken实现,且每次查看后都会发生变更。=oken保护是针对任务而单独设置,不同的任务可以具有不同的=oken,是通过在Jenkins任务中"触发远程构建(例如,使用脚本)"来设定的。3.3Jenkins预案配置

系统触发告警后,如果立即触发故障处理,有可能在测试中造成系统不可用,因此,在预案被调用后,故障处理的最合适时间应该是等待N分钟后,并能够提供可取消的方案,从而避免被认为是误操作。在本文设计的方案中,调用预案后,通过Jenkins发送触发短信。系统提供URL可以实时取消,如果无人取消或者操作,系统将继续下一步,等待任务,并在完成后进行结果告知。

触发短信的模板是通过Jenkins预置参数来构建的,Jenkins的常用预置参数如表1所示:

利用这些内置参数,可以构建短信模板:如"xxxx告警触发任务:s(JoBNAME},s(BUILDURL},让系统等待5min后自动处理,可通过点击URL查看或取消",系统等待功能可通过sleep命令实现,最终配置如图2所示。

完成后可以进一步在Jenkins中添加其他故障处理配置,如重启服务、清理磁盘文件、调用数据库脚本等,从而实现系统故障的自动化处理。

3.4Zabbix动作配置

Zabbix采集到的数据经过触发器后,需要调用Jenkins中的任务进行处理,在Zabbix中进行动作添加即可实现。在Zabbix的动作操作中选择Zabbix服务器执行命令,脚本如下:

curl-xPosTh==p://=riggerurl:t2一4f3347t902c一ca12一cc69323190a3@IP:Por=/0enkins/0ob/tblogspar=i=iontrop/builtj=oken==okenName,即可调用相关配置预案从而进行相关处理。

4方案实现效果

在Zabbix收集到的数据经过服务器处理后,如果达到了触发器条件,则会首先发送告警短信给运维人员,然后调用Jenkins中的预置任务进行处理。Jenkins再次发送确认短信,如果无人操作,则继续工作,完成任务并发送结束告知短信。系统设计的最终效果如图3所示。

5结语

随着分布式系统的广泛应用,可视化维护以及自动化运维已经成为当前研究的热点话题,相对于传统的监控告警、人工上线等处理方式,本文设计的基于Zabbix和Jenkins的自动化故障处理方案具有可视化、可追踪的特点,一方面实现了对系统健康度的监控,另一方面能够对于常见故障进行实时自动处理,具有一定的实用价值和先进性,并进一步提高了运维质量,有效缓解了运维人员的工作压力。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭