Alertmanager 基础

Alertmanager 处理来自 Prometheus 的告警信息,负责对这些信息去重、分组并将他们发送给正确的接收者

同时也负责告警抑制和维护

分组

Alertmanager 会把同类型的告警进行分组,合并到一条告警信息中

如:多个机器实例 down 掉的话,正常可能会有很多个同类型的告警,作为运维来讲,告警更关心的是一个告警信息中的哪些实例会受到影响, 而不是一坨告警来了之后,发现都是同一个原因导致的故障。

维护

静默很好理解,简单来说就是告警维护

可以根据标签来匹配对应的告警条目,来进行暂时的维护,在此期间 Alertmanager 不会发送告警信息

抑制

简单来说就是一个告警已经发送了,那么由此告警故障引发的其他的告警就不要再发送了

如:一个机器实例 down 掉了并发送了告警,那么在此机器上的其他业务告警就不要发送了

下载

下载:Download the latest releaseopen in new window

tar xvf alertmanager-0.23.0.darwin-arm64.tar.gz
cd alertmanager-0.23.0.darwin-arm64

配置文件

先来看下 Alertmanager 的默认配置文件 alertmanager.yml

route: # 告警路由
  group_by: ["alertname"] # 报警分组
  group_wait: 30s # 分组等待时间,如果在此时间内,出现相同报警,就在同一个组内出现
  group_interval: 5m # 分组内没有变化,则在此时间之后,将分组内的告警合并为一条告警信息发送
  repeat_interval: 1h # 如果告警没有恢复,则在此时间后重新发送
  receiver: "web.hook" # 默认的接收器名称, 也就是路由匹配不到的情况下, 最终发送给这个接收器
receivers: # 告警接收器
  - name: "web.hook"
    webhook_configs:
      - url: "http://127.0.0.1:5001/"
inhibit_rules: # 抑制规则
  - source_match:
      severity: "critical"
    target_match:
      severity: "warning"
    equal: ["alertname", "dev", "instance"]

检查配置

cd alertmanager-0.23.0.darwin-arm64
./amtool check-config alertmanager.yml

启动服务

直接启动,这样就运行了 Alertmanager 服务,读取的配置文件就是当前目录下的 alertmanager.yml 配置文件

cd alertmanager-0.23.0.darwin-arm64
./alertmanager

启动参数

  • --config.file="alertmanager.yml"
  • --web.listen-address=":9093"
  • --data.retention=120h
  • --alerts.gc-interval=30m
上次更新:
贡献者: kongzZ