Скажите пожалуйста, как правильно разместить на одном хосте два Elasticsearch? Как выпустить серты для каждого, с учетом того, что серты выпускаются на ip или на dns?
Или два Elasticsearch могут работать с одним сертом?
Как разнести по портам? Например - 9200,9201 - 9300,9301?
Эластик - это распределенная система, то есть на одном хост можно установить (инсталлировать) два или более нод.
Один нод это один эластик инстанс. Более того, можно установить два и более нодов на другом хосте или хостах.
Два или более нод на одном хосте или на нескольких будут коммуникировать между собой и с внешними устройствами
с помощью портов и хост имя или айпи адресов, которые конфигурируются в elasticsearch.yml файле на каждом ноде.
Эти ноды на хосте или хостах образуют элаcтик кластер, функционирующий как единое целое.
9300,9301 и т.д. предназначены для общения между нодами 9200,9201 и т.д. для общения с внешними устройствами.
Серты подразумевают сертификат файлы ?
Если да, то ответить коротко не получится.
Я установил элаcтик кластер недавно и это взяло некоторое время для решения различных проблем по ходу.
Кластер установлен на двух хостах, два нода на каждом хосте.
На кластере я конфигурировал секюрити TLS/SSL как для внутреннего так и для наружного общения.
Для этого мне потребовалось подробно ознакомиться со всей документацией, много экспериментироваь и общаться
с эластик инженерами на форуме Testing TLS/SSL secured elastic cluster.
Я бы советовал путь от простого к сложному:
-установи на докере эластик кластер с двумя нодами без секюрити
-убедись что они образовали кластер и правильно работают с помощью CURL команды
-генерируй юзера и его пароль, создай роль с опреденными пермишн, присвой эту роль юзеру.
-этот изер и пароль будешь использовать при тестировании кластера с помощью CURL команды
-добавь TLS/SSL для внутреннего обмена между нодами
-убедись что они правильно работают с помощью CURL команды
-добавь TLS/SSL для врешнего обмена между нодами
-убедись что они правильно работают с помощью CURL команды
Главное, прочитай эластик документацию и особенно тщательно в отношении секюрити. Без этого будет очень сложно. Путь непростой но преодолимый.
Если вы собирали через docker-compose - могли бы вы поделиться рабочим конфигом?
И я так понимаю самая большая трудность - правильно выпустить сертификаты, чтобы несколько нод работали на одном сервере. Как правильно прописать ноды в instances.yml? И как правильно потом прописать эти ноды в конфиге эластиков?
Я инсталлировал эластик кластер на RHEL (Linux) серверах
Прежде чем генерировать сертификаты, надо инстлл-ть эластик кластер минимум с двумя нодами без всякого секюрити, стартовать его убедиться что кластер работает правильно и лишь затем конфигурировать секюрити.
Ты проделал эту часть уже ?
С документацией по ссылках ознакомился ?
Трудно что то советовать, не зная на какой стадии ты находишься, какую версию эластика используешь (7.0 или 7.9) ?
Сертификаты генерируются не для того,чтобы несколько нод работали на одном сервере а для конфигурирования секюрити на кластере.
Мне кажется мы под "сертами" подрaзумеваем разные вещи или я не понял этот жаргон о "сертах" изначально.
какая версия эластик ?
сколько серверов и нодов на каждом сервере ты конфигурировал и стартовал чтобы образовать эластик кластер ?
содержимое elasticsearch.yml конфиг файлов на серверах/нодах ?
чтобы проверить или ноды образуют кластер curl -XGET -k "https://es01-01-d:9200/_cut/nodes?v" -u elastic:pass
какой результат этой и предыдущей команды curl -XGET -k "https://es01-01-d:9200/_cluster/health?pretty=true" -u elastic:pass
Извиняюсь, не увидел в почте уведомления, а на форум захожу не часто.
Прошу прощения, не держите на меня зла.
Сделал overlay-сеть для хостов, на которых установлен docker.
Сделал все по документации:
Сеть также называется elastic, но она - overlay сеть из docker-swarm.
Думаю что следующим шагом загоню все это в кубер. Сейчас контейнеры работают стабильно, держат нагрузку примерно 35000 индексируемых событий в секунду.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.