Отказано в соединении с экспортером Nginx vts - PullRequest
0 голосов
/ 01 марта 2019

У меня есть prometheus, nginx-vts, php и nginx-vts-exporter, все в отдельных контейнерах. Я пытаюсь получить метрики для prometheus от экспортера..0.1: 9913: соединение: соединение отклонено

при запуске файла docker-compose я получаю эту ошибку
2019/03/01 17:42:55 сбой fetchHTTP Получить http://localhost/status/format/json:наберите tcp 127.0.0.1:80: getsockopt: соединение отклонено

это мой файл 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

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

это мой прометей.имл

  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']

1 Ответ

0 голосов
/ 01 марта 2019

В вашем файле prometheus.yml вы должны использовать nginx-vts-exporter:9913 вместо 127.0.0.1:9913 в качестве цели для экспортера nginx. То же самое для цели prometheus.Не используйте 127.0.0.1, а имя контейнера.

Кроме того, похоже, что вам нужно настроить экспортер nginx для очистки nginx:80, а не localhost для получения информации о состоянии.Вы можете сделать это, установив переменную окружения NGINX_HOST в http://nging/status/format/json для контейнера nginx-vts-exporter в файле docker-compose, примерно так:

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