TiDB-OPS

AlertManager 告警组件

Prometheus 与 AlertManager

AlertManager config template

global:
  # Slack API 信息
  slack_api_url: 'https://hooks.slack.com/services/T04AQPYPM/B2EJ1BSBG/12313424342342344'

  # Email SMTP 服务器信息
  smtp_smarthost: 'smtp.ym.126.com:25'
  smtp_from: 'jump@tidb.cc'
  smtp_auth_username: 'jump@tidb.cc'
  smtp_auth_password: 'password'
  smtp_auth_secret: null
  smtp_auth_identity: ""
  smtp_require_tls: true  # 是否开启 TLS

route:                          # 路由
  receiver: "alert-default"     # 如果没有接收器规则匹配到这条告警,默认发送到 `alert-default`,该 alert-default 必须存在,否则报错退出
  group_by: ['env','instance','type','group','job']   # 告警压缩规则
  group_wait:      30s
  group_interval:  3m
  repeat_interval: 3m
  routes:                      # 子路由
  - match:                     # 规则匹配
    env: test-cluster          # 集群环境名字,路由接收到后分配给接收器,接收器读取规则后发送至 slack_config
    level: waring              # 匹配 alert.rule 中 level: waring labels 属性,匹配成功后发送到相应接收器
  receiver: alert-slack        # receiver 关键词,全局唯一,不能重复
  continue: true               # 默认告警匹配成功第一个 receivers 会退出匹配,开启 continue 参数后会继续匹配 receivers 列表,直到再无 receivers 时或者下一个 receivers 中 continue fasle 的时候才会退出 (continue default false)
  - match_re:                  # 支持正则匹配
    env: test-cluster          # 客户集群环境名字,路由接收到后分配给接收器,接收器读取规则后发送至 slack_config
  receiver: alert-email-global # 指定接收器唯一名字
  continue: true
  - match_re:                  # 支持正则匹配
    level: emergency           # 匹配 alert.rule 中 level: emergency labels 属性,匹配成功后发送到相应接收器
    env: test-cluster          # 客户集群环境名字,路由接收到后分配给接收器,接收器读取规则后发送至 slack_config
    severity: ^([a-zA-Z0-9]*)$ # 正则匹配
  receiver: alert-webhook      # 指定接收器唯一名字
  continue: true


receivers:                        # 接收器根

# Slack template

- name: 'alert-default'           # 接收器唯一名字,如有重复,告警停用。与 `route` 关联使用。
  slack_configs:
  - channel: '#alerts-for-test'   # 指定发送至 slack channel
    username: 'office-alert'        # 指定发送者 username
    icon_emoji: ':pingcap:'         # 指定发送者头像, 可在 slack 表情包获取 emoji 信息
    title:   ''
    text:    'in :         http://office.tidb.cc/alerts'

- name: 'alert-slack-user'                  # 接收器唯一名字,如有重复,告警停用。与 `route` 关联使用。
  slack_configs:
  - api_url: 'https://hooks.slack.com/services/T04AQPYPM/B2EJ1BSBG/zczczczczcdsadafsvdvsf'
    channel: '@user'                          # 指定发送至 slack 用户
    username: '-alert'   # 指定发送者 username (昵称) , 此处格式为 ` 集群名称 - alert`
    icon_emoji: '::'     # 指定发送者头像, 此处格式为 `: 集群名称:`, 提前在 slack 定义该图片
    title:   ''
    text:    'in :         http://office.tidb.cc/alerts'

# Email template

- name: 'alert-email-global'
  email_configs:
  - send_resolved: true         # 告警回执,监控下由 Alert 返回为 OK 状态时,会发送一条 OK 状态的回执
    to: 'alert-global@tidb.cc'  # 接收邮箱地址
    from: 'jump@tidb.cc'        # 发送邮箱地址

- name: alert-email-user
  email_configs:
  - send_resolved: false
    to: alert-user@tidb.cc
    from: jump@tidb.cc
    smarthost: smtp.ym.126.com:25   # 单独设置 smtp 信息
    auth_username: jump@tidb.cc
    auth_password: <secret>
    auth_secret: null
    auth_identity: ""
    headers:
      From: jump@tidb.cc
      Subject: ''
      To: alert-user@tidb.cc
    html: ''
    require_tls: true         # 默认开启 TLS 协议

# webhook-pulgin

- name: 'webhook-pulgin'
  webhook_configs:
  - send_resolved: true
    url: 'http://172.16.10.65:28082/v1/alertmanager'  # 该 URL 是一个小工具,用来解析 alertmanager json 告警数据,然后发往目的地

AlertManager 告警管理

AlertManager 组件运维


AlertManager FAQ

AlertManager 组件部署