N9E夜莺告警架构梳理分析

一、夜莺系统简介

夜莺监控(Nightingale 简称 N9E, 类似K8S,所需其中的N个字母,方便阅读)与 Grafana 类似,支持对接多种数据源。Prometheus 是最常用的数据源(其他兼容 Prometheus 接口的数据源,如 VictoriaMetrics、Thanos、M3DB 等,均可视为 Prometheus 类型数据源),因此夜莺与 Prometheus 关系密切。

夜莺监控(Nightingale)是一款专注于告警的监控类开源项目。与 Grafana 类似,夜莺也采用数据源集成方式,支持对接多种现有数据源。两者的区别在于:Grafana 侧重于数据可视化,而夜莺侧重于告警引擎、告警事件的处理和分发。

Grafana: 侧重点在于进行监控数据UI页面的展示,支持多数据源(Promethues、Loki、ES等)

N9E夜莺: 侧重点在于适配多数据源的告警引擎, 可以集成告警规则、告警收敛、告警聚合、告警分发, 支持多数据源(Promethues、Loki、ES等)

后端:https://github.com/ccfos/nightingale 12.8K⭐

前端:https://github.com/n9e/fe

官方文档: https://n9e.github.io/zh/docs/prologue/introduction/

二、工作模式

1、模式一[单纯只做告警引擎、不做数据采集、不做数据存储] (目前集成的方式⭐️)

当用户已具备指标和日志数据采集能力时,可将现有存储系统(如 VictoriaMetrics、ElasticSearch 等)作为数据源接入夜莺,在夜莺中配置告警规则和通知规则,实现告警事件的生成和分发。这种模式下,夜莺不采集数据、不存储数据,仅作为告警引擎。

我们已经在各个私有云场地使用K8S进行部署,并且使用Promethues进行指标数据采集、存储, 天然存在多数据源。无需再使用夜莺自身的Categraf采集组件,所以使用此模式,夜莺仅用于做告警引擎、不做数据采集、也不做数据存储。

2、模式二[附加夜莺专有的Categraf 采集数据功能,兼备告警引擎]

如果对于尚未采集监控数据,也可以使用 Categraf 作为采集器,Categraf 可以与夜莺丝滑对接。Categraf 支持采集操作系统、网络设备、各类中间件和数据库的监控数据,通过 Remote Write 协议将数据推送至夜莺。这种模式下,夜莺仍然不存储监控数据,而是充当数据转发网关,将监控数据做一些处理然后转存至时序数据库(如 Prometheus、VictoriaMetrics 等)。

对于网络链路不稳定的边缘机房场景,为提升告警可用性,夜莺提供边缘机房告警引擎下沉部署模式。在此模式下,即使边缘机房与中心机房网络中断,告警功能仍可正常运行。

上图中,机房 A 与中心机房网络链路稳定,因此直接由中心端的夜莺进程执行告警引擎功能;机房 B 与中心机房网络链路不稳定,因此在机房 B 部署 n9e-edge 作为告警引擎,对机房 B 的数据源进行告警判定。

三、N9E的部署架构

1、单节点架构[N9E Golang编写的单个二进制文件主进程,依赖MySQL、Redis]

【N9E主进程】 HTTP监听端口17000, RPC接口监听20090、告警引擎(一堆后台告警规则执行任务,每个任务就是一个go 协程)

【MySQL数据库】 存储告警规则、用户信息、用户组信息、系统相关元数据等等

【Redis服务】 存储一些缓存数据库、Categraf相关、JWT相关数据

2、多节点+高可用架构

N9E的集群高可用很简单, 只需要启动多个N9E实例进程即可,并且这些N9E进程连接到相同的MySQL数据库、Redis服务,一个高可用的N9E夜莺监控系统就搭建完成了。 告警规则任务会进行均摊,例如有100个告警规则,那么存在5个N9E实例,那么平均每个实例会分到20个告警规则任务,执行告警规则查询任务。 如果其中某个节点挂了,那么其他节点承担之前宕机节点的告警规则任务。

相关推荐
轻刀快马6 小时前
讲透分布式系统的演进史与核心架构
开发语言·架构·php
一切皆是因缘际会6 小时前
从概率拟合到内生心智:七层投影架构重构AGI数字生命新范式
大数据·数据结构·人工智能·重构·架构·agi
青衫客366 小时前
从操作系统到 Agent OS:多智能体系统运行原理的底层类比与架构思考
架构·agent
Lyra_Infra6 小时前
技术排查报告:Kubernetes Ingress 路由异常
docker·架构
烟雨江南7856 小时前
从转写到智能体决策:基于“灵声智库”与本地大模型(LLM)的政务热线智能分析与 RAG 知识库融合架构
人工智能·科技·架构·语音识别·政务·ai质检
互联网推荐官6 小时前
上海物联网应用开发平台选型实录:PaaS架构如何解决设备接入与数据治理的工程难题
物联网·架构·paas·开发经验·上海
小短腿的代码世界7 小时前
QHttpEngine深度解析:Qt嵌入式HTTP服务端的工业级架构与性能调优
qt·http·架构
学习,学习,在学习7 小时前
Qt 串口通讯架构
开发语言·c++·qt·架构·qt5
一切皆是因缘际会7 小时前
终结拟合式智能:记忆博弈心智架构重塑硅基生命进化逻辑
大数据·人工智能·深度学习·机器学习·架构