gpt4 book ai didi

docker-compose - 如何使用警报管理器配置普罗米修斯?

转载 作者:行者123 更新时间:2023-12-04 06:46:55 25 4
gpt4 key购买 nike

docker-compose.yml:
这是运行 prometheus、node-exporter 和 alert-manager 服务的 docker-compose。所有服务都运行良好。甚至prometheus的目标菜单中的健康状况也显示正常。

version: '2'

services:

prometheus:
image: prom/prometheus
privileged: true
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- ./alertmanger/alert.rules:/alert.rules
command:
- '--config.file=/etc/prometheus/prometheus.yml'
ports:
- '9090:9090'

node-exporter:
image: prom/node-exporter
ports:
- '9100:9100'

alertmanager:
image: prom/alertmanager
privileged: true
volumes:
- ./alertmanager/alertmanager.yml:/alertmanager.yml
command:
- '--config.file=/alertmanager.yml'
ports:
- '9093:9093'

prometheus.yml

这是带有目标和警报目标集的 prometheus 配置文件。警报管理器目标网址工作正常。
global:
scrape_interval: 5s
external_labels:
monitor: 'my-monitor'

# this is where I have simple alert rules
rule_files:
- ./alertmanager/alert.rules

scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']

- job_name: 'node-exporter'
static_configs:
- targets: ['node-exporter:9100']

alerting:
alertmanagers:
- static_configs:
- targets: ['some-ip:9093']

警报规则:
只是一个简单的警报规则,用于在服务关闭时显示警报
ALERT service_down
IF up == 0

alertmanager.yml

这是为了在发生警报时在 slack 上发送消息。
global:
slack_api_url: 'https://api.slack.com/apps/A90S3Q753'

route:
receiver: 'slack'

receivers:
- name: 'slack'
slack_configs:
- send_resolved: true
username: 'tara gurung'
channel: '#general'
api_url: 'https://hooks.slack.com/services/T52GRFN3F/B90NMV1U2/QKj1pZu3ZVY0QONyI5sfsdf'

问题:
所有容器都工作正常我无法弄清楚确切的问题。我真的错过了什么。检查 prometheus 中的警报显示。

警报
未定义警报规则


enter image description here

最佳答案

您的 ./alertmanager/alert.rules文件未包含在您的 docker 配置中,因此它在容器中不可用。您需要将其添加到 prometheus 服务中:

prometheus:
image: prom/prometheus
privileged: true
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- ./alertmanager/alert.rules:/alertmanager/alert.rules
command:
- '--config.file=/etc/prometheus/prometheus.yml'

ports:
- '9090:9090'

并且可能在 prometheus.yml 里面给出一个绝对路径:
rule_files:
- "/alertmanager/alert.rules"

您还需要确保警报规则有效。请查看 prometheus docs有关详细信息和示例。您 alert.rules文件应如下所示:
groups:
- name: example
rules:

# Alert for any instance that is unreachable for >5 minutes.
- alert: InstanceDown
expr: up == 0
for: 5m

一旦您有多个文件,最好将整个目录添加为一个卷而不是单个文件。

关于docker-compose - 如何使用警报管理器配置普罗米修斯?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48556768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com