普罗米修斯无法到达节点导出器
prometheus cannot reach node exporter
我正在学习 prometheus 和 node_exporter 并尝试通过 docker 在本地设置它们。
我从这个 https://hub.docker.com/r/prom/node-exporter and this 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']
但是prometheus好像无法达到node_export。我看到来自 node_export 的指标 ->
我看到了来自普罗米修斯的指标 ->
但我无法从 prometheus web-browser 中获取 node_export 指标,来自:
顺便prometheus读取yml文件:
我做错了什么?
UDP: 不错,看来 localhost:9100 不可达
发生这种情况是因为在 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.[=14= 相互访问它们]
我正在学习 prometheus 和 node_exporter 并尝试通过 docker 在本地设置它们。 我从这个 https://hub.docker.com/r/prom/node-exporter and this 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']
但是prometheus好像无法达到node_export。我看到来自 node_export 的指标 ->
我看到了来自普罗米修斯的指标 ->
但我无法从 prometheus web-browser 中获取 node_export 指标,来自:
顺便prometheus读取yml文件:
我做错了什么?
UDP: 不错,看来 localhost:9100 不可达
发生这种情况是因为在 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.[=14= 相互访问它们]