我正在学习prometheus和node_exporter,并尝试通过docker在本地设置它们。 我从这个https://hub.docker.com/r/prom/node-exporter和这个https://hub.docker.com/r/prom/prometheus下载了docker镜像,然后使用以下命令运行它们:
docker run -d -p 9100:9100 prom/node-exporter
docker run \
-d \
-p 9090:9090 \
-v /Users/person/sandbox/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
在运行普罗米修斯之前,我添加了yml文件:
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
但是看来普罗米修斯无法到达node_export。我从node_export中看到指标->
但是我无法从以下网站从prometheus Web浏览器中获取node_export指标:
我怎么了?
答案 0 :(得分:1)
之所以发生这种情况,是因为在Prometheus容器中,localhost
被解析为容器的环回网络接口。为了减轻这种情况,请在启动这些容器时通过显式指定--network=host
来使用主机网络。使用主机网络时,Docker不会分配容器自己的网络名称空间。而是他们将从其主机共享它。
或者,更好的方法是创建覆盖网络。
docker network create prom
docker network connect prom <prometheus_container_name>
docker network connect prom <node_exporter_container_name>
在创建容器并将其连接到覆盖网络之后,应该可以通过其Docker名称相互访问它们。 1 。