导读

显著提升运维效率超80%,降低运维成本约70%。

为确保医院业务运行的稳定性和用户满意度,西安国际医学中心信息管理部计划部署一套IT监控平台,全面覆盖IT基础设施、性能及应用层面的运维监控,提供实时故障预警和高效的故障定位功能,迅速跟踪并分析故障源头,为应用系统性能优化提供精准建议。医院希望通过这一举措,显著提升IT系统运维工作的整体效率和服务质量。

打开网易新闻 查看精彩图片

方案选型与实施

1.现状问题

信息管理部对IT运维中存在的问题进行了调研分析,发现:

在机房侧,问题包括缺乏实时监控状态、资源管理不科学、软硬件问题发现不及时等,导致IT资源分配不合理,造成资源浪费,运维工程师无法预测和防范潜在风险,从而影响关键业务的正常运行。

在应用侧,问题包括业务连续性风险、问题溯源困难、业务性能瓶颈难以发现、业务趋势预测困难以及业务链路不透明等。这些问题使得运维团队在面对突发事件或系统故障时,难以迅速有效地采取行动,影响用户体验和业务连续性。

2.方案调研

针对上述问题,运维团队进行了方案调研,主要对比了市场上多款开源监控软件工具,包括Zabbix、Prometheus、Grafana等,调研情况如图1所示。

图1 各类开源监控软件工具调研对比
打开网易新闻 查看精彩图片
图1 各类开源监控软件工具调研对比

3.方案确认

经过综合评估,Zabbix和Pinpoint两款开源工具,能满足医院当前需求。作为企业级开源解决方案,Zabbix提供了全面的网络设备、服务器和应用程序监控功能等。而Pinpoint则专为基于Java的大型分布式系统设计,具有链路跟踪、性能监控、异常检测及数据分析等核心功能。

运维团队计划将这两款工具组合使用:Zabbix负责IT基础设施层面的监控,确保底层硬件与虚拟环境的稳定运行;Pinpoint用于分布式应用性能管理,实现对复杂分布式系统中服务调用和性能瓶颈的精准监控。(Zabbix和Pinpoint的架构详情特点介绍见文末。)

由于选择的是开源软件,运维团队重点考虑了其安全性能。这两款软件均提供完善的安全机制,如数据加密、访问控制、审计日志等,确保监控数据的安全传输和存储。且这两款工具都部署在医院内网中,对其访问进行严格的权限控制,确保只有授权人员能够访问监控系统。同时,运维团队也将定期开展安全渗透测试,采用多种方法和技术来探测系统的安全性,主要目的是识别系统中的潜在安全隐患,包括但不限于漏洞、弱密码、未授权访问等问题。

4.实施过程

2023年3月,医院运维团队开始进行方案调研和选型工作。4月,部署安装Zabbix 6.0和Pinpoint 2.5.0进行调试和配置。5月,完成系统的安全性评估和性能测试工作,接入数据信息。6月,正式上线运行,并进行持续的监控和维护工作。

实施效果与价值

1.实施效果

借助Zabbix 6.0,实时大屏数据总览实现模板数量277个、主机数量86台、监控指标8477项、触发器数量3278条等信息显示(如图2所示) 。

图2
打开网易新闻 查看精彩图片
图2

案例1:实现高可用性的钉钉告警

医院的HIS应用使用Nginx+keepalived主备模式作为高可用集群架构,负责分发流量到后端的多台应用服务器。为确保服务的高可用性和负载均衡服务,需实时监控中间件以及后端节点状态。运维团队此前面临的挑战是:如何实时监控后端节点的状态?如何在节点异常时迅速得到通知?

如图3-1到图3-4所示,目前我们的监控方案是:

(1)监控项:创建 模板,监控项包括采集活跃连接数、线程数、端口、请求/响应等数据。

图3-1
打开网易新闻 查看精彩图片
图3-1

(2)触发器:创建自定义触发器条件,每分钟检测健康检查个数n<2&n=5触发告警,n=2&n=3&n=4&n=6恢复(n表示后端个数,此次为模板创建适配多种不同个数的Nginx后端可用性检测)。

图3-2
打开网易新闻 查看精彩图片
图3-2

(3)媒介:创建钉钉告警媒介类型,用于发送告警信息。

图3-3
打开网易新闻 查看精彩图片
图3-3

(4)shell脚本:该脚本将触发告警时的信息,以Webhook形式发送到钉钉群聊。

图3-4
打开网易新闻 查看精彩图片
图3-4

基于该方案,运维团队实现了:(1)实时监控:7×24实时监控预警,包括节点端口、可用性、系统负载、web场景、中间件等监控项。(2)实时告警:服务节点故障时立即触发告警,通过钉钉机器人将告警信息实时推送给相关人员。

案例2:助力系统性能优化

医院业务不断扩展,分布式系统架构不断演进,此前运维团队面临的痛点问题是:服务间调用关系错综复杂,难以捕捉和监控;性能瓶颈难以定位,系统性能下降时难以迅速找到问题所在。

为应对这一挑战,运维团队引入Pinpoint的APM(应用性能管理)工具,为分布式系统提供全链路、无死角的监控与分析,帮助运维人员清晰理解服务间的依赖关系和调用经过,一览无余地掌握整个分布式系统的运行状况。

具体成果包括:

(1)建立整体分布式应用拓扑图

如图4所示,利用Pinpoint提供的调用链路图,直观展示跨服务间调用详情,包括请求在各个服务间的传递过程、处理时间等详细信息,清晰地展现整个分布式系统的服务架构和调用关系。

图4
打开网易新闻 查看精彩图片
图4

(2)实现事务代码级别可见性

针对某个关键接口,运维团队能够看到接口请求的完整调用链,包括请求在各个服务间的传递过程及每个服务的处理时间等详细信息。

如图5所示,针对某个性能瓶颈迅速定位,发现服务接口在处理请求时耗时1265ms,运维团队进一步分析了该服务的代码和配置,进行相应的优化,性能得到缓解。

图5
打开网易新闻 查看精彩图片
图5

(3)实现程序性能的深度洞察

如图6所示,通过数据监控,提供JVM内存运行状态的监控功能。如借助Heap、Non-Heap、Major GC等指标,提示实时内存使用、垃圾回收情况等,并可帮助运维团队制定性能调优策略。例如,Major GC指标异常,意味着老年代内存垃圾回收影响系统性能,按需调整-Xms(初始值)、-Xmx(最大值)、-Xmn(新生代大小)后,频率显著减少。

图6
打开网易新闻 查看精彩图片
图6

2.实施价值

通过本次部署,成功建立了基于Zabbix 6.0和Pinpoint 2.5.0的全面监控运维体系,显著提升运维效率超80%,降低运维成本约70%,并基于监控数据减少30%的资源浪费。

另一方面,该方案显著增强了运维团队的管理效率,推动了运维自动化,实现全面掌控与预测性维护。数据显示,全方位实施的监控体系使告警数同比上年降幅达50%(上年告警数超过2000个,今年约1000个),故障率大幅降低约90%,故障闭环率达到100%,平均响应时间小于3分钟。这些成果确保了医院业务系统的稳定运行,验证了监控平台的有效性,彰显了医院在信息化管理方面的卓越追求。

附件:

1.Zabbix架构详情特点

Zabbix是一个基于web界面的提供企业级分布式系统监视以及网络监视功能的企业级开源解决方案,提供网络设备、服务器和应用程序等全面监控和管理。这种架构能够灵活、高效地满足各种规模和复杂度的监控需求,主要特点如下:

打开网易新闻 查看精彩图片

(1)度量收集:网络设备、服务器、虚拟机、数据库、应用程序等各类IT资源。

(2)易于部署:详细的安装和配置文档帮助管理员快速上手。

(3)自动发现:自动识别和监控新增的设备以及应用,减少了手动配置的工作量.

(4)多平台支持:跨平台支持,监控各种类型的服务器,包括Linux、Windows、Unix等。

(5)灵活的数据采集:支持多种数据收集方式,包括主动采集和被动采集。

(6)数据可视化:丰富的Web图表和报表功能,监控数据以图形的方式展现。

(7)灵活告警配置:自定义阈值条件报警,支持多种报警方式,邮件、短信、钉钉等。

2.Pinpoint架构详情特点

Pinpoint是一个开源专为基于Java的大型分布式系统设计的链路跟踪平台。通过处理海量跟踪数据、提供全面监控和深度数据分析,帮助用户优化系统性能并有效提升运维效率。核心功能包括链路追踪、性能监控、异常检测及数据分析,支持高可扩展性和易用的用户界面,主要特点如下:

打开网易新闻 查看精彩图片

(1)分布式事务跟踪和跨分布式应用消息:跨多个服务、数据库和消息队列追踪分布式事务,确保整个业务流程的可见性和可追踪性。

(2)自动检测应用拓扑搞清楚应用架构:自动检测并可视化应用的拓扑结构,包括服务之间的调用关系、依赖关系以及数据流。

(3)水平扩展以便支持大规模服务集群:处理来自数千个服务实例的监控数据,高负载下依然保持高性能和可靠性数据。

(4)代码级别可见性轻松定位失败点和瓶颈:深入代码级别的可见性,包括方法调用、异常堆栈以及SQL查询等。

(5)字节码增强技术添加新功能无需修改代码:在运行时动态地为应用添加监控和诊断功能,无缝集成到现有系统中。

(6)JVM运行状态和应用性能清晰透明:应用性能的全面监控,包括内存使用、线程状态、垃圾回收活动以及应用响应时间等重要指标。

作者简介

刘江旭,西安国际医学中应用运维工程师。拥有5年的IT运维领域工作经验,擅长系统部署、性能优化、故障排查与解决、自动化运维及云平台管理。