面向用户体验的高可靠监控管理系统的设计与实现
2021-03-17王茹
王 茹
(中国移动通信集团海南有限公司,海南 海口 570125)
1 系统需求
网管支撑系统监控的具体需求,主要包括三大部分:应用服务器的性能、各系统之间的接口连接状态以及系统上报文件的数据质量。
1.1 应用服务器的性能指标
主要包括硬件和操作系统指标、数据库指标和中间件指标。
(1)硬件和操作系统指标能反映系统当前状态和硬件资源的使用情况,包括CPU使用率、内存使用率、硬盘使用率等;
(2)数据库指标包含了数据库软件运行的状态与性能相关参数,包括数据库连接统计、数据库表锁统计、数据库表空间等;
(3)网管支撑类系统常用的中间件软件主要包含Proftpd、WPS、IBMQ和ActiveMQ等。中间件服务内容不同,监控的关注点也不同,例如Proftpd主要关注用户连接总数,而WPS主要关注流程运行实例的状态。
1.2 系统间接口连接状态
各网管系统之间通过各种类型的接口协议实现信息的共享与传递,单个网管系统内部各模块之间也通过不同的接口互相联系,因此及时的预防和发现接口故障是监控体系重要的功能之一。监控内容主要是根据不同的接口协议特点进行通断性连接测试。
1.3 系统上报文件的数据质量
各网管支撑系统承担着省内上报集团的诸多指标文件,为确保上传文件的正确性和可用性,该部分监控的内容主要是文件上传的及时性、文件数据的完整性及数据的有效性。
2 系统框架设计
系统从下至上分为四个层次:
(1)被管设备层:特指监控实体,是各网管系统的服务器,每台服务器上安装netsnmp代理,并进行相关配置。
(2)采集层:通过标准的snmp接口规范进行数据采集,提取重点关注的指标参数。
(3)存储层:将采集层上传的数据进行缓存和持久化存储。
(4)展示层:提供友好的用户界面和直观的图表,将所管理的网元自动发现分组,配置告警事件、事件告警通知设置和事件处理设置等,不同的网元告警事件发送给不同的系统管理员,便于维护人员快速准确定位和处理故障。
图1 系统框架图
2.1 采集层集群设计
数据采集是监控系统的核心功能,如果采用集中化的管理站,当管理站出现故障,那么采集服务将不可用,造成监控信息丢失。因此,为了将数据采集和存储两个过程进行解耦,便于采集和存储可扩展,系统采用了基于ZooKeeper+ActiveMQ的采集集群设计方案,实现高可用及负载均衡。
2.2 存储层集群设计
为了保障数据库请求的连续性,避免单点故障造成数据丢失,系统采用基于Mysql的主主模式+负载均衡器的failover方式实现数据库集群。两台主库之间使用负载均衡器F5连接,F5配置成failover。如果一台主库down掉,可以在极短的时间内切换到另一台主库上,尽可能减少主库宕机对业务造成的影响。
2.3 展示层集群设计
为了确保展示层的业务连续性,避免单点故障造成展示页面不可用的情况,系统基于负载均衡器F5的轮询(RoundRobin)方式分发页面连接请求。RoundRobin是在序列循环中连接每个服务器,当其中一台服务器发生故障时,F5将其从序列循环队列中取出,并在恢复正常之前不参与下一次轮询。
3 系统实现
3.1 系统功能模块
3.1.1 系统管理模块
系统管理模块用于进行用户管理、角色管理和权限管理,以及系统本身的日志管理等。
3.1.2 服务管理模块
服务管理模块提供在系统前台进行服务、接口注册的功能,对已注册的服务和接口提供目录功能进行查询和编辑。
3.1.3 服务测试模块
服务测试模块提供各网管支撑系统之间的接口的监控以及各系统对外提供的服务可用状态的测试功能。监控内容如果出现异常,会触发生成告警。
3.1.4 数据质量监控模块
数据质量监控模块提供业务文件的数据质量监控功能,包括数据完整性及数据有效性监测。监控内容如果出现异常,会触发生成告警。
3.1.5 服务监控模块
服务监控模块提供告警查询和告警处理、转发、配置及监测任务管理等功能。监控内容如果出现告警,系统会根据告警通知方式(邮件、短信)给告警系统的维护人员自动发送告警信息。
3.2 数据采集流程设计及实现
3.2.1 服务器性能数据采集设计与实现
服务器性能数据采集由部署在各服务器上的netsnmp代理通过设定定时器,周期性获取服务器的相关信息,满足告警条件则触发生成SNMP告警包上报。
性能数据采集具体实现流程如下:
(1)在snmp.conf中配置监控对象。
(2)通过shell命令获取各个监控对象的数据。
(3)被监控参数满足告警条件,通过netsnmp的trap功能触发告警上报。
3.2.2 接口连接状态信息采集设计与实现
本系统对接口连接状态的采集,通过设置调用频率阈值,模拟客户端调用服务端服务,主动发现接口故障。
接口连接状态具体实现流程如下:
(1)各接口进行服务注册。
(2)采集程序周期性读取接口注册列表。
(3)根据接口注册的服务类型,采集程序模拟客户端,调用服务端的服务。
(4)采集程序解析返回的报文。
(5)判断接口服务是否正常,不正常则生成XML格式的告警报文,上传到ActiveMQ。
3.2.3 数据质量核查结果采集设计与实现
本系统对数据质量核查结果的采集,通过设置调用核查阈值,核查目录文件是否正常生成、格式是否正常等。
数据质量核查结果采集具体实现流程如下:
(1)各文件目录注册监测服务。
(2)采集程序周期性读取文件目录注册列表。
(3)运行文件目录监控脚本。
(4)判断文件是否按时上传,按时上传则进行文件格式检测,否则生成告警,生成XML格式的告警报文,上传到ActiveMQ。
(5)判断文件的格式是否正常,不正常则生成XML格式的告警报文,上传到ActiveMQ。
4 系统应用效果
目前,该系统已投入生产,接入电子运维系统、故障管理系统、统一采集平台、掌上运维、ESB系统等省级重要网管系统进行监控,并逐渐将其他网管支撑平台纳入监控。
4.1 接入情况
(1)64台aix系统及linux系统服务器。
(2)10台windows系统服务器。
(3)300+接口服务。
(4)60+文件目录。
4.2 系统应用效果
本项目实施以来,已取得了很好的应用效果,具体体现在:
4.2.1 有效发现故障隐患,缩短故障历时
本系统自主监控各个服务器的硬件、进程及软件,有效发现故障隐患,大大降低了问题扩大的几率,缩短故障历时。
4.2.2 先于用户发现网管应用中的问题
通过接口实时监控和接口能力监控等功能,先于用户发现网管应用问题,并针对问题查找原因,制定优化处理措施,使网管应用更顺畅。
以掌上运维系统为例,主动实时监控系统的无效连接数,当无效连接数达到阈值(50)时,自动重新启动鉴权程序,先于用户解决问题,提升用户感知。
4.2.3 提高维护效率,节约人力成本
在实施本项目前,主要依靠人工检查系统运行情况,每个系统平均花费时长为1小时/天。实施本项目后,系统检查和接口通断均能由系统自动完成,出现问题能以电话和短信的方式通知维护人员。
系统上传集团的文件数据质量监测也实现自动化,既节约了维护人员成本,又提升了维护效率,将维护人员从繁杂的、重复性的检查工作中解放出来,重点关注存在问题的分析处理,降低问题发生的几率。
4.2.4 数据异常自动检测通告,提升数据质量
经统计,2020年下半年,及时发现数据上传异常案例约50例,即能避免集团通报省内指标未及时上传,又能大大提升用户满意度。
5 结束语
本文从日常实际运维工作需求出发,实现对服务器性能、系统间接口连接状态以及各系统上报文件数据质量提供全面监控服务。通过这些监控服务,本系统填补网管系统架构演进引起的自监控功能缺失,实现网管支撑系统自身服务器监控的自动化、集中化,帮助用户解决运维困难、效率低下的问题。
虽然完成了系统的设计和实现,系统应用效果还比较良好,但内容上还有一些不足的地方,比如目前提供的监控内容还比较有限,尚不能完全应对复杂运维状况,需进一步扩展监控范围和内容。