夜莺监控设计思考(二)边缘机房架构思考

这将是一个系列,讲解 夜莺监控 的设计思考,可以理解为原理+最佳实践+产品设计时的折中取舍。

本系列其他文章:

下面开始第2篇。

上一篇我们遗留了一个话题,就是如果贵司有多个数据中心,而且数据中心之间网络链路较差,此时应该怎么办?

夜莺边缘架构模式

举个例子,假设有北京、上海、美东三个数据中心,北京和上海之间有良好的专线打通,而美东和国内网络链路较差。

北京、上海、美东三地均部署了服务,指标和日志都选择落在本地,而非传输到中心。假设指标使用 VictoriaMetrics 存储,日志使用 ElasticSearch 存储,整体示例如下:

北京、上海机房既然网络链路很好,姑且可以看做是同一个机房,用一套夜莺统一处理,比如就把夜莺部署在北京机房,让夜莺读取北京、上海的数据源,做告警判定。那美东呢?让北京机房的夜莺读取美东的数据源做告警是不行的,因为网络链路不好,经常超时。

告警判定是周期性的,比如15秒一次,很频繁,我们需要确保查询时网络链路是好的,最佳实践就是把告警引擎直接部署到美东,这样本机房查询,就没问题了。

所以,夜莺引入了边缘机房部署架构。可以把告警引擎抽离出来作为一个单独的模块,部署到美东。这个模块可以从中心端夜莺同步告警规则,把告警规则存在内存里,然后查询本地数据源的数据,做告警判定。

架构示意图:

夜莺中心端的进程叫 n9e,n9e 是 nightingale 的缩写,边缘机房(这里是指美东机房)单独部署了一个 n9e-edge 进程。

n9e-edge 进程要连中心端的 n9e,所以你在 n9e-edge 的配置文件里,需要指定 n9e 的 HTTP 地址和认证信息(如需)。

如果美东和北京的网络临时中断了,影响也不大,美东的 n9e-edge 没法从北京的 n9e 同步告警规则了,不算太大的问题。另外 n9e-edge 产生的告警事件没法写到中心数据库了,所以你在页面上没法看到相关的告警事件,但只要美东的外网出口没问题,n9e-edge 产生的告警事件还是可以推送出去的,因为告警媒介都是走的外网,比如钉钉、企微、Slack,都是外网 SaaS 服务。

预告

本篇先到这里。下一篇预告:夜莺没有自研时序存储,却又提供了 agent,有点拧巴,到底是为啥?

相关推荐
AscendKing1 天前
开源白板工具(SaaS),一体化白板,包含思维导图、流程图、自由画等
开源·流程图·好好学电脑·hhxdn.com
软件供应链安全指南1 天前
悬镜安全源鉴SCA(软件成分分析)产品,开源商业化成果获肯定
开源
ajassi20001 天前
开源 Objective-C IOS 应用开发(五)iOS操作(action)和输出口(Outlet)
ios·开源·objective-c
CloudWeGo1 天前
提升流式开发效率与易用性:Kitex/Hertz 为大模型应用保驾护航
开源
NocoBase1 天前
7 款最佳自托管 AI 工具,快速构建业务应用
低代码·开源·资讯
CloudWeGo1 天前
用 Eino ADK 构建你的第一个 AI 智能体:从 Excel Agent 实战开始
人工智能·开源·github
m0_650108241 天前
MiniGPT-4:解锁 LLM 驱动的高级视觉语言能力
论文阅读·开源·视觉语言大模型·minigpt-4·跨模态对齐·强llm+视觉对齐
GitCode官方1 天前
创意无限·开源共赢|2025「卡赢杯」开源游戏开发大赛正式启动!
游戏·开源
weixin_377634841 天前
【开源-AgentRL】创新强化学习 多项任务超闭源模型
开源·强化学习
百***46801 天前
IoT DC3 是一个基于 Spring Cloud 的开源的、分布式的物联网(IoT)平台本地部署步骤
物联网·spring cloud·开源