alertmanager分组路由route功能

在alertmanager配置文件中编写相关路由

  • job=node_exporter 告警由 sre_system处理 5001端口

  • job=mysqld_exporter 告警由 sre_dba处理 5002端口

  • 所有的告警 由 sre_all处理 5003端口

  • 重新加载alertmanager配置文件

# 写配置文件
cat <<-"EOF" > /opt/app/alertmanager/alertmanager.yml
global:
  resolve_timeout: 30m

route:
  group_by: ['alertname']
  group_wait: 5s
  group_interval: 5s
  repeat_interval: 1h
  receiver: 'sre_all'
  routes:                                       #子路由,父路由的所有属性都会被子路由继承
    - match_re:                                   #此路由在警报标签上执行正则表达式匹配,以捕获与服务列表相关的警报
        job: node_exporter
      receiver: sre_system  #下面receivers有这个
      # continue=true 代表继续向下匹配,不然就break了
      continue: true
    - match_re:
        job: mysqld_exporter
      receiver: sre_dba
      continue: true
      # 默认all路由
    - match_re:
        job: .*
      receiver: sre_all
      continue: true


receivers:   #普罗米修斯触发rule给alertmanager,然后alertmanager再发给谁接收处理
- name: 'sre_system'
  webhook_configs:
  - url: 'http://127.0.0.1:5001/alert'
- name: 'sre_dba'
  webhook_configs:
  - url: 'http://127.0.0.1:5002/alert'
- name: 'sre_all'
  webhook_configs:
  - url: 'http://127.0.0.1:5003/alert'
EOF

# reload
curl -X POST -vvv  localhost:9093/-/reload

准备prometheus 规则文件 

准备rule文件

  • 其中alert_g_1由job=node_exporter触发

  • 其中alert_g_2由job=mysqld_exporter触发

cat <<EOF > /opt/app/prometheus/rule.yml
groups:
- name: alert_g_1
  rules:
  - alert: node_load too high
    expr:  node_memory_Active_bytes{instance="192.168.3.200:9100", job="node_exporter"}>0   #告警条件 promql
    labels:
      severity: critical
      node_name: abc
    annotations:
      summary: 机器太累了

- name: alert_g_2
  rules:
  - alert: mysql_qps too high
    expr: mysql_global_status_queries{instance="192.168.3.200:3306", job="mysql_exporter"} >0    #告警条件 promql
    labels:
      severity: warning
      node_name: abc
    annotations:
      summary: mysql太累了

修改prometheus主配置文件,生效rule和alertmanager 

# 写配置文件
cat <<EOF > /opt/app/prometheus/prometheus.yml

global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - 172.20.70.215:9093

rule_files:
  - /opt/app/prometheus/rule.yml


scrape_configs:


  - job_name: node_exporter   #要监控的exporter都写在这
    honor_timestamps: true
    scrape_interval: 15s
    scrape_timeout: 10s
    #metrics_path: /metrics
    #scheme: http
    static_configs:
    - targets:
      - 172.20.70.205:9100

  - job_name: mysqld_exporter  #要监控的exporter都写在这
    honor_timestamps: true
    scrape_interval: 15s
    scrape_timeout: 10s
    #metrics_path: /metrics
    #scheme: http
    static_configs:

    - targets:
      - 172.20.70.205:9104
EOF

# reload
curl -X POST -vvv  localhost:9090/-/reload
 

 

 

Alertmanager 是一个用于处理和路由 Prometheus 监控警报的工具。它可以根据警报标签将警报路由到不同的接收器,例如电子邮件,Slack,PagerDuty 等。在 Alertmanager 中,路由规则被称为路由树,它定义了在接收器之间如何分配警报。 Alertmanager路由配置是通过 YAML 文件完成的。以下是一个简单的 Alertmanager 路由配置示例: ``` route: group_by: ['alertname'] group_wait: 30s group_interval: 5m repeat_interval: 4h receiver: 'email' receivers: - name: 'email' email_configs: - to: 'admin@example.com' ``` 该配置中的 `route` 部分定义了路由树的设置,包括: - `group_by`:定义警报应该根据哪些标签进行分组。 - `group_wait`:定义 Alertmanager 应该在发送警报之前等待多长时间以便将相同的警报分组到一起。 - `group_interval`:定义 Alertmanager 应该等待多久才能将相同的警报分组到一起。 - `repeat_interval`:定义 Alertmanager 应该在发送警报后多长时间重新发送警报。 - `receiver`:定义默认的接收器名称,如果没有其他路由规则匹配,则会将警报发送到该接收器。 接下来的 `receivers` 部分定义了接收器的详细信息,包括名称和接收器类型。在此示例中,我们使用电子邮件接收器,并将警报发送到 `admin@example.com`。 除了默认路由规则和接收器之外,Alertmanager 还支持更高级的路由配置。例如,您可以使用 `routes` 关键字定义多个路由规则,以便将不同的警报路由到不同的接收器。您还可以使用 `match` 关键字定义更复杂的匹配规则,以便根据标签的值将警报路由到接收器。在路由配置中使用 `continue` 关键字可以允许 Alertmanager 继续匹配其他路由规则,即使已找到匹配的规则。 Alertmanager 路由配置非常灵活,可以根据实际需求进行自定义,以便将监控警报准确地路由到正确的接收器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值