Elasticsearch через ssh на удаленном сервере

Сервис elasticsearch поднят на удаленном сервере, доступ к которому возможен только через ssh. Необходимо получить возможность просмотра состояния elasticsearch локально.

  1. Создаем линковку по порту
    ssh -i ~/.ssh/id_rsa user@servername -L 9200:elastic.service:9200 -N -v

    здесь можно использовать прокинутые заранее через конфиг настройки серверов и в качестве servername указывать уже настроенные заранее названия серверов. (Подробнее тут)

-i - идентификационный файл
имяпользователя@имясервера
-L <local_port>:local_from_remote_server_name:<remote_port>

  • local_port — локальный порт текущей машины,
  • local_from_remote_server_name — имя сервера к которому осуществляется подключение с удаленного сервера (как если бы были авторизованы на удаленном сервере)
  • remote_port — порт по которому идет подключение к целевому серверу
  • -N — без выполнения команд, полезно при использовании только перенаправления портов
  • -v — запуск дебага. В этом случае будем видеть какие команды выполняются
  1. с другого окна запускаем запрос
    curl -XGET "http://localhost:9200"

    ответ

    {
    "name" : "elasticsearch-node1",
    "cluster_name" : "search",
    "cluster_uuid" : "uoDiV4Kpy86Xugai",
    "version" : {
    "number" : "5.6.8",
    "build_hash" : "799bace",
    "build_date" : "2018-02-16T16:46:30.010Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
    },
    "tagline" : "You Know, for Search"
    }

Теперь к проброшенному порту можно подключиться в том числи и через любой gui. Например:

  1. Возможные проблемы
    • занят порт:
      решение:

      fuser 9200/tcp

      в ответе должны получить id процесса, который можно убить и порт должен освободиться.

Источник

Leave a comment

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.