企业分享 - 益丰大药房监控升级之路

news2024/9/24 23:22:52

益丰大药房是全国大型药品零售连锁企业(中国沪市主板上市连锁药房),专注医药零售行业23载, 市值稳居国内上市连锁药店前列/中国上市公司500强。

益丰有体量庞大的研发运维团队,有体量庞大的 IT 设施和服务,为了能够更好的监控这些设施和服务,益丰在多年前就开始建设监控系统,本文分享益丰的监控升级之路,来自益丰的运维团队,希望对你有所启发。

监控的重要性

监控系统在现代 IT 体系架构中充当“眼睛”的作用,重要性不言而喻。

  • 保障系统稳定性和可靠性:监控系统能够实时监测应用程序和基础设施的运行状态,帮助及时发现潜在问题,防止小问题演变成大故障,从而保障系统的持续稳定运行。
  • 快速问题定位与修复:当系统出现异常时,监控系统可帮助运维和开发团队迅速定位问题根源,缩短故障修复时间,减少业务中断的影响。
  • 提升用户体验:通过持续监控应用性能和关键业务指标,可以确保系统的响应速度和可用性,从而提升最终用户的体验。
  • 提高团队协作效率:监控系统可以让开发、运维和业务团队共享系统的运行状态和数据,促进跨团队的协作和沟通,快速应对问题,提高整体工作效率。

监控系统的架构

在益丰,我们把监控划分为多层,分别进行优化改进:

自动化层告警自愈机制:监控系统检测到问题后,可以自动触发预定义的处理脚本,执行重启服务、扩展资源、调整配置等操作(目前没用到)Server 端
可视化层仪表盘:如Grafana、Kibana、Zabbix,提供用户友好的界面,展示系统的监控数据及历史数据
数据分析与处理层规则引擎与告警:设置各种告警规则和策略,一旦监测到异常,系统会通过邮件、短信、IM等渠道通知相关人员
数据存储与管理层数据存储:MySQL、时序库、ES等组件; 访问控制和日志审计等管理操作
数据采集层数据采集工具:如Prometheus Node Exporter、Telegraf、Categraf、自研采集器等工具,采集监控指标、日志和事件Agent 端

我们梳理了一个监控系统的体系脑图,供大家参考:

监控系统体系脑图

监控系统 1.0

监控系统1.0架构图

在监控系统 1.0 时代,我们用了 Zabbix、多套 Prometheus、云监控,还有自定义的一些监控脚本。使用企业微信作为通知媒介。

监控系统 1.0 的问题

  • 监控系统多套,分散杂乱不统一,Zabbix 和 Prometheus 分工不明确
  • 缺少日志监控(比如 Error、Exception 关键字等)告警能力
  • 缺少业务关键指标监控(无法提前感知业务异常,很被动)
  • 告警通知无法聚合降噪及逐级升级通知,告警太多,重要告警容易被淹没忽略
  • 重要且严重的告警无法语音、短信通知,无法第一时间处理
  • 告警通知无法实现触达到责任人,无法责任到人就影响了故障处理效率

监控系统 2.0

针对 1.0 版本的不足,目前监控系统已迭代至 2.0 版本。2.0 版本的监控系统架构如下:

监控系统2.0架构

  1. 将原 Zabbix 和 Prometheus 的基础设施、中间件、应用指标、业务指标等监控整合统一到夜莺监控平台中(Zabbix专注于网络侧的监控)
  2. 使用 FlashDuty 告警引擎补全日志监控告警功能
  3. 使用通用查询采集工具很方便的采集各种业务关键指标(SQL查询、Redis查询、MongoDB查询、ES查询)。化被动为主动,提前介入并解决问题
  4. 外采 FlashDuty 告警平台完善告警通知机制(责任到人,语音通知,告警升级与排班,告警聚合等)

FlashDuty 的体验很好,值得安利,这是我们内部的使用 FlashDuty 的体验对比。

对比项引入前引入后
告警通知只支持企微或邮件群发,无法精准通知到个人支持精准通知到个人,并实现告警聚合降噪、认领、抑制、屏蔽
告警升级不支持,无法实现逐级升级通知支持告警按策略逐级升级通知
告警内容自定义不支持自定义修改可以按需灵活配置告警内容
排班机制不支持支持灵活的告警排班机制
告警事件不支持历史有存档,提供多种事件查看视图,多维度分析
统计分析不支持为故障溯源提供基础数据支撑
移动办公不支持和企微深度打通,可在企微中操作认领、屏蔽、关闭、查看告警,移动办公效率大幅增加
短信、语音通知不支持支持
动态通知责任人不支持支持

监控系统 3.0

目前监控系统 2.0 已经满足大部分业务需求。不过还有一些额外的诉求尚未解决,也是未来监控系统 3.0 的方向:

  • 全局驾驶舱:告警事件虽然收拢到一起有个全局视角了,但是监控数据可视化还是分散在各个仪表盘里,后面会有一个全局驾驶舱,比如门店健康度的驾驶舱、所有服务的整体驾驶舱、所有设备的整体驾驶舱等,做一些全局视角的数据可视化,一目了然的看到各个资产的健康状况。
  • 增强数据串联分析能力,比如全局服务驾驶舱发现某个服务有问题,点击下钻查看详情,可以看到这个服务的各类关键指标、日志、上下游服务的健康状况等,做到一站式问题定位。

结束语

出现问题并不可怕,重要的是我们有能力快速响应和修复。而监控系统就是我们手中的利器之一,让我们可以更加从容的应对各种挑战,共同保障业务的高效稳定。原文查看:《企业分享 - 益丰大药房监控升级之路》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2105070.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iic学习

iic 时钟scl为高的时候 sda数据为低的时候是起始位 当scl信号为高电平的时候 sda数据为高的时候是 停止位 (时钟稳定 数据变化 才会发生起始位和停止位) 当sclk为高电平时 sda 数据需要保持或者需要保持稳定 (理解就是不要有上升沿和下降沿的…

WebTopo 组态软件+ARM 工业计算机:重塑污水处理

污水处理领域也在不断寻求更高效、更稳定的解决方案。WebTopo 组态软件与 ARM 工业计算机的结合,尤其是 ARMxy 工业树莓派在污水处理中的应用,为这个领域带来了全新的变革。 WebTopo 组态软件以其清晰的布局和强大的功能,成为了污水处理系统中…

用C语言生成字符贪吃蛇游戏

用C语言生成字符贪吃蛇游戏 1. 引言 贪吃蛇是一个经典的小游戏,玩家通过控制蛇的移动来吃食物,随着食物的增加,蛇的长度也会增加,游戏的难度逐渐提升。本文将介绍如何使用C语言来实现一个简单的字符贪吃蛇游戏。 2. 环境准备 在…

shell介绍

[基础入门]正向shell和反弹shell-CSDN博客 shell:执行用户命令的接口,通过这个接口实现对计算机的控制 反弹shell:一台主机控制另一台 正向shell:在攻击机上开启一个监听端口,让被攻击机主动连接攻击机,…

Python实践:多种方式实现数字前补零

更多内容 个人网站:孔乙己大叔 一、理解数字前补零的重要性 数字前补零,简而言之,就是在数字转换为字符串时,在其前面填充一定数量的零,以达到指定的宽度。这一操作看似简单,实则对于数据的格式化、排序和…

基于PLC的粮食自动烘干机控制系统设计

基于PLC的粮食自动烘干机控制系统设计是一个综合性的工程任务,旨在通过PLC(可编程逻辑控制器)实现对粮食烘干过程的自动化控制,以提高烘干效率、保证烘干质量并降低能耗。以下是一个基于PLC的粮食自动烘干机控制系统设计的基本框架和关键要点: 前言 在我国,作为农业大国…

鸿蒙(API 12 Beta6版)图形【NativeImage开发指导 (C/C++)】方舟2D图形服务

场景介绍 NativeImage是提供Surface关联OpenGL外部纹理的模块,表示图形队列的消费者端。开发者可以通过NativeImage接口接收和使用Buffer,并将Buffer关联输出到OpenGL外部纹理。 针对NativeImage,常见的开发场景如下: 通过Nati…

服务器文件权限限制写入

1、先查看文件需要的用户权限。 ls -l2、判断自己的账户不具备写入权限 container里面建的文件,需要用户身份是root,如果你不在rootfile里file的话,是无法对需要root权限的文件增删改的。 3、创建container与宿主机共享的文件夹 如果想宿…

【Python】统计列表出现某个数字/字段的次数+去除列表的nan值+计算列表中的正负值百分比和绝对值

1. 统计一个列表出现某个数字或者字段的次数 A. 列表推导式法 原理:使用列表推导式找出所有等于0的元素,并用sum()函数计算它们的数量。 这个方法的优点是:可以筛选等于和不等于的,用来统计占比。如果需要筛选的是字符串&#…

【AQS源码】深入理解AQS的工作原理

【AQS源码】深入理解AQS的工作原理-CSDN博客

XXL-JOB分布式任务调度教程(持续更新~)

先大致声明一下流程(具体细节在下面哦~) 步骤: 1.下载xxl-job并配置以及启动 2.导入对应maven坐标 3.配置对应的配置文件以及编写对应的配置类config 4.编写要触发的方法并且给方法打上XXlJob("")注解 5.设置xxl-Job平台上的任务 …

环球佳酿:如何利用CRM系统实现营销管理数字化转型

在科技迅猛发展的今天,传统行业正在以空前的速度与数字技术相融合。面对从增量扩张转向存量竞争的白酒产业,培育新质生产力、推进数字化与智能化转型已成为业界的普遍共识。众多白酒企业纷纷探索数字化转型之路,力图通过创新和突破来提升竞争…

火狐浏览器设置秘籍:让https协议下的ws不加密时运行无阻(WebSocket connection HTTPS)

Uncaught (in promise) DOMException: Failed to construct ‘WebSocket’: An insecure WebSocket connection may not be initiated from a page loaded over HTTPS. 明确指出了一个常见的安全限制:当尝试从一个通过HTTPS加载的页面上发起一个不安全的&#xff08…

零基础国产GD32单片机编程入门(十三)单片机IAP(在应用编程)详解及实战源码

文章目录 一.概要二.GD32F103C8T6单片机IAP介绍1.GD32F103C8T6单片机IAP基本原理2.GD32F103C8T6单片机IAP基本流程 三.配置一个BOOT工程四.配置一个APP工程五.工程源代码下载六.小结 一.概要 GD32单片机程序升级方法有很多种,主要有以下几种: 1.将编译…

【unity知识】Animator动画状态的基本属性介绍

文章目录 动画状态的基本属性1、标签Tag2、Motion 该状态所管理的动画片段3、speed 动画的播放速度4、Motion Time 播放动画片段定在一个特定时间点5、Mirror镜像动画6、CycleOffset动画偏移7、FootIK8、Write Defaults 参考完结 动画状态的基本属性 1、标签Tag 通过打标签我们…

NIO笔记04-网络编程

文章目录 1 非阻塞 vs 阻塞 ★★★阻塞非阻塞多路复用 2 Selector创建绑定 Channel 事件监听 Channel 事件💡 select 何时不阻塞 3 处理 accept 事件💡 事件发生后能否不处理 4 处理 read 事件处理添加区分事件类型,客户端发送数据时会报空指…

基于TCP的web端服务器数据库查询商品

背景描述 该系统为创建网络并发服务器,搭建HTML网络页面框架,通过HTTP超文本网络传输与用户建立连接(TCP建立连接),从自己建立的数据库中查询用户所需信息,使用户能在网页中直接查询相关内容。本系统包括…

Elasticsearch设置密码报错:ERROR: X-Pack Security is disabled by configuration.

elasticsearch@6ef6c3f5ee45:~$ bin/elasticsearch-setup-passwords auto Unexpected response code [405] from calling GET http://172.17.0.2:9200/_security/_authenticate?pretty It doesn’t look like the X-Pack security feature is enabled on this Elasticsearch n…

Meshy-4:AI驱动3D建模的革命性工具,解锁虚拟创作新高度

Meshy发布了最新的AI驱动3D建模工具——Meshy-4,这是虚拟环境创作领域的一大进步。对设计师和开发者来说,Meshy-4的出现不仅是技术上的飞跃,更是创作效率的极大提升。 Meshy-4的亮点与功能 1. 更清晰、更专业的AI生成3D模型: Mes…

沉浸式体验:ARM 工控机携手 HT for Web 打造智能建筑监控

工业领域技术的进步不断推动着生产和管理方式的革新。随着物联网、大数据、云计算等技术的发展,工业自动化和信息化融合的趋势日益明显。在这样的背景下,HT for Web 和 ARM 工业计算机成为了工业智能化道路上的重要工具。 HT for Web 是一款基于WebGL的高…