普罗米修斯“标签”

问题描述 投票:0回答:2

我需要通过alertmanager通过prometheus .yml文件向Slack上的多个通道发送特定警报。

目前我当前的配置是一对一的,这意味着一个警报针对一个通道。因此,警报“vs_replica_sql_slave_status”转到“slack_monitoring_prod”

普罗米修斯.yml:

groups:
      - name: vs_replica_sql_slave_status
        rules:
           - alert: vs_slave_status
             for: 2m
             expr: (mysql_global_status_slave_running{instance=~"vs-replica.+",alias!~"vs-replica-test",alia
             labels:
               severity: "critical"
             annotations:
                     identifier: "{{ $labels.alias }}"
                     description: "Slave Status not running"

alertmanager.yml:

 routes:
  - match:
      severity: critical
    receiver: slack_monitoring_prod

我还需要将警报发送到另一个频道,即:

- match:
      severity: critical_dwh
    receiver: critical_dwh

在第一个代码块中,我有标签>严重性>关键,它指向第一个通道。是否可以添加另一个标签来指向第二个通道,或者这会破坏整个配置吗?即:

labels:
   severity: "critical"
   severity: "critical_dwh"

任何有关如何执行此操作的建议或方法将不胜感激。

prometheus prometheus-alertmanager
2个回答
1
投票

两个标签不能使用相同的密钥。相反,您可以添加额外的标签:

labels:
  severity: critical
  dwh: critical

然后您可以将每个标签路由到不同的接收器。如果您希望警报到达多个接收者,请记住使用

continue: true
让管道继续匹配。

route:
  routes:
  
  - receiver: slack_monitoring_prod
    matchers:
    - severity = critical
    continue: true
  
  - receivers: dwh_monitoring_prod
    matchers:
    - dwh = critical

您可以使用

amtool
(Alertmanager 附带)来验证您的路由。

amtool config routes test --config.file /path/to/alertmanager.yml severity=critical
amtool config routes test --config.file /path/to/alertmanager.yml dwh=critical

0
投票

处理此问题的一种方法是使用警报抑制,这是 Prometheus Alertmanager 中的一项功能,允许您根据某些条件抑制警报。

然后在Alertmanager配置文件中添加抑制规则,以在特定警报触发时抑制一般警报:

inhibit_rules:
  - source_match:
      severity: 'critical'
  target_match:
      severity: 'critical'
    equal: ['instance']
© www.soinside.com 2019 - 2024. All rights reserved.