企业分享 - 益丰大药房监控升级之路
益丰大药房是全国大型药品零售连锁企业(中国沪市主板上市连锁药房),专注医药零售行业 23 载, 市值稳居国内上市连锁药店前列/中国上市公司 500 强。
益丰有体量庞大的研发运维团队,有体量庞大的 IT 设施和服务,为了能够更好的监控这些设施和服务,益丰在多年前就开始建设监控系统,本文分享益丰的监控升级之路,来自益丰的运维团队,希望对你有所启发。
监控的重要性
监控系统在现代 IT 体系架构中充当“眼睛”的作用,重要性不言而喻。
保障系统稳定性和可靠性:监控系统能够实时监测应用程序和基础设施的运行状态,帮助及时发现潜在问题,防止小问题演变成大故障,从而保障系统的持续稳定运行。
快速问题定位与修复:当系统出现异常时,监控系统可帮助运维和开发团队迅速定位问题根源,缩短故障修复时间,减少业务中断的影响。
提升用户体验:通过持续监控应用性能和关键业务指标,可以确保系统的响应速度和可用性,从而提升最终用户的体验。
提高团队协作效率:监控系统可以让开发、运维和业务团队共享系统的运行状态和数据,促进跨团队的协作和沟通,快速应对问题,提高整体工作效率。
监控系统的架构
在益丰,我们把监控划分为多层,分别进行优化改进:
我们梳理了一个监控系统的体系脑图,供大家参考:
监控系统 1.0
在监控系统 1.0 时代,我们用了 Zabbix、多套 Prometheus、云监控,还有自定义的一些监控脚本。使用企业微信作为通知媒介。
监控系统 1.0 的问题
监控系统多套,分散杂乱不统一,Zabbix 和 Prometheus 分工不明确
缺少日志监控(比如 Error、Exception 关键字等)告警能力
缺少业务关键指标监控(无法提前感知业务异常,很被动)
告警通知无法聚合降噪及逐级升级通知,告警太多,重要告警容易被淹没忽略
重要且严重的告警无法语音、短信通知,无法第一时间处理
告警通知无法实现触达到责任人,无法责任到人就影响了故障处理效率
监控系统 2.0
针对 1.0 版本的不足,目前监控系统已迭代至 2.0 版本。2.0 版本的监控系统架构如下:
将原 Zabbix 和 Prometheus 的基础设施、中间件、应用指标、业务指标等监控整合统一到夜莺监控平台中(Zabbix 专注于网络侧的监控)
使用 FlashDuty 告警引擎补全日志监控告警功能
使用通用查询采集工具很方便的采集各种业务关键指标(SQL 查询、Redis 查询、MongoDB 查询、ES 查询)。化被动为主动,提前介入并解决问题
外采 FlashDuty 告警平台完善告警通知机制(责任到人,语音通知,告警升级与排班,告警聚合等)
FlashDuty 的体验很好,值得安利,这是我们内部的使用 FlashDuty 的体验对比。
监控系统 3.0
目前监控系统 2.0 已经满足大部分业务需求。不过还有一些额外的诉求尚未解决,也是未来监控系统 3.0 的方向:
全局驾驶舱:告警事件虽然收拢到一起有个全局视角了,但是监控数据可视化还是分散在各个仪表盘里,后面会有一个全局驾驶舱,比如门店健康度的驾驶舱、所有服务的整体驾驶舱、所有设备的整体驾驶舱等,做一些全局视角的数据可视化,一目了然的看到各个资产的健康状况。
增强数据串联分析能力,比如全局服务驾驶舱发现某个服务有问题,点击下钻查看详情,可以看到这个服务的各类关键指标、日志、上下游服务的健康状况等,做到一站式问题定位。
结束语
出现问题并不可怕,重要的是我们有能力快速响应和修复。而监控系统就是我们手中的利器之一,让我们可以更加从容的应对各种挑战,共同保障业务的高效稳定。查看原文:《企业分享 - 益丰大药房监控升级之路》
评论