对接 Alertmanager 组件
部署Alertmanager
您的Alertmanager可以运行在Kubernetes集群内,比如运行以下kubectl命令可以在Kubernetes容器集群内拉起一个Alertmanager:
kubectl run alertmanager-main --labels="run=alertmanager-example" --image=quay.io/prometheus/alertmanager --port=9093
deployment.apps/alertmanager-main created
将Alertmanager部署对外暴露为一个service:
kubectl expose deployment alertmanager-main --type=LoadBalancer --name=alertmanager-service
service/alertmanager-service exposed
找到该Service对应的External IP:
kubectl get services alertmanager-service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
alertmanager-service LoadBalancer 172.21.11.153 47.111.41.86 9093:32700/TCP 25s
按照上述方式部署后,访问Alertmanager对外暴露的Web UI (Alertmanager默认启动在9093端口):
配置报警规则
首先给Prometheus配置告警规则。作为示例,这里我们配置一个简单的关于目标抓取延迟超过规定阈值(对应指标scrape_duration_seconds)的告警规则,首先在阿里云实例管理“参数配置”页面中,创建一个告警配置文件alert1.yml(文件类型为rule):
在Prometheus Server的主配置文件prometheus.yml中,加入告警定义文件的信息(规则文件名与上一步创建的文件名称):
rule_files:
- "alert1.yml"
进入“Prometheus控制台”,点击顶部菜单的“告警”按钮,可以看到报警信息设置:
点击“状态”下拉菜单的“规则”分页,可以看到报警规则:
连接Alertmanager
在Prometheus Server的主配置文件prometheus.yml中,指定Alertmanager的地址:
alerting:
alertmanagers:
- static_configs:
- targets: ["<IP Address>:9093"]
到Alertmanager Web UI中,确认Alertmanager收到了来自Prometheus Server的报警:
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论