【问题标题】:Nginx vts exporter connection refusedNginx vts 导出器连接被拒绝
【发布时间】:2019-03-01 17:25:13
【问题描述】:

我有 prometheus 、 nginx-vts 、 php 和 nginx-vts-exporter 都在分开的容器中:9913: 连接:连接被拒绝

当我启动 docker-compose 文件时,我得到这个错误
2019/03/01 17:42:55 fetchHTTP failed Get http://localhost/status/format/json: dial tcp 127.0.0.1:80: getsockopt: connection denied

这是我的 nginx.con 文件

server
{
listen   80;
server_name localhost.x.com;

root /var/www/html/x.com;
index index.php index.html index.htm;




location /
{
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

location ~ \.php$ {
    fastcgi_pass   test-php:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}



    location /status {
        vhost_traffic_status_display;
        vhost_traffic_status_bypass_stats on;
        vhost_traffic_status_display_format html;
        allow all;


    }


}

这是我的 docker-compose 文件

version: '3'
services:
  php:
    container_name: php
    image: php:fpm
    volumes:
      - ./code:/var/www/html/x


  nginx:
    container_name: Nginx
    image: arquivei/nginx-vts:latest
    volumes:
      - ./code:/var/www/html/x.com
      - ./site.conf:/etc/nginx/conf.d/x.conf:ro
    ports:
      - 80:80
    links: 
     - nginx-vts-exporter

  prom:
    container_name: Prometheus
    image: prom/prometheus:latest
    volumes: 
     - ./monitor/prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
     - 9090:9090




  nginx-vts-exporter:
    container_name:  Exporter
    image: sophos/nginx-vts-exporter:latest
    ports:        
     - 9913:9913

这是我的 prometheus.yml

  global:
    scrape_interval: 15s
    evaluation_interval: 15s
scrape_configs:
 - job_name: nginx
   static_configs:
    - targets: ['127.0.0.1:9913']

 - job_name: prometheus
   static_configs:
    - targets: ['127.0.0.1:9090']

【问题讨论】:

  • 你的 docker-compose 文件是什么样的?
  • 添加了 docker compose 文件
  • 请同时发布您的 prometheus.yml 文件。

标签: docker nginx docker-compose prometheus


【解决方案1】:

在您的 prometheus.yml 文件中,您应该使用 nginx-vts-exporter:9913 而不是 127.0.0.1:9913 作为 nginx 导出器的目标。对于 prometheus 目标也是如此。不要使用 127.0.0.1 而是容器的名称。

此外,您似乎需要将 nginx 导出器配置为抓取 nginx:80 而不是 localhost 来检索状态信息。您可以通过在 docker-compose 文件中为 nginx-vts-exporter 容器设置环境变量 NGINX_HOST 到 http://nging/status/format/json 来做到这一点,如下所示:

  nginx-vts-exporter:
      container_name:  Exporter
      image: sophos/nginx-vts-exporter:latest
      environment:
        - NGINX_HOST="http://nging/status/format/json"       
      ports:        
       - 9913:9913

【讨论】:

  • 已经有 - 目标:prometheus.yml 中的 ['127.0.0.1:9090'] .... 我该如何配置导出器?这是一个没有任何配置的docker镜像
  • 添加了如何配置导出器的信息
  • 以及如何修复目标。
  • 在 docker 文件中添加了这个命令: - 'ti --rm --env NGINX_HOST="nginx:80/status/format/json" ' 仍然没有
  • btw prometheus 问题已通过添加 nginx-vts-exporter:9913 得到解决,非常感谢,但导出器仍然无法正常工作
猜你喜欢
  • 2013-03-02
  • 2020-09-16
  • 2021-01-16
  • 1970-01-01
  • 2021-12-16
  • 2021-06-27
  • 1970-01-01
  • 2020-04-24
  • 2018-12-11
相关资源
最近更新 更多