Docker 普罗米修斯内部码头工人不刮节点
我在普罗米修斯的网页上安装了docker,并在他们的网页上使用了官方软件。 现在我也在主机上工作。然而,普罗米修斯似乎并没有达到它的标准 我运行普罗米修斯时使用:Docker 普罗米修斯内部码头工人不刮节点,docker,prometheus,Docker,Prometheus,我在普罗米修斯的网页上安装了docker,并在他们的网页上使用了官方软件。 现在我也在主机上工作。然而,普罗米修斯似乎并没有达到它的标准 我运行普罗米修斯时使用: 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: [
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.1200ok
内容长度:150
内容类型:text/html;字符集=utf-8
节点导出器
节点导出器
更新
显然,在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在docker上运行,这意味着节点导出器位于容器外部
您应该尝试使用容器名称、IP或主机.docker.internal或类似工具来达到目标。在文档中,示例假定Prometheus和节点导出器在同一主机上运行。在您的例子中,Prometheus在docker上运行,这意味着节点导出器位于容器外部
您应该尝试使用容器名称、IP或
host.docker.internal
或类似工具到达您的目标。您可以验证端口9100是否存在问题吗?netstat甚至curl-i localhost:9100这对我很有帮助,谢谢。考虑到docs有一台运行在主机网络上的机器,而不是Docker网络,当提到如何与Docker一起加速时,网络似乎是有用的,提到:)你能验证端口9100上有什么东西吗?netstat甚至curl-i localhost:9100这对我很有帮助,谢谢。考虑到docs有一台运行在主机网络上的机器,而不是Docker网络,当提到如何使用Docker加速时,网络似乎是有用的,提到:)
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>