监控开源方案

news2024/11/27 9:33:09

监控开源方案

  • 可观测性
    • 指标监控
    • 日志监控
    • 链路追踪
  • 开源产品
    • Zabbix
    • Open-Falcon
    • Prometheus
    • Nightingale

监控需求 :

  • 系统出现问题 , 能及时感知
  • 了解数据趋势,预测未来可能出问题
  • 了解系统的水位,为服务扩缩容提供数据支撑
  • 感知待优化点,如 : 中间件参数的调优
  • 及时感知业务异常

可观测性

可观测性支柱 :

  • 指标监控
  • 日志监控
  • 链路追踪

指标监控

指标监控 : 一般用折线图呈现

  • 指标如有 : 机器的 CPU 利用率、数据库实例的流量、网站的在线人数
  • 特点 : 只处理数字,历史数据存储成本较低,实时性好,生态庞大
  • 开源产品 : Zabbix、Open-Falcon、Prometheus、Nightingale

在这里插入图片描述

日志监控

日志 :

  • 作用 : 了解软件的运行情况、业务的运营情况
  • 特点 : 一般数据量较大,不够结构化,存储成本较高
  • 开源产品 : ELK、Loki

日志的数据源 :

  • 操作系统的日志 : 感知系统级事件的发生
  • 接入层的日志 : 知晓哪些域名、IP、URL 收到访问,是否成功 , 延迟情况
  • 服务运行日志 : Exception 信息,调用堆栈

Kibana 查询 :

在这里插入图片描述

链路追踪

背景 : 随着微服务的普及,单体应用被拆为很多个小服务,服务之间有错综复杂的调用关系,排查较困难

思路 : 以请求串联上下游模块,为每个请求生成一个随机字符串作为请求 ID

  • 服务之间互相调用的时,把该 ID 逐层往下传递,每层分别耗费了多长时间,是否正常处理,都能收集起来 , 并附到这个请求 ID 上
  • 当追查问题时,用请求 ID 就能把所有信息串联起来

产品 : Skywalking、Jaeger、Zipkin

Zipkin 页面 :

在这里插入图片描述

开源产品

  • Zabbix : 推荐监控设备
  • Prometheus+Grafana : 推荐监控 Kubernetes
  • Nightingale : 推荐监控传统设备、中间件,又兼顾 Kubernetes

Zabbix

Zabbix : 企业级的开源解决方案,擅长设备、网络、中间件的监控

  • 主要监控设备和中间件

优点 :

  • 对各种设备的兼容性较好,Agentd 能运行在很多平台
  • 架构简单,用时序数据存储,易维护,备份,转储都较容易
  • 社区庞大,资料多

缺点 :

  • 用数据库做存储,无法水平扩展,容量有限。当 10 秒采集一次,上限大约能监控 600 台设备
  • 数据结构较固化,没有灵活的标签设计,对云原生架构下动态多变的环境,无能为力

Zabbix 整体架构 :

在这里插入图片描述

Open-Falcon

Open-Falcon 由小米开源,想解决 Zabbix 的容量问题

Open-Falcon 架构图 :

在这里插入图片描述

优点 :

  • 能处理大规模监控场景,比 Zabbix 的容量要大,能处理设备、中间件、应用层的监控
  • 组件拆分较散,都用 Go 开发,Web 用 Python,易做二次开发

缺点 :

  • 生态不够庞大,多数没回馈社区
  • 核心开发人员离职,项目停滞不前

Prometheus

Prometheus 为 Kubernetes 而生。对 Kubernetes 做了直接的支持,提供了多种服务发现机制,简化Kubernetes 监控

Prometheus 架构图 :
在这里插入图片描述

优点

  • 对 Kubernetes 支持很好
  • 生态庞大,有很多 Exporter
  • 支持很多时序库作为后端的 Backend 存储
  • 支持多种不同语言的 SDK,供业务代码嵌入埋点

缺点 :

  • 易用性较差,如 : 告警策略要修改配置文件,协同较麻烦
  • Exporter 参差不齐,每个监控目标要一个 Exporter,管理成本较高
  • Prometheus 默认只提供单机时序库,集群方案要依赖其他的时序库

Nightingale

Nightingale 与 Prometheus 做良好的整合,打造了更完备的方案

在这里插入图片描述

优点 :

  • 较完备的 UI,有权限控制,协同较好
  • 兼容并包,设计较开放,支持对接 Categraf、Telegraf、Grafana-Agent、Datadog-Agent 等采集器 , Prometheus的各种 Exporter
  • 时序库能对接 Prometheus、VictoriaMetrics、M3DB、Thanos

缺点 :

  • 告警引擎单独部署到各个机房,部署维护较麻烦
  • 告警事件发送缺少聚合降噪收敛逻辑

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

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

相关文章

【Unity VR开发】结合VRTK4.0:创建一个按钮(Togglr Button)

语录: 有人感激过你的善良吗,貌似他们只会得寸进尺。 前言: Toggle按钮是提供简单空间 UI 选项的另一种方式,在该选项中,按钮将保持其状态,直到再次单击它。这允许按钮处于激活状态或停用状态的情况&#…

固态存储设备固件升级方案

1. 前言 随着数字化时代的发展,数字数据的量越来越大,相应的数据存储的需求也越来越大,存储设备产业也是蓬勃发展。存储设备产业中,发展最为迅猛的则是固态存储(Solid State Storage,SSS)。数字化时代,海量…

【ESP32+freeRTOS学习笔记之“ESP32环境下使用freeRTOS的特性分析(新的开篇)”】

目录【ESP32freeRTOS学习笔记】系列新的开篇ESP-IDF对FreeRTOS的适配ESP-IDF环境中使用FreeRTOS的差异性简介关于FreeRTOS的配置关于ESP-IDF FreeRTOS Applications结语【ESP32freeRTOS学习笔记】系列新的开篇 ESP-IDF对FreeRTOS的适配 FreeRTOS是一个可以适用于多个不同MCU开…

JavaWeb开发(三)3.6——代理模式

一、代理模式概述 1.1、代理模式的理解 参考人家的举例,感觉挺形象,容易理解: 就拿明星与经纪人的关系来说,明星就好比被代理类,明星只需要负责唱歌,表演或给粉丝签名等事务,而类似签合同&…

Jenkins从配置到实践

Jenkins从配置到实践 1 持续集成 Continuous integration(CI) 1.1 什么是持续集成? 持续集成Continuous integration(CI)是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员…

COLMAP

简介:在使用instant-ngp过程中需要使用COLMAP得到模型的必要输入,比如模型需要的相机外参我们就可以通过COLMAP中的sparse reconstruction稀疏重建得到;而对于depth map深度图我们则需要dense reconstruction稠密重建得到,下面我们…

STM32Cube STM32MP157 M4端CAN通讯实战

1、环境 开发系列:STM32MP157 开发软件:STM32CubeIDE 1.4.0 例程目的:在M4端实现CAN通讯 2、目的 近日,有客户需要在STM32MP157中的M4端实现CAN通讯,我也是初次在M4端编写CAN通讯代码,上网研究了其他人写…

从LeNet到ResNet:深入探索卷积神经网络

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

论文解读15——LightGBM: A Highly Efficient Gradient Boosting Decision Tree

目录1、文章贡献2、直方图算法Histogram(减少分裂点)3、基于梯度的单边采样算法GOSS(减少样本量)4、互斥特征捆绑算法EFB(减少特征)在上篇中提到,XGBoost算法的局限是它在寻找最优分裂点算法中需…

AidLux AI应用案例悬赏选题 | 电路板表面瑕疵检测

AidLux AI 应用案例悬赏征集活动 AidLux AI 应用案例悬赏征集活动是AidLux推出的AI应用案例项目合作模式,悬赏选题将会持续更新。目前上新的选题涉及泛边缘、机器人、工业检测、车载等领域,内容涵盖智慧零售、智慧社区、智慧交通、智慧农业、智能家居等…

正点原子裸机开发之C语言点灯程序

一. 简介 本文针对 IMX6ULL 的裸机开发的(即不带Linux操作系统的开发)。 主要分两部分的工作: 1. 配置 C语言运行环境 2. C 语言编写及运行 二. 配置C语言运行环境 配置 C 语言运行环境的工作分 三部分。如下: 1. 设置…

Nginx配置实例-反向代理案例一

实现效果:使用nginx反向代理,访问 www.suke.com 直接跳转到本机地址127.0.0.1:8080 一、准备工作 Centos7 安装 Nginxhttps://liush.blog.csdn.net/article/details/125027693 1. 启动一个 tomcat Centos7安装JDK1.8https://liush.blog.csdn.net/arti…

YonBuilder 应用构建全新入门指南

用友开发者中心以 YonBuilder 低代码开发为核心,提供可视化 低代码 全代码的一站式开发能力,企业组织和个人开发者可实现业务应用的快速开发。YonBuilder 基于用友 BIP 强大的中台支撑能力,在元数据驱动和运行框架的统一模型架构下&#xf…

Ethercat学习-GD32以太网学习

文章目录1、GD32F4以太网简介2、以太网模框图简介3、以太网主要模块介绍SMI接口RMII接口与MII接口DMA控制器4、以太网配置流程5、其他1、GD32F4以太网简介 GD32F4系列以太网模块包含10/100Mbps以太网MAC,数据的收发都通过DMA进行操作,支持MII&#xff0…

一个C#开发的开源的快速启动工具

更多开源项目请查看:一个专注推荐.Net开源项目的榜单 平常计算机安装软件比较多、或者工作涉及的文件比较多,很多人都会直接放在桌面,一方面不安全,还不容易查找,这时候我们往往,都会放在其他硬盘内&#x…

springboot项目yml文件中${}的使用

作用 项目启动时可以灵活的通过修改环境变量来替换配置中的值,如果没有传该环境变量时,就是用默认值; 格式:${自定义参数名:默认值} 代码举例,已开启应用的端口号为例: server:port: ${SERVER_PORT:960…

AI+人类,实现高效网络安全

导语 聊天机器人和生成式人工智能(如 ChatGPT)突然成为主流让很多人感到担忧。很多人开始担忧,人工智能取代人的时代已经到来。 幸运的是,事实并非如此。 更有可能的情况是,人类将与 AI 合作创建工作角色的混合模型。…

Mercedes-Benz EDI需求分析

作为奔驰的仓储服务提供商,企业A需要借助EDI实现仓储流程的自动化。奔驰将车存放在企业A处,由企业A将货物提供给4S店。整体业务流程中将通过EDI系统来进行业务数据的传输,今天的文章主要从奔驰EDI需求概览以及EDI项目业务流程两方面展开介绍。…

646. 最长数对链——【Leetcode每日刷题】

646. 最长数对链 给你一个由 n 个数对组成的数对数组 pairs &#xff0c;其中 pairs[i][lefti,righti]pairs[i] [left_i, right_i]pairs[i][lefti​,righti​] 且lefti<rightileft_i < right_ilefti​<righti​。 现在&#xff0c;我们定义一种 跟随 关系&#xff…

MySQL查询索引原则

文章目录 等值匹配原则最左前缀匹配原则范围查找规则等值匹配+范围查找Order By + limit 优化分组查询优化总结MySQL 是如何帮我们维护非主键索引的等值匹配原则 我们现在已经知道了如果是【主键索引】,在插入数据的时候是根据主键的顺序依次往后排列的,一个数据页不够就会分…