xuxt 8fbe107ac9 dev_1.0.0_xuxt 完成web和alert模块开发,以及模块e2e测试 (#21)
Co-authored-by: xiuting.xu <xiutingxt.xu@gmail.com>
Reviewed-on: #21
Reviewed-by: huhy <husteryezi@163.com>
Reviewed-by: sundapeng <sundp@mail.zgclab.edu.cn>
Reviewed-by: yuyr <yuyr@zgclab.edu.cn>
2025-10-14 10:20:45 +08:00

2.1 KiB
Raw Blame History

告警配置

参考:自定义Prometheus告警规则

在Prometheus中配置告警的有两个步骤

  1. 写告警规则文件rules文件
  2. 在promethues.yml里加载规则并配置Alertmanager

1. 编写告警规则文件

告警规则如下:

groups:
  - name: example-rules
    interval: 30s  # 每30秒评估一次
    rules:
      - alert: InstanceDown
        expr: up == 0
        for: 1m
        labels:
          severity: critical
        annotations:
          summary: "实例 {{ $labels.instance }} 已宕机"
          description: "{{ $labels.instance }} 在 {{ $labels.job }} 中无响应超过 1 分钟。"

      - alert: HighCpuUsage
        expr: 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
        for: 5m
        labels:
          severity: warning
        annotations:
          summary: "CPU 使用率过高"
          description: "实例 {{ $labels.instance }} CPU 使用率超过 80% 持续 5 分钟。"

其中:

  • alert:告警规则的名称。
  • expr基于PromQL表达式告警触发条件用于计算是否有时间序列满足该条件。
  • for评估等待时间可选参数。用于表示只有当触发条件持续一段时间后才发送告警。在等待期间新产生告警的状态为pending。
  • labels自定义标签允许用户指定要附加到告警上的一组附加标签可以在Alertmanager中做路由和分组。
  • annotations用于指定一组附加信息比如用于描述告警详细信息的文字等annotations的内容在告警产生时会一同作为参数发送到Alertmanager。可以提供告警摘要和详细信息。

2. promothues.yml里引用

在prometheus.yml中加上rule_filesalerting:

global:
  [ evaluation_interval: <duration> | default = 1m ]

rule_files:
  [ - <filepath_glob> ... ]

alerting:
  alertmanagers:
    - static_configs:
        - targets:
            - "localhost:9093"   # Alertmanager 地址