一、配置文件
- 在Alertmanager的配置中会定义一个基于标签匹配规则的告警路由树,以确定在接收到告警后,Alertmanager将匹配到的告警发送给对应的receiver,
- 一个最简单的route定义如下所示: ```yaml route: group_by: [‘alertname’] receiver: ‘web.hook’ receivers:
name: ‘web.hook’ webhook_configs:
- url: ‘http://127.0.0.1:5001/‘ ```
在Alertmanager配置文件中,我们只定义了一个路由,那就意味着所有由Prometheus产生的告警在发送到Alertmanager之后都会通过名为web.hook的receiver接收。这里的web.hook定义为一个webhook地址。
在route中,我们还可以定义更多的子Route,这些Route通过标签匹配告警的处理方式。
二、路由匹配规则
默认情况下,告警进入到顶级route后会遍历所有的子节点,直到找到最深的匹配route,并将告警发送到该route定义的receiver中。但如果route中设置continue的值为false,那么告警在匹配到第一个子节点之后就直接停止。如果continue为true,报警则会继续进行后续子节点的匹配。如果当前告警匹配不到任何的子节点,那该告警将会基于当前路由节点的接收器配置方式进行处理。
- 其中告警的匹配有两种方式可以选择。
- 一种方式基于字符串验证,通过设置match规则判断当前告警中是否存在标签labelname并且其值等于labelvalue。
- 第二种方式则基于正则表达式,通过设置match_re验证当前告警标签的值是否满足正则表达式的内容。