基于监控告警数据的中间件节点自愈机制
2019-12-02刘璐豪赵静严俊斌梁兆楷
文/刘璐豪 赵静 严俊斌 梁兆楷
1 前言
伴随工业生产信息化的不断深入,各行各业在日常生产运作中的各种信息系统的使用越来越多,如何做好这些信息系统的日常维护十分重要,特别是一些对实时性要求比较高的特殊行业,比如电力行业、通信行业等。广州供电局作为南方电网的重要组成部分,一直在追求自身全面发展与提升,力求在企业信息化过程中不断突破自我。目前广州供电局使用了大量的实时信息监测系统,其中基于Weblogic集群的信息系统能够很好的直观显示整个网络中服务器以及各个节点的运行情况,为网络维护、系统维护提供了非常重要的参考,这使得增强系统整体稳定性变得可以操控。
2 基于Java的Weblogic鲁棒性
Weblogic是一个基于JAVAEE架构的中间件,是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器,它实现了将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中,目前使用较多的版本是2012年发布的WebLogic Server 12c(12.1.1)。Weblogic可以在使用IP地址的一台计算机,或在使用集群捆绑在一起的多台计算机上,或在通过代理服务器管理的多台计算机上建立拥有相同域名的不同站点,使得企业可以使用同一的网络入口实现多项信息管理的融合。Weblogic是基于Java的,其编写 可 以 使 用servlet,JSP,JavaBean和EJB等,在部署时比较简单流程化,另外安全套接层(SSL)的使用以及Weblogic的内在支持为用户验证和授权,实现强大的安全性,确保了信息的安全与系统的鲁棒性。
对于一个企业所使用的信息系统以及监控系统来讲,由于网络组成复杂,设备数量众多,附加上各个系统运行过程中由于各类数据冗余、常见硬件故障灯,经常会出现系统崩溃的现象,然而经过大量的实际情况统计与分析,很多时候整个系统的崩溃是由于某一个组成节点的宕机造成的,如果能够及时发现该节点的位置与宕机原因以进行相应的处理,就可以实现节点的自动恢复,避免由于单个节点的小故障导致问题的蔓延进而产生大面积的系统问题、网络问题。
在Weblogic集群中,必须要保证系统的高可用性,也就是说不论出现什么样的软件和硬件的故障情况下仍然能够提供服务,不得出现全面崩溃的现象。正常来讲Weblogic中的每一个节点互相之间都会进行数据交互以及监控,出现故障的时候,各个节点都可以进行一定的协调任务。另外也可以增加一个协调组件来对集群进行实时监控以及故障处理,通过降低模块之间的耦合度来实现系统的高可用性,通过主动地节点监控,及时的收集各个中间件节点的信息,当发现故障问题时实现服务转移,及时进行宕机节点的恢复以及后续业务的调整,保证系统稳健的运行。
根据实践总结,在进行中间件节点宕机自动恢复时,一般情况下会循环的从kafka队列中获取警告信息,对报警内容进行分析后,可以自动的确认是否是Weblogic节点宕机,当然在一些特定时期需要一定的人为干预。在确认了是某个节点宕机之后,先判断该节点的IP地址等重要信息,然后查看该节点是否安装了Agent代理,如果是那么就快速的对接短信平台并发送短信给相关直接负责人员及部门,然后在进境下一步操作。当然如果经过分析发现当前警告与宕机无关,那么仅仅需要对接短信平台推送一条警告信息就结束了。系统在确认了节点宕机之后,首先需要对目标服务器进行线程快照操作,一方面是一种工作日志的需要,另外这也是问题处理的实证与恢复参考,这一个过程需要在15分钟内完成,如果在这个时间内无法完成快照操作则跳过。除了对服务器进行快照之外,同时还要对目标服务器的内存进行快照操作,因为通常内存中的信息是导致宕机的重要原因,这个操作需要在30分钟内完成,超过时间限制也要跳过。在进行两个快照操作后,不论执行进度如何都要对目标节点发出执行停止命令。
当节点停止命令执行之后,要对节点所有的进程进行检测,查看节点的进程的运行情况以作后续分析总结之用,但这主要是为了确保节点所有进程停止运行以便进行重启操作,如果在5分钟之内节点进程没有退出,那么将需要通过PID进行强制关闭,然后对目标节点发出启动指令,然后循环的对节点进行检测,查看其是否完成了重新启动操作,一般来讲,如果在30分钟内节点依旧未能重新启动,那么就需要人工现场进行干预操作了。因此如果节点自动启动恢复了,那么要给相关人员与部门发送一条短信通知,告知问题自动解决节点故障自愈,如果30分钟后启动失败,更要发送短信给直接关系人快速到现场处理问题,避免故障继续蔓延。根据实际情况而言,由于电力行业是一个十分敏感的行业,一般出现问题时,不管系统是否会自动恢复,相关技术人员都会尽快到达现场,避免故障影响的扩大化。
3 结语
对与企业来讲,特别是对实时性要求比较高的供电行业,当系统内发生节点报警时,应当具备快速现场记录与应急恢复的能力,目前主流的系统集群框架都可以支持节点信息的实时查询与快速报警,如何快速准确的确认节点是否宕机,并实现有效重启恢复业务一直备受关注,具体的实现技术与过程值得不断的探讨与加强,这也是体现一个企业信息化处理能力的重要所在。