prometheus 无法从 localhost 访问指标

Posted

技术标签:

【中文标题】prometheus 无法从 localhost 访问指标【英文标题】:prometheus is not able to access metrics from localhost 【发布时间】:2020-06-25 13:34:27 【问题描述】:

我一直在尝试配置 prometheus 以在 grafana 中为我的 nodejs 应用程序显示指标。对于指标,我使用的是 prom-client。但是,在本地主机上,我总是收到以下错误:

Get http://localhost:5000/metrics: dial tcp 127.0.0.1:5000: connect: connection refused

此外,如果我使用本地隧道服务,例如 ngrok,它将能够读取指标。我错过了什么?我需要在某处添加一些特殊配置吗?

这是我的 prometheus.yml 文件:

global:
    scrape_interval: 5s
    external_labels:
        monitor: 'my-monitor'
scrape_configs:
    - job_name: 'prometheus'
      static_configs:
               - targets: ['localhost:9090']
    - job_name: 'my-app'
      static_configs:
               - targets: ['localhost:5000']

我正在使用 docker-compose 运行默认的 prometheus 映像,对于 grafana 也是如此。

【问题讨论】:

你确定你的应用在 localhost:5000 上监听吗?尝试使用 0.0.0.0:5000。 @radar 相同的输出 你能发布你完整的 docker-compose 文件吗?应用程序是否在它自己的容器中运行?还是在主机上? 【参考方案1】:

因为您使用的是 docker-compose,因此 localhost127.0.0.1 将无法在 docker 容器中工作。

你可以用你的机器IP替换localhost或者像你一样使用ngrok,docker可以resolve 它到你的 IP。

感谢阅读:D

【讨论】:

感谢您的回答。我以前见过很多与此相关的问题 谢谢。为此承受了很大的痛苦。终于成功了。 是的,我从./prometheus --web.listen-address=192.168.0.109:9090开始

以上是关于prometheus 无法从 localhost 访问指标的主要内容,如果未能解决你的问题,请参考以下文章

Prometheus无法获取Windows的CPU数据解决方法

Prometheus(在 Docker 容器中)无法在主机上抓取目标

即使 prometheus 源显示变量,也无法在 grafana 中获取数据

无法从 prometheus-adapter 检索自定义指标

Prometheus 无法从自定义 Rest Endpoint 读取指标

prometheus监控nginx