我“继承”了运行多个 docker 容器的服务器的旧代码。Grafana 和 Prometheus 用于监控统计数据,以及节点导出器。不幸的是,节点导出器容器在 Prometheus 中显示为关闭。错误消息是获取“http://IP:9101/metrics”:超出上下文截止期限
node-exporter 容器是唯一具有 network_mode 主机的容器,其余容器位于用户定义的桥接网络中。当我尝试使用从主机 curl 指标端点时curl localhost:9091/metrics
,它可以工作。在 prometheus.yml 中,节点的 scrape_config 定义如下:
- job_name: node
scrape_interval: 30s
static_configs:
- targets: ['HOST_NETWORK_IP:9101']
我必须让 node_exporter 和 prometheus 之间建立连接,我觉得解决方案很可能很简单,但我无法弄清楚,因为我对 docker 网络没有太多经验。任何帮助都将不胜感激!
澄清:HOST_NETWORK_IP 是 Open Stack 实例的 IP。但是,通常情况下,查询是通过 traefik 路由的。我不太清楚导出器在监听什么,但它应该是默认的。docker-compose 中对导出器监听的唯一更改是-web.listen-address=:9101
。我没有将其设置为使用主机网络运行,因此我不能 100% 确定其背后的原因,但是从我的研究来看,这对于从主机系统获取指标是必要的。