【发布时间】:2020-11-13 09:50:20
【问题描述】:
我在他们的页面上使用官方guide 安装了 prometheus 和 docker。 现在我也有node_exporter 在主机上工作。然而 prometheus 似乎并没有抓取它的指标。
我使用以下方式运行普罗米修斯:
sudo docker run -d -p 9090:9090 -v /home/main/prometheus/config.yml:/etc/prometheus/prometheus.yml prom/prometheus
- job_name: node
static_configs:
- targets: ['localhost:9100']
curl -i localhost:9100
HTTP/1.1 200 OK
Content-Length: 150
Content-Type: text/html; charset=utf-8
<html>
<head><title>Node Exporter</title></head>
<body>
<h1>Node Exporter</h1>
<p><a href="/metrics">Metrics</a></p>
</body>
</html>
更新
显然,在 docker 上运行时使用“-net=host”标志修复了这个问题:
sudo docker run --net=host -d -p 9090:9090 -v /home/main/prometheus/config.yml:/etc/prometheus/prometheus.yml prom/prometheus
他们为什么不说这件事?没有这个标志,Prometheus 无法访问其容器外的任何内容?
【问题讨论】:
-
你能验证一下 9100 端口有什么东西吗? netstat 甚至 curl -i localhost:9100
-
这对我有帮助,谢谢。鉴于文档有一台机器在主机网络上运行,而不是在prometheus.io/docs/guides/node-exporter 中的 Docker 网络上,当提到如何使用 Docker 启动时,网络似乎很有用:)
标签: docker prometheus