长江干线数字航道系统守护进程的研发与应用

2024-02-17 00:35徐为李睿管宇航王胤泽张翔
中国水运 2024年1期
关键词:航道进程报警

徐为,李睿,2,管宇航,王胤泽 ,张翔

(1.长江武汉航道局,湖北 武汉 430040;2.中国地质大学(武汉)国家地理信息系统工程技术研究中心 地理与信息工程学院,湖北 武汉 430074;3.嵩山实验室,河南 郑州 450046)

近些年,随着数字航道的建设及深入应用,我国内河航道业务实现了主要助航设施的动态监测和及时维护、航道维护资源的科学配置和联网调度、航道主要现势信息的可靠发布和共享服务,极大地提升长江武汉航道局航道安全畅通效能及信息服务水平。保障数字航道系统平台长期稳定运行是数字航道持续发挥通航效益的基本及核心工作。但是,数字航道的各个关键应用偶尔会出现系统进程卡死的状况,无法及时恢复系统正常运行,这样会严重影响数字航道系统的稳定运行,造成不可预知的重大影响。因此,为了保证数字航道系统高可用性,当前迫切需要研制一套进程守护程序,实现数字航道系统平台各个关键应用的实时监听、故障报警和自动重启功能。

针对数字航道系统,采用进程级别监控和守护,可以及时发现并且干预数字航道系统进程运行方面的隐患及问题,并将根据故障问题严重等级进行针对性处理,对数字航道的高系统可用性需求做出探索性尝试,同时也是为长江航道维护服务的智能化、自动化和标准化奠定基础。因此,开展本项目的研究非常有必要。

在监控系统方面,考虑到商业监控高昂的使用成本和学习成本,本研究采用开源监控解决方案。Zabbix是一个目前比较成熟的开源监控解决方案,支持多种操作系统,可实现跨平台分布式部署。Zabbix 拥有灵活多变的报警策略,可以及时发现系统产生的异常,同时Zabbix 集成了多种数据采集方式,可应对多种情况下的跨平台监控,十分契合本研究的需求。

综上所述,本研究要解决的问题有两个,第一个问题是针对分布式系统进行进程级别的细致且实时监控;第二个问题是通过系统日志、系统运行状态和服务器接口等多渠道定位系统异常所在。因此,本研究将采用Zabbix 企业级开源监控解决方案对长江数字航道系统所在的服务器集群分别进行系统核心进程监控。同时开发守护进程系统,该系统将会分析通过Zabbix 收集到的数字航道系统实时运行数据,系统日志以及服务器状态,判断当前系统是否发生异常,以及是否进行报警和故障处理。

1 系统模块分析

1.1 跨平台服务器集群监控模块

针对进程级别的故障监控需要将监控数据从整个服务器的监控数据细分到每一个相关进程的监控数据,包括进程占用的CPU、内存、硬盘等硬件参数以及系统页面响应时间参数等,是整个守护进程系统得以运行的基础。

1.2 进程健康综合判定模块

数字航道系统守护进程制定并采用健康指数的目的主要有以下三点:①判断进程运行状态,是否发生故障;②寻找硬件系统可能存在的性能瓶颈,定位性能瓶颈并提供对应的硬件升级方案;③记录系统负载历史,帮助分析用户行为对系统带来的冲击和影响。

1.3 监控平台可视化模块

系统监控数据的展示采用大屏图表的形式进行可视化,通过Grafana 监控展示技术使监控主页实时展示监控进程的各项具体信息,并且通过管理员编辑模块自定义监控展示内容。系统能清晰展现被守护进程当前的运行状态,方便运维人员快速了解当前系统运行的各项指标。

1.4 自动报警与自动重启功能模块

当进程出现卡死或者系统宕机的情况下,本系统可以对系统管理员发出报警通知,与此同时针对系统宕机的情况进行自动重启操作,最大程度地减少系统不可用时间。

1.5 监控历史数据分析模块

对于不断产生的监控数据,系统实现了历史数据分析功能,能将当前系统监控数据与历史异常运行时段的数据进行对比,判断系统未来一段时间内的风险情况。此外在系统发生重大故障时还可根据日志、报错信息以及监控数据分析此次问题的具体原因,为未来各个系统的代码逻辑优化提供具体建议,预防系统再次卡死或宕机。

2 系统设计

2.1 系统总体设计

系统整体采用Vue、SpringBoot、MySQL、Zabbix 等技术进行高效快捷的开发。如图1 所示,该系统主要分为四个部分。系统的架构设计图如图2 所示。

图1 系统设计模型

图2 系统架构设计图

图3 进程守护系统界面

系统管理员可以通过界面添加新的监控进程以及修改相关指标报警阈值。同时在系统后台有详细的日志功能,将系统运行过程中的关键信息和动作进行汇总统计,便于管理员进行回溯分析。

2.2 系统稳定保障设计

Zabbix 客户端有两种工作方式,分别是主动式监控与被动式监控,其中,被动式监控比较适合内网环境下的监控需求,同时减轻Zabbix Agentd 在被监控服务器上的运行负担。

作为守护进程系统,首先要保障系统自身持续且稳定的运行,这样才能去守护其他的系统。当Zabbix 监测到进程守护系统没有响应后,会自动调用进程守护系统的重启脚本,保障系统持续可用。

对于被守护的数字航道系统,则不能轻易的采取自动重启的方式,否则会因网络故障或某些轻微干扰导致系统频繁重启,严重影响用户体验。对于用户使用较少的深夜时段,可以采用自动重启功能,减少重启的可感知程度。

2.3 系统安全设计

该项目研制过程中,严格遵循网络安全相关要求。服务器机房安装在长江武汉航道局内,进出需要进行身份验证。登录服务器前需要进行强密钥安全验证。进程守护系统实现了用户身份管理。与此同时,还将通过如下的手段保障安全。

(1)该技术将部署于长江武汉航道局超融合平台上,在长江武汉航道局内网环境下使用。

(2)该技术部署服务器安装专业的EDR 病毒防护系统,并接入长江武汉航道局安全感知平台、入侵检测(IDS)和入侵防御(IPS)系统。

(3)该技术部署后,将进一步经过漏洞扫描系统后,通过升级安全漏洞补丁等手段封堵住操作系统和应用软件本身所带来的安全漏洞。

进一步检查是否配置虚拟防火墙、路由器过滤策略和系统本身的各项安全措施(如针对各类攻击所进行的通信协议安全配置)。

3 系统关键技术

3.1 基于Zabbix 的服务器集群多进程实时监控关键技术

本研究对Zabbix 提供的开源监控解决方案进行了简化,使其在保证轻量化的前提下适配数字航道系统监控需求。本研究实现了面向服务器集群多进程的轻量化自动监控技术,该技术包含数据可视化、分布式系统监控以及网络流量监控功能,能完整反应进程当前运行状态。

3.2 多维度的健康判定模型与分级关键技术

为构建多维度的健康判定模型,结合计算机操作系统相关技术以及在测试环境服务器中一个月的系统指标监测。本研究提出了一种由CPU 利用率、硬盘读速率、磁盘写速率、内存占用率、数字航道网页响应时间以及进程心跳指数六种参数组成的健康判定模型。并根据实际情况搭配了一个合理的权重分配公式,进程守护系统能依据这些指数准确判断当前系统所处状态。

3.3 基于事件驱动机制的进程守护消息推送报警关键技术

本研究在进程守护系统中使用了基于事件驱动机制的报警信息推送技术。用户可以在系统界面中自行设置相关的报警阈值、报警媒介、恢复阈值以及报警接收者。当监控项的监控数据超过阈值一段时间后,进程守护系统将会触发消息推送机制,使用邮件或接口调用等形式完成报警信息的推送,达到及时预警的效果。

3.4 多情景下的进程多策略重启关键技术

当进程卡死或者健康指数过低时系统会进行自动重启。重启的策略包括手动重启、自动重启、低健康指数重启和定时重启。这一关键技术使其能够智能化地辅助进程管理。

4 系统应用效益和创新性分析

4.1 系统应用效益分析

进程守护系统预警反应快捷,告警信息发布及时,进程自动重启及时准确,实现了数字航道系统的高可用性,达到了项目的预期效果。运维人员可在故障发生的第一时间得到故障信息,发现问题,解决问题。目前系统纳入监控范围的进程为数字航道核心进程与数字航道核心数据库,在系统试运行过程中,共发生进程低健康指数报警1 次,进程未响应3 次。在测试人员和管理员核对后发现该系统自动报警和自动重启功能的反应均比较及时,进程提供的故障信息和实际状况相符,可以较好地完成数字航道核心进程监控的任务。

在生产环境的数字航道系统中,未采用本系统时的系统故障平均响应时间一般在15 分钟左右,在核心进程卡死故障发生期间系统无法进行任何数据交互,将造成大量的数据丢失,甚至是无法挽回的经济损失。如果能在生产环境中使用本系统进行数字航道系统的进程守护工作,则可以将系统故障平均响应时间大大缩短至10 秒以内,预计将减少88%的经济损失。

4.2 进程健康判定指数方面的标准创新

为构建多维度的健康判定模型,除了基本的硬件性能参数以外,该系统提出的进程健康指数判断模型还针对数据量大用户多的问题,在模型中加入了数字航道网页响应时间参数,该参数是系统体验好坏的关键参数。同时该判定标准还采用了动态权重的进程健康指数计算方法。当某一指标大大超过判定的区域时,会被标记为异常状态,该项判定指标的权重将会动态提升,以降低进程健康指数的最终得分,让管理员发现该项指标发生了异常。

4.3 智能管理方面的模式创新

由于数字航道系统所处硬件环境的特殊性,所有服务器均运行在内网环境。为解决这一问题开发者通过使用进程重启脚本的方式来实现数字航道系统核心进程自动重启功能。同时提供四种不同的重启策略来应对不同的情境和需求。例如设定在深夜时段的定时重启可以保障系统及时清理运行时产生的冗余缓存数据,解决部分报错问题,同时保持最小程度的重启可感知性,保证系统持续高可用性。

5 结语

数字航道系统高效运行的核心前提是数字航道系统平台的稳定运行,实时提供数字航道各项关键业务数据。为更好地保障数字航道系统平台的稳定运行,提高系统运维效率,本研究提出了一套进程守护系统来实时监测数字航道系统核心进程状态,并在核心进程出现异常情况时,及时进行报警或自动重启,减少从出现问题到发现问题所需的时间,大大提高数字航道系统的稳定性。本研究取得的成果如下:

(1)本研究通过对长江数字航道系统整体框架与技术构成的深入研究,提出了一套基于Zabbix 的针对分布式系统的守护进程原型系统。

(2)该系统通过一系列关键技术实现了对数字航道系统所在服务器集群的实时进程级监控,分析以及故障报警等功能。同时制定了多种进程重启策略以满足不同情形下的重启需求。

(3)开展了守护进程原型系统在数字航道系统测试环境中的部署以及相关测试工作,该系统可展示实时监控数据,对于系统故障能在秒级时间内发出警报,大大减少系统故障平均响应时间与故障发生后带来的经济效益损失。

猜你喜欢
航道进程报警
债券市场对外开放的进程与展望
LKD2-HS型列控中心驱采不一致报警处理
新航道
2015款奔驰E180车安全气囊报警
死于密室的租住者
奔驰E260车安全气囊报警
我国首条40万吨级航道正式开建
社会进程中的新闻学探寻
我国高等教育改革进程与反思
Linux僵死进程的产生与避免