请问n9e-server的高可用部署有最佳实践吗?
我能想到的其中一个问题是:
- 在做告警判定的时候,由n9e-server主动查询PromQL的值,若存在N个n9e-server,会不会出现重复告警的问题?
- N个n9e-server是否需要对告警做shard,还是类似Prometheus+Alertmanager的结构,由alertmanager做去重?
请问n9e-server的高可用部署有最佳实践吗?
我能想到的其中一个问题是:
翻了下alert/naming/的源码,大概明白了:
高可用的实现:
我理解是这样,存在N个n9e-server会把告警均分,每个告警引擎集群都会管理一部分告警。具体实现上还有待研究。你可以看看这篇https://mp.weixin.qq.com/s/TctM_kosBZesKj6i0oEZew
夜莺的告警规则会配置对哪个数据源进行告警,每个数据源都可以关联一个告警引擎集群,如下图,这样每个告警引擎就会知道自己需要纳管哪个告警规则。
均分后的n9e-server实例,是否需要高可用部署(比如3个副本),若只有一个实例,宕机怎么办?
嗯嗯,我觉得应该多部署,我印象是有单独协程去专门同步实例变换,更新哈希环