Docker compose 使用prometheus和alertmanager时,警报消息不会在空闲时间显示
我正在尝试使用警报管理器通知普罗米修斯发现的警报 这是警报.rules文件,工作正常 它正在成功地显示一个实例。 但是,我的alertmanager.yml中有什么问题,它没有向slack发送通知。我还成功地设置了slack webhook,甚至还测试了该钩子在使用slack提供的服务创建钩子时是否工作正常 alertmanager.yml 解决上述错误: 为了解决上述路由问题,我在全新的实例中运行了alertmanager,并且克服了这个错误 转到错误消息中的API链接,我可以看到这一点Docker compose 使用prometheus和alertmanager时,警报消息不会在空闲时间显示,docker-compose,alert,monitoring,prometheus,Docker Compose,Alert,Monitoring,Prometheus,我正在尝试使用警报管理器通知普罗米修斯发现的警报 这是警报.rules文件,工作正常 它正在成功地显示一个实例。 但是,我的alertmanager.yml中有什么问题,它没有向slack发送通知。我还成功地设置了slack webhook,甚至还测试了该钩子在使用slack提供的服务创建钩子时是否工作正常 alertmanager.yml 解决上述错误: 为了解决上述路由问题,我在全新的实例中运行了alertmanager,并且克服了这个错误 转到错误消息中的API链接,我可以看到这一点 {
{"status":"success","data":[]}
这是一个警觉的管理者,看起来工作得很好。
这是prometheus.yml配置文件
这是我的docker compose.yml
alertmanager状态链接不显示从docker composer中的卷传递的配置。它显示默认配置
正如一些人已经指出的,alertmanager配置只包括如何发送警报,而不包括如何创建警报。那是普罗米修斯的工作。 看看这个回购协议,它很简单地将普罗米修斯与alertmanager结合起来
上一个屏幕截图显示alertmanager上没有警报,因此这不是slack的问题。普罗米修斯上的
/status
端点是否显示alertmanager的条目?您不需要在alertmanager配置中复制警报定义。AM不评估警报,它只是转发警报。此外,您不应该在这样的公共场所包含任何松弛的Webhook URL。@是的,它显示为endpointsBTW,我应该在哪里加载alertmanager.yml配置文件。我在docker中将它添加为命令--config.file=/alertmanager/alertmanager.yml'
-compose@tex不过有一点值得注意,警报不会进入alertmanager配置。这甚至可以解析吗?我建议您在本地运行prometheus和alertmanager以确保配置正确,然后将其移动到docker中。
groups:
- name: Instances
rules:
# Alert for any instance that is unreachable for >5 minutes.
- alert: InstanceDown
expr: up == 0
for: 5m
labels:
severity: page
# Prometheus templates apply here in the annotation and label fields of the alert.
annotations:
description: '{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes.'
summary: 'Instance {{ $labels.instance }} down'
[tgurung@ip131 prometheus_graphana_myversion]$ cat alertmanager/alertmanager.yml
route:
receiver: 'slack-notifications'
#group_by: [alertname, datacenter, app]
receivers:
- name: 'slack-notifications'
slack_configs:
- api_url: https://hooks.slack.com/services/T52GRFN3F/B93KTCUHH/JC
channel: #general
send_resolved: true
# Alertmanager templates apply here.
text: "<!channel> \nsummary: {{ .CommonAnnotations.summary }}\ndescription: {{ .CommonAnnotations.description }}"
prometheus_1 | level=error ts=2018-02-06T09:36:35.580565429Z caller=notifier.go:454 component=notifier alertmanager=http://x.x.x.x:9093/api/v1/alerts count=0 msg="Error sending alert" err="Post http://x.X.x.x:9093/api/v1/alerts: dial tcp x.x.x.x:9093: getsockopt: no route to host"
{"status":"success","data":[]}
alertmanager_1 | level=info ts=2018-02-06T09:36:37.66654544Z caller=main.go:141 msg="Starting Alertmanager" version="(version=0.13.0, branch=HEAD, revision=fb713f6d8239b57c646cae30f78e8b4b8861a1aa)"
alertmanager_1 | level=info ts=2018-02-06T09:36:37.66661402Z caller=main.go:142 build_context="(go=go1.9.2, user=root@d83981af1d3d, date=20180112-10:32:46)"
alertmanager_1 | level=info ts=2018-02-06T09:36:37.668103448Z caller=main.go:279 msg="Loading configuration file" file=/alertmanager/alertmanager.yml
alertmanager_1 | level=info ts=2018-02-06T09:36:37.673288146Z caller=main.go:354 msg=Listening address=:9093
global:
scrape_interval: 5s
external_labels:
monitor: 'my-monitor'
#alerting rules file
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: ["54.36.X.X:9093"] #this is the alertmanager service url
version: '2'
volumes:
grafana_data: {}
services:
prometheus:
image: prom/prometheus
privileged: true
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- ./alertmanager/alert.rules:/alertmanager/alert.rules
- ./alertmanager/alertmanager.yml:/alertmanager/alertmanager.yml
command:
- '--config.file=/etc/prometheus/prometheus.yml'
ports:
- '9090:9090'
links:
- "alertmanager"
node-exporter:
image: prom/node-exporter
ports:
- '9100:9100'
alertmanager:
image: prom/alertmanager
privileged: true
volumes:
- ./alertmanager/alertmanager.yml:/alertmanager/alertmanager.yml
command:
- '--config.file=/alertmanager/alertmanager.yml'
ports:
- '9093:9093'