我正在尝试让Prometheus通过警报管理器发送警报,这两者都在Docker容器中。我已经成功地通知了Prometheus,但是没有将这些警报传递给同一台主机上的警报管理器。
这两个容器都可以从指定的卷中正确安装,您可以使用WebUI来检查这些卷。然而,当我触发一个警报,它显示为开火。警报管理器中没有出现警报。
下面是我用来启动这两个容器的docker命令
docker run -d -p 9090:9090 --name=prom_server -v /prometheus-data/prometheus.yml:/etc/prometheus/prometheus.yml -v /prometheus-data/alert.rules:/etc/prometheus/alert.rules prom/prometheus -config.file=/etc/prometheus/prometheus.yml -alertmanager.url=http://10.1.1.10:9093
以下是警报管理器停靠实例
docker run -d -p 9093:9093 --name=prom_alertmanager -v /prometheus-data/alertmanager.conf:/alertmanager.conf prom/alertmanager -config.file=/alertmanager.conf
当我检查这个时,我可以看到正在传递的参数。
[root@myserver]# docker inspect prom_server
...
"Cmd": [
"-config.file=/etc/prometheus/prometheus.yml",
"-alertmanager.url=http://10.196.106.41:9093"
],
...我已经检查过了,在Prometheus服务器配置中看不到其他任何您指定了警报管理器URL的地方。然而,没有警报从一个传递到另一个。我没有表在跑。我是不是漏掉了什么?
发布于 2016-09-08 15:09:54
我设法解决了这个问题。我对网络的想法都错了。我应该使用-link参数将两个容器连接在一起,而不是试图通过主机网络进行路由。
docker run -d -p 9090:9090 --name=prom_server --link prom_alertmanager -v /prometheus-data/prometheus.yml:/etc/prometheus/prometheus.yml -v /prometheus-data/alert.rules:/etc/prometheus/alert.rules prom/prometheus -alertmanager.url=http://promalertmanager:9093 -config.file=/etc/prometheus/prometheus.yml
https://serverfault.com/questions/801317
复制相似问题