基于Zabbix的铁路客票监控系统研究

2021-12-31 08:01
铁路通信信号工程技术 2021年12期
关键词:服务器端运维报警

毕 瑶

(北京全路通信信号研究设计院集团有限公司,北京 100070)

铁路客票系统以票务服务为核心,以提升客运服务的自动化和智能化水平为目标,实现窗口售票、自助售票、互联网售票等多渠道购票,支持现金、银行卡、移动支付等多种支付方式,实现自动检票、快速通过。作为铁路行业必设的基础信息系统,客票系统需提供7×24 h不间断票务服务,可靠性要求高。随着移动支付和互联网售票技术的应用,客票系统规模越来越庞大,体系架构越来越复杂,硬件设备和服务应用发生故障的可能性增大,而且还面临假期、节日等瞬时大流量、高并发压力等问题易发场景,因而客票系统的监控运维工作十分重要。特别是节假日客流集中、运力不足、供需矛盾突出的时段,客票系统的社会关注度高、影响力大,监控尤为关键。

铁路客票系统的监控一般采用人工巡检加问题反馈的方式,运维效果取决于维护人员的业务水平,因而该方式普遍存在发现不及时、排查难、解决慢等问题。很多情况下,只能等到事件已对业务造成影响时才发现并着手处理,延误了故障处理时间,扩大了事件影响范围,使运维工作处于被动状态。特别针对软件服务应用以及服务器集群、负载均衡器、网络安全防护等专业硬件设备监控运维能力较弱,发生故障时只能依靠厂家的技术支持和售后服务来解决。

因此,研发一套高效可靠的客票监控系统来指导运维人员快速定位并解决故障就显得尤为迫切。对涉及业务应用的服务器、网络设备、数据库、服务程序等IT资源的运行进行自动监督和预警,提供便捷、及时的事件通知和故障自愈处理,构建自动化、标准化和规范化的运维模式。

1 Zabbix概述

Zabbix是一款成熟、高度集成的商用监控产品,具有开源、分布式、开箱即用等特点,并提供良好的Web前端界面,适用于系统级可用性和性能监控。Zabbix的Web界面如图1、2所示。

图1 Zabbix前端界面示例1Fig.1 Example 1 of Zabbix front-end interface

Zabbix具有常见的商用监控软件所具备的功能,如服务器监控、网络监控、数据库监控、Web监控、可视化展示、报警通知、API功能等。

Zabbix的功能特性如下。

1) 数据采集

a.可用性、性能检测;

b.支持多种数据采集方式,有专用的采集客户端Agent,也支持多种通用协议,如SNMP、IPMI、JMX、Telnet、SSH等;

c.支持Web监控,可模拟浏览器访问网站,检查返回值和响应时间;

d.支持日志审计;

e.用户自定义检测和自定义采集频率。

2) 数据存储

a.将采集的数据存储在数据库中,支持MySQL、Oracle、SQLite等常用数据库;

b.历史数据的存放周期可配置,自动定期删除过期数据。

3) 多种可视化展示

a.支持各类图形、图表、网络拓扑图、地图等可视化展示方式;

b.可自定义监控展示图,支持集中聚合展示。

4) 自定义可配置的告警

a.支持自定义告警,可灵活配置告警阈值及与多种告警关联条件;

b.支持邮箱、短信等告警通知;

c.支持告警发生后自动处理功能包括远程命令的自动调用和执行。

5) API功能

a.Zabbix提 供 基 于JSON-RPC 2.0协 议 的API,支持检索和修改Zabbix的配置,并提供对历史数据的访问;

b.应用API功能可方便与其他系统或第三方软件集成。

Zabbix的通用架构为客户端/服务器端模式(C/S模式),客户端负责采集监测数据,服务器将收集到的数据持久地存储到数据库中,通过前端UI友好地展示给用户。为分担服务器端压力,可采用分布式的客户端/代理端/服务器端模式,由代理端替代服务器端收集监测数据,然后把数据汇总给服务器端。Zabbix的架构如图3所示。

和其他监控产品相比,Zabbix具备以下优势:

1)Zabbix软件自由开源,用户可根据实际需要对源码进行二次开发;

2)安装和配置简单,可使用自带模板方便完成监控系统的搭建;

3)Zabbix-Server和Zabbix-Agent采用C语言编写,对系统资源占用非常少,数据采集的性能非常好,速度非常快,支持跨平台、跨系统监控;

4)监控数据存储在数据库中,可进行统计和二次分析;

5)具有很强的扩展能力,可以轻松地自定义监控项和实现数据采集。

据Zabbix官方提供的资料显示,单个服务器节点可以支持10万台设备的监控,每秒可以处理5万次请求,对于大中型业务监控的应用场景适用。

2 基于Zabbix的客票监控系统设计

鉴于Zabbix的整套开箱即用的成熟解决方案,本文选择基于Zabbix设计开发客票监控系统。

2.1 设计原则

1)基于业务拓扑的一体化全方位监控

从客票业务角度出发,建立以业务为核心的监控视图,将各业务组成的IT 资源如服务器、网络设备、人工终端设备、自助售检票设备、Oracle数据库、Apache、应用服务等全面纳入监控体系,按照整体业务逻辑关系模型整合、关联监控项数据,从而第一时间发现、识别以及预警业务事件,快速定位问题关键环节和故障隐患设施,指导运维人员精准实施,保障客票业务的正常运行。

2)分布式集中管理

采用分布式的客户端/代理端/服务器端模式,即Agent/ Proxy /Server模式,以提供大规模监控性能。服务器端Server安装在调度中心,负责整条线路监控数据的集中存储和管理,代理端Proxy安装在车站服务器,定期将所辖车站的监控数据汇总给 Server 端,实现分布式监控以减轻Server端的负载压力,客户端Agent安装在各监测终端,负责监控数据的采集。

提供统一的Web界面进行集中管理,辅助运维人员及时掌握客票系统整体业务链的运行状况。

3)完善的报警通知机制

支持邮件通知功能,也可通过二次开发扩展短信、微信公众号等及时通知渠道。同时为提高报警信息的准确性,避免出现系统误报和报警风暴,加入了延时报警、合并报警和报警恢复等收敛机制,即5 min内同一监控点相同类型未恢复的报警信息合并成一条进行通知。

4)故障自愈处理

利用Zabbix报警后执行远程命令的功能实现故障自愈处理,针对每一种故障制定出详细的处理步骤,如重启服务、数据备份调整、日志拷贝等操作,并整理为可自动处理的命令脚本。当指定类型的故障报警后系统自动执行自愈脚本,从而实现故障无人值守以及故障处理的标准化、规范化,最大限度地保障客票业务的可用性和稳定性,减少人力投入及人为操作失误风险。

2.2 基于Zabbix的客票监控系统架构

基于Zabbix的客票监控系统架构如图4所示。

从客票业务角度出发,构建了窗口售票、自助售票、制票、检票、计划管理、支付接口、互联网售票等七大监控视图:整合监控业务关联的服务器、网络设备、人工终端设备、自助售检票设备、Oracle、Apache、应用服务程序等,通过灵活配置触发器,设置优先级,从而第一时间报警业务事件以及定位问题关键环节和故障设施,同时预警隐患,实现事前预防。

2.3 基于Zabbix的客票系统IT资源监控详细设计

1)服务器/终端/自助机监控

部署Agent客户端,监测 CPU负载、内存、磁盘空间、网卡、网络流量、防火墙策略等系统运行的指标。

2)网络监控

建立整体网络拓扑图,通过ping命令的方式测试物理连通性。

针对交换机、防火墙、路由器等支持 SNMP协议的网络设备,采用SNMP方式收集设备状态、端口流量、告警等监控数据。

3)Oracle数据库监控

通过自带的Oracle监控模板监测表空间利用率、会话数等通用指标,通过外部自定义Shell脚本的方式监测客票业务逻辑。

4)应用服务监控

涵盖客票系统所有应用服务程序,监测的内容包括进程是否存活、服务端口状态、TCP连接状态、Web访问速度、日志刷新是否正常、日志关键字审计等。

该部分自愈设计,能够自动进行重启等操作尝试对异常自行恢复。

3 结语

基于 Zabbix 开源架构搭建了以业务为核心的客票系统监控平台,实现了对服务器、网络设备、人工终端设备、自助售检票设备、Oracle数据库、Apache、应用服务等统一监控和管理,并按照业务逻辑关系模型全面整合、关联监控数据,从业务视角发现、识别和预警问题事件。该监控系统具有一体化全方位监控、分布式、自动化、故障自愈等特点,可提升客票系统监控运维的质量和效率,实现运维的精准化、标准化和规范化,具有很好的应用前景。

猜你喜欢
服务器端运维报警
Linux环境下基于Socket的数据传输软件设计
基于GPS的电力运维轨迹定位系统
IT运维管理系统的设计及应用
小心,墙纸在报警
鞋子摆放透露的信息
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
死于密室的租住者
基于Wonderware平台的分布式报警系统的设计与实现