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个告警规则任务,执行告警规则查询任务。 如果其中某个节点挂了,那么其他节点承担之前宕机节点的告警规则任务。

相关推荐
逻极1 天前
Hermes Agent深度探索:一个会自我沉淀经验的终端智能体
架构·llm·agent·rag·多智能体系统·hermes agent·hermes
数智顾问1 天前
(151页PPT)XX集团信息化整体架构规划及ERP方案建议书(附下载方式)
大数据·架构
caimouse1 天前
Reactos 第1章 概述
c语言·开发语言·架构
namexingyun1 天前
拆解Fable 5三重安全护栏:模型路由、蒸馏防护与生物安全分类器的技术原理 - 微元算力(weytoken)
java·人工智能·python·安全·架构·ai编程
小短腿的代码世界1 天前
行情快照与增量更新引擎:Qt在高频交易数据分发中的核心架构——你的行情推送为什么延迟了500ms?
开发语言·qt·架构
上海云盾第一敬业销售1 天前
高效阻止网站攻击的WAF防护架构解析
web安全·架构·ddos
意图共鸣1 天前
意图共鸣科技《AI记忆链商业化白皮书3.0》假设场景解析:从母亲到消防员,专属AI如何重塑记忆与传承
人工智能·科技·架构
FPGA小徐1 天前
Xilinx zynq-7000系列FPGA移植Linux操作系统详细教程
fpga开发·架构
王二端茶倒水1 天前
智慧小区宽带无线运营:从网络交付到认证、计费与运维闭环
运维·物联网·架构
ai产品老杨1 天前
基于 Docker 与边缘计算的智能安防架构:解耦 GB28181/RTSP 多协议接入与异构芯片部署(附源码交付与 95% 降本实践)
docker·架构·边缘计算