我正在使用 Prometheus Alertmanager 监控数十台主机以及这些主机上的数百个容器。当任何容器出现故障时我需要收到通知。我从文档中了解到可以为每个容器配置规则。然而,考虑到容器数量巨大,这种方法似乎不切实际。
有人可以指导我如何有效地配置这样的规则吗?任何帮助将不胜感激。谢谢。
我尝试按照 Alertmanager 文档中的建议为每个容器设置单独的规则。 然而,考虑到容器数量巨大,这种方法被证明效率极低且难以管理。
第一步是在 prometheus.yml 中定义警报规则。
将此container.rules添加到主配置prometheus中:
rule_files:
- 'container.rules'
然后用以下内容填充container.rules:
sudo nano /etc/prometheus/container.rules
groups:
- name: cadvisor_alerts
rules:
- alert: ContainerDown
expr: container_last_seen{job="cadvisor"} < time() - 300
for: 5m
labels:
severity: critical
annotations:
summary: "Container down on {{ $labels.instance }}"
description: "Container {{ $labels.container_name }} on {{ $labels.instance }} has not been seen for more than 5 minutes."
此查询检查容器最后一次出现是否超过 5 分钟(300 秒)前,表明它可能已关闭。
现在重新启动普罗米修斯服务:
sudo systemctl restart prometheus
您可以在 { http 或 https }://{ prometheus-url }:9090/alerts 中查看警报