Alertmanager 基础
Alertmanager 处理来自 Prometheus 的告警信息,负责对这些信息去重、分组并将他们发送给正确的接收者
同时也负责告警抑制和维护
分组
Alertmanager 会把同类型的告警进行分组,合并到一条告警信息中
如:多个机器实例 down 掉的话,正常可能会有很多个同类型的告警,作为运维来讲,告警更关心的是一个告警信息中的哪些实例会受到影响, 而不是一坨告警来了之后,发现都是同一个原因导致的故障。
维护
静默很好理解,简单来说就是告警维护
可以根据标签来匹配对应的告警条目,来进行暂时的维护,在此期间 Alertmanager 不会发送告警信息
抑制
简单来说就是一个告警已经发送了,那么由此告警故障引发的其他的告警就不要再发送了
如:一个机器实例 down 掉了并发送了告警,那么在此机器上的其他业务告警就不要发送了
下载
下载:Download the latest release
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