【问题标题】:prometheus inside docker not scraping node_exporterdocker内的prometheus没有刮取node_exporter
【发布时间】: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


【解决方案1】:

在文档中,示例假设 Prometheus 和节点导出器在同一主机上运行。在您的情况下,Prometheus 在 docker 上运行,这意味着节点导出器位于容器外部。

您应该尝试使用容器名称、IP 或 host.docker.internal 或类似名称来访问您的目标。

【讨论】:

    猜你喜欢
    • 2021-06-14
    • 1970-01-01
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2023-01-31
    • 1970-01-01
    相关资源
    最近更新 更多