我有 prometheus , nginx-vts , php 和 nginx-vts-exporter 都在单独的容器中,我正试图从导出器获取 prometheus 指标,它一直告诉我获取http://127.0.0.1:9913/metrics:拨号 tcp 127.0.0.1:9913:连接:连接被拒绝
这是我的 prometheus.yml
全球的:
scrape_interval: 15秒
评估间隔:15秒
scrape_configs:
作业名称:nginx
静态配置:
- 目标:['127.0.0.1:9913']
这是我运行撰写文件时导出器的错误
fetchHTTP 失败 获取http://localhost/status/format/json:net/http:等待连接时请求被取消(等待标头时超出 Client.Timeout)
答案1
--net=host
我遇到了同样的错误,对我来说,解决方案是在运行 prometheus 的 docker(不是 push-gateway)时添加此标志。然后一切都顺利了 :)
所以它看起来像这样:
docker run
-p 9090:9090
--net=host
prom/prometheus
为了更好的衡量,这就是我所抓取的内容(Prometheus 配置):
-job_name:prometheus-local-discovery
honor_timestamps:true
scrape_interval:30s
scrape_timeout:29s
metrics_path:/metrics
scheme:http
honor_labels:true
static_configs:
-targets:
-localhost:9091
(请注意,.yml 配置文件是“制表符敏感的”,我无法在这里更好地格式化它。)
答案2
当我们使用 Node 导出器或任何其他指标收集容器运行 Prometheus 时,我们必须将其添加到 Prometheus 配置文件中。
这里,在定义“scrape_configs”下的“targets”时,需要提及运行节点导出器的主机的 IP 地址。
对 prometheus 使用“['localhost:9090']”,对节点导出器或任何其他指标收集容器使用“['host_IP:9100']”。