全部产品

对接 Alertmanager 组件

更新时间:2019-07-05 10:11:14

部署Alertmanager

您的Alertmanager可以运行在Kubernetes集群内,比如运行以下kubectl命令可以在Kubernetes容器集群内拉起一个Alertmanager:

  1. kubectl run alertmanager-main --labels="run=alertmanager-example" --image=quay.io/prometheus/alertmanager --port=9093
  2. deployment.apps/alertmanager-main created

将Alertmanager部署对外暴露为一个service:

  1. kubectl expose deployment alertmanager-main --type=LoadBalancer --name=alertmanager-service
  2. service/alertmanager-service exposed

找到该Service对应的External IP:

  1. kubectl get services alertmanager-service
  2. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  3. alertmanager-service LoadBalancer 172.21.11.153 47.111.41.86 9093:32700/TCP 25s

按照上述方式部署后,访问Alertmanager对外暴露的Web UI (Alertmanager默认启动在9093端口):

1

配置报警规则

首先给Prometheus配置告警规则。作为示例,这里我们配置一个简单的关于目标抓取延迟超过规定阈值(对应指标scrape_duration_seconds)的告警规则,首先在阿里云实例管理“参数配置”页面中,创建一个告警配置文件alert1.yml(文件类型为rule):

2

在Prometheus Server的主配置文件prometheus.yml中,加入告警定义文件的信息(规则文件名与上一步创建的文件名称):

  1. rule_files:
  2. - "alert1.yml"

进入“Prometheus控制台”,点击顶部菜单的“告警”按钮,可以看到报警信息设置:

3

点击“状态”下拉菜单的“规则”分页,可以看到报警规则:

4

连接Alertmanager

在Prometheus Server的主配置文件prometheus.yml中,指定Alertmanager的地址:

  1. alerting:
  2. alertmanagers:
  3. - static_configs:
  4. - targets: ["<IP Address>:9093"]

到Alertmanager Web UI中,确认Alertmanager收到了来自Prometheus Server的报警:

5