Назад | Перейти на главную страницу

Настроить Nginx, Kibana, Elasticsearch

Моя установка

Nginx + Kibana - тот же ящик, другой домен, поддомен (nginx - example.com, kibana - kibana.example.com)

Elasticsearch - 192.168.100.31

Я использовал конфигурацию, определенную ниже. Заменен 127.0.0.1 на Elasticsearch ip 192.168.100.31

https://github.com/elasticsearch/kibana/blob/master/sample/nginx.conf

Эта установка работает в локальной сети. Но не работает при внешнем подключении с сообщением об ошибке в браузере "Error Could not contact Elasticsearch at http://192.168.100.31:9200. Please ensure that Elasticsearch is reachable from your system.".

Kibana config.js указывает на ip и порт 9200 -

  elasticsearch: "http://192.168.100.31:9200",

Примечание: изменение этого порта для соответствия порту, определенному в nginx config 8433 делает это stop функционирует.

nginx config

server {
    listen          8443 ssl;
    server_name     kibana.example.com;

    access_log  /var/logs/nginx/kibana.access.log main;
    error_log   /var/logs/nginx/kibana.error.log;

    auth_basic "Authorized users";
    auth_basic_user_file /file/location/kibana.htpasswd;

    location / {
        root  /usr/local/kibana-3.1.0;
        index  index.html  index.htm;            
    }       

    location ~ ^/_aliases$ {
        proxy_pass http://192.168.100.31:9200;
        proxy_read_timeout 90;
    }
    location ~ ^/.*/_aliases$ {
        proxy_pass http://192.168.100.31:9200;
        proxy_read_timeout 90;
    }
    location ~ ^/_nodes$ {
        proxy_pass http://192.168.100.31:9200;
        proxy_read_timeout 90;
    }
    location ~ ^/.*/_search$ {
        proxy_pass http://192.168.100.31:9200;
        proxy_read_timeout 90;
    }
    location ~ ^/.*/_mapping {
        proxy_pass http://192.168.100.31:9200;
        proxy_read_timeout 90;
    }

    # Password protected end points
    location ~ ^/kibana-int/dashboard/.*$ {
        proxy_pass http://192.168.100.31:9200;
        proxy_read_timeout 90;
        limit_except GET {
          proxy_pass http://192.168.100.31:9200;
          # auth_basic "Restricted";
          # auth_basic_user_file /file/location/kibana.htpasswd;
        }
    }
    location ~ ^/kibana-int/temp.*$ {
        proxy_pass http://192.168.100.31:9200;
        proxy_read_timeout 90;
        limit_except GET {
            proxy_pass http://192.168.100.31:9200;
            # auth_basic "Restricted";
            # auth_basic_user_file /file/location/kibana.htpasswd;
        }
    }
}

Чувствует, что между nginx и elasticsearch чтобы локальный IP-адрес не отображался в браузере. Может кто-нибудь показать, как это настроить.

Нашел решение, нужно было установить PROXY в nginx и, конечно же, установить соответствие FQDN в configs.js Kibana