1.企业可观测性监控三大支柱及开源方案的横评对比

news2025/7/24 3:39:50

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ]

📢 大家好,我是 WeiyiGeek,一名深耕安全运维开发(SecOpsDev)领域的技术从业者,致力于探索DevOps与安全的融合(DevSecOps),自动化运维工具开发与实践,企业网络安全防护,欢迎各位道友一起学习交流、一起进步 🚀,若此文对你有帮助,一定记得倒点个关注⭐与小红星❤️,收藏学习不迷路 😋 。

文章目录:

前言简述

温故而知新,可以为师矣。

之前,作者在【Prometheus 入门学习】专栏中,简单介绍构建企业设备资源监控预警、以及可视化监控面板的搭建与实践,但是随着云原生、微服务架构蓬勃发展下,也随着作者的深入学习日志监控、链路追踪实践,随着监控系统在企业中越来越重要,作者也愈发感觉到,监控系统的三大支柱(指标、日志、链路追踪)对于运维人员来说要求也越来越高了。

在此基础上,作者也撰写了【可观测性监控实践】专栏,算是针对监控系统的三大支柱(指标、日志、链路追踪)的学习经验总结,最后用过一个实践案例,帮助各位看友从0️⃣到1️⃣,切实将监控可观测性入门到落地实践,希望大家多多支持,另外也可加入作者【全栈工程师修炼指南】知识星球获取实时专栏文章,相关工具脚本、可视化模板更新,以及问题答疑(推荐)。

原文连接:https://articles.zsxq.com/id_56lc2dpzeuiw.html


监控系统的需求背景

当下在云原生、微服务架构蓬勃发展下,作为一名资深的运维工程师,我深知监控系统对于维护服务稳定运行的重要性,这也是为保护数据资产必备,当系统出现宕机、服务不可用时,可以第一时间感知及处理,防止系统服务异常对企业造成经济损失。当然,随着各项技术的发展,我们对监控系统提出了更多的诉求,比如:

  • 通过监控指标数据趋势,预测系统故障,提前进行干预,以后在故障发生后排除复盘;

  • 通过监控系统资源状态,比如:CPU、内存、磁盘使用率等,为服务扩缩容提供数据支撑。

  • 通过监控应用与服务指标,比如:请求数、响应时间等,为服务优化提供数据支撑,特别是一些中间件参数的调优,例如 Nginx、Tomcat 等等。

  • 通过监控系统与服务日志,快速定位问题原因,缩短故障恢复时间。

目前监控系统越来越重要,同时也越来越完备。不但能够很好地解决上面这几点诉求,还沉淀出了很多监控系统中的稳定性相关的知识。当然,这得益于对监控体系的持续运营,特别是一些资深工程师的持续迭代更新的成果。


监控系统的可观测性三大支柱

当下企业级监控系统可观测性(Observability)的三大支柱通常包括指标(Metrics)、 日志(Logging) 和 链路追踪(Tracing),其中指标监控是其中的核心部分,日志解决程序异常定位和操作审计的关键工具,链路追踪是解决分布式系统复杂性问题的关键工具。

  • 指标监控(Metrics):通常只处理数字,但它的历史数据存储成本较低,实时性好,生态庞大,是可观测性领域里最重要的一根支柱,通过采集系统、应用与服务运行时的关键性能指标,比如CPU使用率、内存占用、请求数等,帮助我们了解系统的健康状况和性能表现,开源产品有:ZabbixOpen-FalconNagiosPrometheus 推荐NightingaleVictoriaMetrics 推荐 等。例如作者企业中使用的是Prometheus + Grafana,通过 Grafana 搭建可视化面板,实现对指标数据的实时展示。

weiyigeek.top-Prometheus、grafana 图

  • 日志监控(Logging):通常处理文本,但它的历史数据存储成本较高,实时性较差,生态庞大,对于了解软件的运行情况、业务的运营情况都很关键。比如,网络接入层的日志、操作系统的日志、应用服务运行日志,都是重要的数据源,在网络接入层可获取外部访问以及设备网络网口事件,在操作系统日志中,获得系统操作审计日志,从应用服务可查询到访问信息,异常信息以及堆栈调用信息等,这也是满足等保日志存储要求必备的,开源产品有:ELK(Elasticsearch + Kibana + Filebeat)PLG(Promtail + Loki + Grafana)victoriametrics (victorialogs + vmui) 推荐、商业产品SplunkDatadog等,例如作者企业中使用的是Promtail + Victoriametrics,通过 VMUI 可视化面板,实现对日志数据的实时展示。

weiyigeek.top-victorialogs 日志图

  • 链路追踪(Tracing):通常记录单个请求在分布式系统中流转的完整路径,包括经过的服务、调用的依赖、各阶段的耗时和状态。其流程是为每个请求生成一个唯一的标识符(TraceID),并通过这个标识符追踪请求在系统中的流转路径。通过这种方式,我们可以清晰地看到每个请求是如何在整个系统中被处理的,从而快速定位性能瓶颈或故障点(如慢查询、服务调用失败等)。例如,如果一个用户请求导致了服务延迟或失败,我们可以通过 TraceID 找到该请求。开源产品有:ZipkinSkywalkingJaeger 推荐OpenTelemetry 推荐等。


weiyigeek.top-OpenTelemetry Collector Data Flow 图

企业级的监控系统结合上述的三大支柱,才能实现从宏观(指标)到微观(日志)、从聚合到单请求的全方位观测。例如,当应用发生故障,我们经常会从日志中提取指标,转存到指标监控系统,或者从日志中提取链路信息来做分析,所以说监控系统领域,对于我们运维人员来说要求也越来越高了。


weiyigeek.top-可观测性对于故障排除的主要过程图

作者将结合自身学习以及工作实践,撰写此文,为各位运友从零到一帮助你在工作中快速落地实践,希望各位运友也多多支持【可观测性监控实践】专栏。


监控系统的方案选型

为企业搭建部署一套监控系统,需要考虑的方面有企业环境的现状、监控系统的可扩展性、监控数据的存储成本、监控系统的易用性和维护成本等,此外,还需要考虑监控系统的开源产品社区活跃度、文档完善程度以及技术支持等因素;当然你也可以购买商业产品,这样也可以为你的企业监控提供定制化的服务;

但是作者所在企业体量没有这么庞大,更重要的是经费确实有限(等同于零),所以只能在开源的监控产品中兜兜转转,丢丢捡捡,所以开源且免费为主。

下面作者,简要列举一些目前主流的开源监控系统,供大家参考,想了解更多的可以参考作者后续文章,以及开源产品的Github或者官网:

  • 指标监控系统:Nightingale(国产,方案整合商)VictoriaMetricsPrometheusZabbixNagiosCacti

  • 日志监控系统:VictoriaLogPLG (Promtail + Loki + Grafana)ELK (Elasticsearch + Kibana + Filebeat)

  • 链路追踪系统:OpenTelemetryJaegerSkyWalkingZipkin


指标监控相关产品

在了解指标监控系统之前,我们先来回顾一下指标监控的发展历史:

时期

代表工具/技术

核心特点

局限性或挑战

1980s

SNMP (Simple Network Management Protocol)

早期网络设备监控标准,基于UDP协议,支持基础指标采集。

功能单一,扩展性差,安全性弱。

1990s

RRDtool (Round Robin Database)

时间序列数据存储和可视化,环形数据库设计节省空间。

手动配置复杂,缺乏分布式支持。

2000s

Nagios、Zabbix

支持告警、插件扩展(如NRPE),Zabbix加入自动化发现和可视化仪表盘。

集中式架构,大规模部署性能瓶颈。

2010s

Graphite、Prometheus

Graphite引入时间序列数据库;Prometheus采用拉模型、多维数据模型和PromQL。

Graphite无原生告警;Prometheus无长期存储。

2015+

InfluxDB、Telegraf

专为时序数据优化,支持高写入吞吐和SQL-like查询(InfluxQL)。

集群版本闭源,资源消耗较高。

2017+

Prometheus + Thanos/Cortex

通过Thanos/Cortex解决Prometheus长期存储和全局视图问题。

架构复杂度显著增加。

2020s

OpenTelemetry Metrics

统一指标标准,与Tracing/Logging集成,支持多后端导出(Prometheus等)。

生态仍在成熟中。

云平台

AWS CloudWatch、Grafana Cloud

云厂商全托管服务,结合AIops自动异常检测。

供应商锁定风险,成本随规模激增。


Zabbix - 老一代解决方案

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

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

相关文章

双空间知识蒸馏用于大语言模型

Dual-Space Knowledge Distillation for Large Language Models 发表:EMNLP 2024 机构:Beijing Key Lab of Traffic Data Analysis and Mining 连接:https://aclanthology.org/2024.emnlp-main.1010.pdf 代码:GitHub - songmz…

OpenCV CUDA模块特征检测------角点检测的接口createMinEigenValCorner()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 该函数创建一个 基于最小特征值(Minimum Eigenvalue)的角点响应计算对象,这是另一种经典的角点检测方法&…

8天Python从入门到精通【itheima】-69~70(字符串的常见定义和操作+案例练习)

目录 69节-字符串的定义和操作 1.学习目标 2.数据容器视角下的字符串 3.字符串的下标索引 4.字符串是一个无法修改的数据容器 5.字符串的常用操作 【1】index方法 【2】replace方法:进过替换,得到一个新的字符串 【3】split方法:将字…

GC1809:高性能音频接收与转换芯片

GC1809 是一款高性能音频接收与转换芯片,适用于多种音频设备,如 A/V 接收器、多媒体音响设备、机顶盒等。本文将简要介绍该芯片的主要特性、性能参数及应用。 主要特性 多协议兼容:兼容 IEC60958、S/PDIF、EIAJ CP1201 和 AES3 协议。 多种…

项目实战——C语言扫雷游戏

这是一款9*9的扫雷游戏 扫雷游戏 1.需求分析2.程序框架设计3.分函数实现打印游戏菜单界面游戏主逻辑函数程序主入口初始化游戏棋盘随机布置地雷显示当前棋盘状态计算指定位置周围的地雷数量玩家排雷主逻辑 4.分文件实现(1)test.c(2&#xff0…

【Java】CopyOnWriteArrayList

一,概述 CopyOnWriteArrayList作为List接口的实现之一,它区分于ArrayList在于它是线程安全的。如它名字一样,所有的写操作均复制了原数组的值,虽说代价较大,但读多写少的环境下,是可接受的。笔者在此简单看…

C#入门学习笔记 #8(委托)

欢迎进入这篇文章,文章内容为学习C#过程中做的笔记,可能有些内容的逻辑衔接不是很连贯,但还是决定分享出来,由衷的希望可以帮助到你。 笔记内容会持续更新~~ 本章介绍C#中的委托,本章难度较大... 委托 C#中的委托是C语言、C++中函数指针的升级版。接下来介绍一个概念—…

CSS 3D 变换中z-index失效问题

CSS 3D 变换中 z-index 失效问题 1. z-index 失效了 在 CSS 中,z-index 通常用于控制元素的层叠顺序,数值越大,元素越靠前显示。在 3D 变换(如 rotateX、translateZ) 中使用 z-index 时,可能会发现z-inde…

Tailwind CSS 实战:基于 Kooboo 构建 AI 对话框页面(七):消息框交互功能添加

Tailwind CSS 实战,基于Kooboo构建AI对话框页面(一) Tailwind CSS 实战,基于Kooboo构建AI对话框页面(二):实现交互功能 Tailwind CSS 实战,基于 Kooboo 构建 AI 对话框页面&#x…

【计算机网络】网络层IP协议与子网划分详解:从主机通信到网络设计的底层逻辑

🔥个人主页🔥:孤寂大仙V 🌈收录专栏🌈:计算机网络 🌹往期回顾🌹: 【计算机网络】传输层TCP协议——协议段格式、三次握手四次挥手、超时重传、滑动窗口、流量控制、 &…

基于WSL搭建Ubnutu 20.04.6 LTS(二)-部署Docker环境

Docker是一组平台即服务(PaaS)的产品。它基于操作系统层级的虚拟化技术,将软件与其依赖项打包为容器。托管容器的软件称为Docker引擎。Docker能够帮助开发者在轻量级容器中自动部署应用程序,并使得不同容器中的应用程序彼此隔离&a…

【图像处理入门】6. 频域图像处理:傅里叶变换与滤波的奥秘

摘要 频域图像处理通过傅里叶变换将图像从空间域转换到频率域,为图像增强、去噪、压缩等任务提供全新视角。本文将深入解析傅里叶变换原理,介绍低通、高通滤波的实现方式,结合OpenCV和Python代码展示频域滤波在去除噪声、增强边缘中的应用,帮助读者掌握图像频域处理的核心…

基于开源AI智能名片链动2+1模式S2B2C商城小程序的生态农庄留存运营策略研究

摘要:本文聚焦于生态农庄运营中的游客留存问题,以村长与乡亲们吸引游客进村为背景,深入探讨如何借助开源AI智能名片链动2 1模式S2B2C商城小程序实现游客的有效留存。通过分析该小程序在信息传递、服务整合、营销激励等方面的优势&#xff0c…

Jenkins实现自动化部署Springboot项目到Docker容器(Jenkinsfile)

Jenkins实现自动化部署Springboot项目到Docker容器 引言:为什么需要自动化部署? 在软件开发中,频繁的手动部署既耗时又容易出错。通过 Docker + Jenkins + Git 的组合,您可以实现: ✅ 一键部署:代码推送后自动构建和部署🐳 环境一致性:Docker 确保开发、测试、生产环…

【Linux】Git原理与使用

编程不仅是解决问题的艺术,更是对复杂性进行优雅管理的哲学。 前言 这是我自己学习Linux系统编程的第三篇笔记。后期我会继续把Linux系统编程笔记开源至博客上。 上一期笔记是关于Vim文本编辑器知识: 【Linux】Vim文本编辑器-CSDN博客https://blog.csdn…

A*算法实现原理以及实现步骤(C++)

算法原理: A*算法是一种启发式搜索算法,用于在图中寻找最短路径。它结合了Dijkstra算法的确保最短路径的优点和贪心最佳优先搜索的高效性。其核心在于使用一个评估函数: f(n) g(n) h(n) 其中: - g(n) 表示从起点到节点n的实际代…

Devops自动化运维---py基础篇一

python基础篇 1、基本数据类型 2、算术运算符 3、变量 变量:编程语言中能储存结果或能表示值的抽象概念 用途:用一段数据赋予一个简短、易于记忆的名字,方便重复使用3.1 格式转化变量 操作符号描述%s字符串%d整数%f浮点数 实例&#xff1…

平安养老险蚌埠中心支公司开展金融宣教活动

近日,平安养老保险股份有限公司(以下简称“平安养老险”)蚌埠中心支公司,走进某合作企业开展金融教育宣传活动。 活动现场,平安养老险蚌埠中心支公司工作人员通过发放宣传手册和小礼品等方式,向企业员工普…

Redisson简明教程—你家的锁芯该换了

1.简介 各位攻城狮们,你还在使用原生命令来上锁么?看来你还是不够懒,饺子都给你包好了,你非要吃大饼配炒韭菜,快点改善一下“伙食”吧,写代码也要来点幸福感。今天咱们就来聊聊Redisson提供的各种锁&#…

48V带极性反接保护-差共模浪涌防护方案

在工业自动化(电动机驱动 / 工业机器人)、交通基础设施(充电桩 / 车载电子)、安防系统(监控摄像头 / 门禁)、储能设备(BMS / 离网控制器)等领域,DC48V 电源因安全特低电压…