Grafana侧重可视化,那多数据源告警呢?

Zabbix Vs. Grafana 本文对比了开源监控工具Zabbix和数据可视化工具Grafana的核心功能与特点。Zabbix提供完整的监控闭环(采集、存储、告警),适合企业级分布式监控,但可视化功能较弱;Grafana专注于数据可视化,支持500+数据源,提供更美观的仪表盘和交互体验。二者开源版本均免费可用,满足中小企业需求,大型企业可选商业版本获取高级功能。性能方面,Zabbix受限于采集-存储链路,Grafana依赖数据源性能。实际应用中常将二者结合:Zabbix负责数据采集与告警,Grafana实现可视化展示。 阅读详情

在监控、可观测性领域,Grafana 应该是使用最为广泛的开源项目了,Grafana 可以对接多种数据源,对其中的数据做可视化分析。

实际上,Grafana 也可以配置告警规则,只是设计上相对拧巴,用户用的比较少。因为大部分情况下,告警都是使用 Prometheus,所以用户就直接在 Prometheus 里配置告警规则了。当然,这样会有如下问题:

  • Prometheus 的告警规则使用 YAML 文件维护,维护起来不方便
  • 如果有多套 Prometheus,那维护起来更费劲
  • 如果有日志告警需求,比如 ElasticSearch、ClickHouse 等,就需要寻找其他告警方案,人员权限、通知媒介等就散落各处了
  • 业务数据经常存在 MySQL 等关系库中,如果对业务数据做告警,还需要有个针对 MySQL、Postgres 等 OLTP 库的告警引擎

今天为大家介绍另一款开源项目,侧重点就是多数据源告警,希望可以帮到大家。这个项目叫夜莺监控。

夜莺简介

夜莺监控最开始是滴滴开源出来的,后来捐赠给基金会运作,目前在 github 上已经上万颗星,小有影响力。

夜莺项目也算是一个监控系统,不过侧重点在告警引擎,可以对接常见的数据源,比如 Prometheus、VictoriaMetrics、Thanos、ElasticSearch、Loki、MySQL、Postgres、ClickHouse 等,根据用户配置的告警规则,对数据做判定,生成告警事件并发送。其架构示意图如下:

从图上可以看出:

  • 夜莺包含两个功能模块,一个是 Webapi,用于和用户交互,对一些配置类信息做 CRUD,比如告警规则、通知规则、仪表盘等;另一个是告警引擎 AlertingEngine,根据用户配置的告警规则做告警判定
  • 夜莺用到了两个存储,MySQL 存储用户、权限、规则等配置类信息;Redis 用于存储 JWT Token、机器的心跳信息等
  • 夜莺可以对接多种数据源,比如下面框里的那些存储,对这些存储中的数据做告警判定
  • 生成告警事件之后,可以通过不同的通知媒介发出,比如邮件、电话、短信、飞书、Flashduty、Slack 等

夜莺最核心的逻辑就是告警引擎,负责产生事件、对事件做二次处理,最终发出。我们看一下引擎的设计。

夜莺告警引擎

上图基本可以说明告警引擎的核心逻辑,里边涉及到一些概念:告警规则、屏蔽规则、通知规则、订阅规则、事件处理 Pipeline、事件处理器 Processor、通知媒介等。如果你用过 Prometheus 和 Zabbix,里边很多概念是类似的。

1.告警判定引擎

最左侧那个大的矩形框,比较告警判定引擎,里边有很多小圆圈,每个小圆圈表示一个 goroutine(go 语言中的协程,可以理解为轻量级线程),每个 goroutine 处理一个告警规则。

告警规则里通常会配置一个检测执行周期,goroutine 的核心逻辑姑且可以理解为一个死循环,每隔一段时间执行一次。执行的时候,就是根据用户配置的查询语句查询数据源,查到了数据,就要产生告警事件。

如果是 Prometheus 数据源,用户要配置 promql,如果是 VictoriaMetrics,用户要配置 Metricsql,如果是 ClickHouse、MySQL、ElasticSearch、Postgres 等数据源,用户要配置 SQL。

告警判定引擎需要从 DB 同步用户配置的告警规则,周期性同步,9秒一次。

2.屏蔽规则

产生告警事件之后,先判断屏蔽规则,如果命中了屏蔽规则,事件就被丢弃。

通常来讲,一些预期内的维护动作,可能会导致预期内的告警产生,可以通过屏蔽规则提前做屏蔽,省的大家收到告警担惊受怕。

3.事件持久化

告警事件产生之后,为了方便后面在页面查看,会持久化到 DB 里。

页面上分两个菜单,一个是活跃告警,用于展示当前未恢复的告警事件,另一个是历史告警,展示所有历史上的告警、恢复事件。

4.绑定通知规则

告警事件产生并持久化之后,下一步是关联通知规则,通知规则里可以对事件做二次处理并发送。

告警事件有很多,哪些事件绑定哪些通知规则,如何定义呢?有两个方式:

  • 在告警规则里直接绑定通知规则。这个告警规则触发的所有事件都会走对应的通知规则
  • 告警规则里不直接绑定通知规则,在订阅规则里绑定。订阅规则可以对告警事件做筛选,筛选到的事件走某个通知规则

5.通知规则

大公司通知规则有很多,通常每个团队一个通知规则,通知规则包含两部分:

  • 事件处理器,对事件做二次处理,比如 Enrichment、Drop 等
  • 通知配置,指定什么样的事件发什么通知媒介,比如 Critical 的告警打电话,Warning 的告警发短信

6.事件处理管道(Pipeline)

通知规则里可以配置多个 Pipeline,每个 Pipeline 里包含多个 Processor。事件处理器的典型场景:

  • 跟内部的 CMDB 打通,附加一些更丰富的信息到告警事件上
  • 调用 DeepSeek 的接口,对告警事件做一些智能分析,然后把分析结果附加到告警事件上
  • 把所有告警事件发送到自己的系统,相当于镜像一份,做后续的分析处理
  • 一些特定的告警事件可以 Drop 掉,比如一些恢复事件不想发送通知

总结

夜莺监控项目因为侧重点是告警,所以对告警事件相关的处理逻辑比较丰富,如果你也有类似需求场景,可以尝试一下试试。

参考:

快速掌握elasticsearch可视化工具:新手入门核心要点 掌握elasticsearch可视化工具的关键步骤,帮助初学者快速上手数据查询与分析。通过直观界面操作,提升elasticsearch数据交互效率,轻松实现日志监控与检索。 阅读详情

相关推荐

AI模型部署监控实战:Prometheus、Grafana与Datadog选型指南

在AI模型从实验室走向生产环境的过程中,模型部署后的监控是保障服务稳定与业务价值的关键环节。其核心原理在于构建一个多层次、多维度的可观测性体系,不仅需要监控传统的基础设施指标,更要深入模型服务层与模型质量层。这一体系的技术价值在于,它能实时洞察模型推理延迟、吞吐量、GPU利用率等性能指标,并能通过监控数据漂移与概念漂移,提前预警模型性能退化,从而保障业务决策的准确性与用户体验。典型的应用场景包括推荐系统、图像识别、自然语言处理等在线AI服务。针对这一需求,业界常围绕Prometheus、Grafana和Da

weixin_30820077的博客 387

VS Code 操作 “Delete unused imports” 时,不删除 React 导入

本文介绍了夜莺的定位、架构、单进程还是多进程的抉择、高可用设计,如果你们公司只有一个机房或者有多个机房但是机房之间有很好的网络专线,那就部署一套夜莺就可以了,如果有多个机房,但是机房之间的网络链路很差,就需要考虑夜莺的边缘机房架构模式,咱们下一节详细介绍。需要考虑 sharding,比如有两个实例,有 1000 条规则,那每个实例要处理 500 条规则,不能重复执行,而且要均匀分配,如果某个实例挂了,剩下的实例要能承接原本宕机的实例负责的那些规则。如果是公司内部的系统,我更倾向于做成两个进程,方便维护。

aT36vi4Pn的博客 298

开源运维监控系统-Nightingale(夜莺)应用实践

某业务系统因OS改造,原先的Zabbix监控系统推倒后未重建,本来计划用外部企业内其他监控系统接入,后又通知需要自建才能对接,考虑之前zabbix的一些不便,本次计划采用一个类Prometheus的监控系统,镜调研后发现Nightingale兼容Prometheus,又有一些其他功能增强,又在一些大的企业经过较大规模部署实践,故本次采用Nightingale作为监控系统来进行重建。

企业实战系列集 ●●● https://ximenjianxue.blog.youkuaiyun.com 5750

ClickHouse 可观测性方案选型:ClickStack 与 Grafana 的差异与适用场景

文章准确捕捉了可观测性领域从单一可视化向智能体驱动工作流转型的趋势。对于已确定 ClickHouse 为存储底座的团队,本文提供的选型维度具有较高的参考价值。

ClickHouseDB的博客 180

Grafana 数据源深度配置:Prometheus、InfluxDB 与 MySQL 实战接入

详细讲解 Grafana 中主流数据源的配置方法,包括 Prometheus、InfluxDB 和 MySQL,重点解决连接超时、权限和查询优化问题。

kaixin110a的博客 30

f103vet6 SD卡SDIO+DMA配置避坑指南:从初始化卡死到稳定读写的全流程解析

本文详细解析STM32F103VET6芯片SD卡SDIO与DMA配置中的常见问题,从初始化卡死到读写不稳定的全流程解决方案。重点分析总线宽度配置、时钟分频调整及DMA通道管理技巧,帮助开发者避开常见陷阱,实现稳定高效的数据存储。

u0v1w2x3的博客 666

Zabbix、Prometheus、Grafana、Nightingale,四个监控如何选型?

abbix 也可以监控 MySQL、Redis、Postgres、Kubernetes 等各类开源组件,但这不是它的长处,采集的指标偏少、海量指标不方便检索。对于微服务指标监控,Zabbix 就更加不擅长了,这是 Prometheus 生态的天下。Zabbix 仍然服役于大量企业,主要是解决设备监控的场景。

hYEp3fmL8的博客 261

给jetson nano 安装AX200网卡驱动

几经波折,因为在网上看到的基本都是amd版本而非arm版,然后最终选定V5.5是因为更新的几个版本的arm版本是false的(在https://kernel.ubuntu.com/~kernel-ppa/mainline/处选择版本时,得看在arm64上是false还是build succeeded,之前没经验呀刚刚才顿悟的) 1,参考文章https://blog.youkuaiyun.com/MIRANA0/article/details/106696334 学到了得下载如下四个: wget https://k

发嘎嘎的博客 2345

abbix、Prometheus、Grafana、Nightingale,四个监控如何选型?

研监控系统的时候,通常会看到这四个产品:Prometheus、Grafana、Zabbix、Nightingale,对新手而言,是个选型难题。本文尝试分别解释其适用场景和优缺点,当然了,每个人的认知都有局限,仅供大家参考。

Qi6nQ201e的博客 231

CosyVoice 本地部署详细教程 手把手小白教程

本文提供了详细的CosyVoice本地部署教程,强调了避免中文名称和空格的重要性,并列出了必要的软件安装步骤,包括CUDA、cuDNN、Git和Miniconda。教程涵盖了从检查CUDA版本到下载模型和运行模型的全过程,确保用户能够顺利部署并使用CosyVoice。

huazn612的博客 2万+

VLA模型(具身智能入门十)

Vision Language Action(VLA)模型VLA模型是机器人领域的“感知-理解-执行”一体化框架,通过Transformer架构融合视觉、语言、动作模态,核心目标是让机器人在自然语言驱动下,自主完成复杂操控任务。其定义的核心在于“跨模态统一”与“具象化行动”——不仅能“看懂”“听懂”,更能“做出正确的动作”,是实现通用机器人智能的关键方向。提供通用序列建模骨架,让视觉、语言、动作能以“序列”形式统一处理;ViT将视觉输入转换为序列特征,提供“看”的能力;LLMs。

weixin_39699362的博客 9932

Grafana融合多种数据源并且炫酷的展示数据

数据可视化是非常重要的一个技术,数据人员除了关注于数据本身与数据业务之外同样应该注重于关注数据的可视化场景与分析场景。Grafana能够连接多种数据源,ElasticSearch,MySql,PoastgreSql,InfluxDB,OpenTSDB,CloudWath,Zabbix等。...

chunlihao1535的博客 6199

TMS320F28388D 学习笔记2 高精度PWM (HRPWM)

HRPWM的学习记录。

whyorwhnt的专栏 9534

almalinux下部署promethues+grafana服务-容器化

十五分钟包教包会,市面上最简单的容器化部署prometheus+grafana环境

老徐头子的博客 916

Ubuntu下NVIDIA驱动安装全攻略:从报错到完美运行nvidia-smi的完整流程

本文提供了在Ubuntu系统中安装NVIDIA驱动的完整解决方案,重点解决因驱动版本冲突、内核模块未加载或Secure Boot安全启动导致的`nvidia-smi`报错问题。通过彻底清理旧驱动、处理Secure Boot、选择兼容版本并正确安装,最终确保驱动完美运行。

weixin_29196891的博客 364

[案例四] 智能填写属性工具(支持装配组件还有建模实体属性的批量创建、编辑)

本次案例主要是对上次导出自动导出BOM的一个前处理,要想导出属性,首先的有属性。于是本着学习的态度进行制作,可能有些功能有点别扭(支持装配环境下组件属性的批量填写,支持建模环境下的实体(不包括装配组件实体)——为了减负我把其过滤掉了,一般没人会往装配体里添加进行建模吧,但是不免有奇葩,哈哈哈)。

weixin_47753171的博客 1981

Silverlight 相关文章汇总

本文介绍了夜莺的定位、架构、单进程还是多进程的抉择、高可用设计,如果你们公司只有一个机房或者有多个机房但是机房之间有很好的网络专线,那就部署一套夜莺就可以了,如果有多个机房,但是机房之间的网络链路很差,就需要考虑夜莺的边缘机房架构模式,咱们下一节详细介绍。需要考虑 sharding,比如有两个实例,有 1000 条规则,那每个实例要处理 500 条规则,不能重复执行,而且要均匀分配,如果某个实例挂了,剩下的实例要能承接原本宕机的实例负责的那些规则。如果是公司内部的系统,我更倾向于做成两个进程,方便维护。

jksgdkjahba的博客 387

应用商店评论分析实战:Python逆向工程破解Google Play加密接口与NLP建模

在移动互联网时代,应用商店中的用户评论成为了开发者优化应用、提升用户体验的重要依据。然而,Google Play等应用商店对评论数据进行了加密处理,直接爬取难度较大。本文将介绍如何使用Python逆向工程破解Google Play的加密接口,实现对应用商店评论的实时采集,并结合NLP(自然语言处理)技术进行情感分析和主题建模,为开发者提供有价值的数据支持。

u014481728的博客 1348

Kubernetes生产环境监控方案对比:Prometheus vs Grafana vs Datadog

三大方案各有适用场景:Prometheus是K8s监控的基石,适合技术驱动型团队;Grafana是可视化增强工具;Datadog是省心省力的商业方案。最终选择应基于团队技术栈、预算规模和运维能力综合评估,而非单纯追求功能最全或价格最低。

byoass的博客 257

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

经验分享:CSS浮动(float,clear)通俗讲解

本文介绍了夜莺的定位、架构、单进程还是多进程的抉择、高可用设计,如果你们公司只有一个机房或者有多个机房但是机房之间有很好的网络专线,那就部署一套夜莺就可以了,如果有多个机房,但是机房之间的网络链路很差,就需要考虑夜莺的边缘机房架构模式,咱们下一节详细介绍。需要考虑 sharding,比如有两个实例,有 1000 条规则,那每个实例要处理 500 条规则,不能重复执行,而且要均匀分配,如果某个实例挂了,剩下的实例要能承接原本宕机的实例负责的那些规则。如果是公司内部的系统,我更倾向于做成两个进程,方便维护。

svsdhssd的博客 339

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

国产化监控方案:夜莺Nightingale系统详解与部署实践

本文介绍了国产开源监控系统夜莺Nightingale的核心功能与搭建实践。文章详细讲解了从环境准备、组件部署到数据采集的完整流程,重点说明其在云原生场景下的应用优势,帮助用户快速上手并实现对业务系统的全面监控。

2401_83649605的博客 3493

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

擦亮自己的眼睛去看SQLServer之说说跟踪

本文介绍了夜莺的定位、架构、单进程还是多进程的抉择、高可用设计,如果你们公司只有一个机房或者有多个机房但是机房之间有很好的网络专线,那就部署一套夜莺就可以了,如果有多个机房,但是机房之间的网络链路很差,就需要考虑夜莺的边缘机房架构模式,咱们下一节详细介绍。需要考虑 sharding,比如有两个实例,有 1000 条规则,那每个实例要处理 500 条规则,不能重复执行,而且要均匀分配,如果某个实例挂了,剩下的实例要能承接原本宕机的实例负责的那些规则。如果是公司内部的系统,我更倾向于做成两个进程,方便维护。

sacaegawfaga的博客 449

夜莺监控设计思考(一)整体定位、架构设计、单进程多进程选择、高可用设计

摘要:夜莺监控定位为告警引擎,统一管理多数据源(如Prometheus、MySQL等)的告警规则,通过事件Pipeline实现告警处理与通知。相比Grafana侧重可视化,夜莺专注告警治理,支持规则Relabel、事件丰富等功能。其核心架构包含无状态WebAPI(配置管理)和有状态alert模块(规则执行),采用单进程设计平衡部署复杂度与维护性,通过数据库心跳实现高可用。后续将探讨跨机房的边缘架构方案。

n9ecommunity的博客 755
上一篇: 可观测性体系建设五步心法:明业务、立规范、采数据、显特征、获洞见
下一篇: 开源夜莺里如何引用标签和注解变量
夜莺开源监控
博客等级 码龄6年 1358粉丝 203原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜莺开源监控

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值