夜莺-Nightingale
夜莺V6
项目介绍 架构介绍
快速开始
黄埔营
安装部署
升级
采集器
使用手册
API
数据库表结构
FAQ
开源生态
Prometheus
版权声明
第1章:天降奇兵
第2章:探索PromQL
第3章:Prometheus告警处理
第4章:Exporter详解
第5章:数据与可视化
第6章:集群与高可用
第7章:Prometheus服务发现
第8章:监控Kubernetes
第9章:Prometheus Operator
参考资料

活跃告警 & 历史告警

关于告警事件,夜莺分成了两个菜单,一个是活跃告警,用于展示所有当前未恢复的告警事件(一旦告警恢复,就会自动从这里删除),另一个是历史告警,用于展示所有历史事件,包括告警事件和恢复事件。

活跃告警

活跃告警有两个展示方式,一个是聚合卡片,一个是告警列表。如下图,是一个卡片聚合视图页面:

20240227152311

红框中的两个按钮用于切换展示方式。

社区问题比较多的是活跃告警如何配置聚合规则。首先说一下聚合规则的设计初衷:告警事件很多,想要分门别类的查看,这就需要聚合呈现,基于哪些维度来对事件分类呢?一个是事件的属性,比如所属业务组的名称、规则名称、事件级别,另一个是事件标签,比如根据 ident 标签做聚合,则每个机器的告警就会分别聚合为一张卡片。默认安装了之后,会内置两个聚合规则:

  • 根据业务组+事件级别做聚合:field:group_name::field:severity
  • 根据告警规则的名称做聚合:field:rule_name

如果想配置基于某个标签做聚合,就使用 tagkey 做前缀即可(根据属性聚合的话,其前缀是 field,内置的两个规则都是根据属性聚合,多个聚合条件之间用双冒号分隔),举例:根据机器标签 ident 做聚合:tagkey:ident

20240227153204

历史告警

历史告警就是展示所有历史事件,包括告警事件和恢复事件,每个告警事件前面有个色块,绿色表示恢复事件,其他颜色表示告警事件,颜色越深,表示事件级别越高。

20240227153457

活跃告警存储在数据库的 alert_cur_event 表中,历史告警存放在 alert_his_event 表中,alert_his_event 随着时间推移可能会积累越来越多的条目,所以需要定期手工清理,一般来讲,超过 1000 万行就需要清理一下,清理的时候写个小脚本,每次清理 1000 行,保证小事务操作,别不加 limit 一次性删除太多,会锁表。

开源版
Flashcat
Flashduty