Установка Elastic Search в Docker-контейнер


Работа с системой контейнерной изоляции Docker Мое портфолио, сертификаты и разработки
aptitude compose docker elasticsearch github контейнер сервер
 
 

* В этом блоге я описываю свою повседневную рабочую практику, поэтому все статьи в блоге написаны лично мной и при копировании их на свой сайт пожалуйста указывайте ссылку на страницу откуда вы скопировали.
* Если какая-то статья вам помогла, то вы можете дать мне немного денег вместо простого спасибо (ссылка на форму поддержки проекта внизу страницы), если вы что-то не поняли или у вас что-то не получается, то вы можете нанять меня и я вам все подробно расскажу (расценки и ссылки в конце статьи).


(последние правки 3 недели, 6 дней)

Сегодня я буду настраивать компоненты глобального поиска bpm’online customer center и первый элемент этой системы, это Elastic Search в Docker-контейнере.

Официальную документацию вы можете найти по адресу https://academy.terrasoft.ru/documents/customer-center/7-12/nastroyka-globalnogo-poiska#HT_chapter_setup_global_search, а я в свою очередь лишь задокументирую мою установку под текущую задачу.

Установка будет проводиться в дистрибутив Debian версии 9.3

Начинаем с установки Docker CE в установленный дистрибутив:

# apt-get install aptitude mc
# apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
# curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
# apt-get update
# apt-get install docker-ce

Следующим этапом мы настраиваем систему, устанавливаем контейнер с Elastic Search и запускаем его:

# sysctl -w vm.max_map_count=262144
# docker pull docker.elastic.co/elasticsearch/elasticsearch:5.6.10
# docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:5.6.10

Для сохранения параметра max_map_count после перезагрузки сервера, необходимо добавить его в файл /etc/sysctl.conf, для проверки после перезагрузки сервера выполните команду:

# sysctl -a | grep max_map_count

Как вы понимаете, я привел пример запуска тестового окружения, для продакшн-режима необходимо создать docker-compose.yml следующего содержания:

version: '3' 
services: 
 elasticsearch-production: 
   image: docker.elastic.co/elasticsearch/elasticsearch:5.6.8 
   container_name: elasticsearch-production 
   environment: 
     - cluster.name=docker-cluster 
     - bootstrap.memory_lock=true 
     - "ES_JAVA_OPTS=-Xms512m -Xmx512m" 
   ulimits: 
     memlock: 
       soft: -1 
       hard: -1 
   volumes: 
     - esdata_prod:/usr/share/elasticsearch/data 
     - esdata_plugins:/usr/share/elasticsearch/plugins 
   ports: 
     - 9200:9200 
   networks: 
     - esnet 
 
volumes: 
 esdata_prod: 
   driver: local-persist 
   driver_opts: 
       mountpoint: /opt/docker/esdata_prod 
 
 esdata_plugins: 
   driver: local-persist 
   driver_opts: 
       mountpoint: /opt/docker/esdata_plugins
 
networks: 
 esnet:

После чего установить утилиту docker-compose и запустить наш файл docker-compose.yml:

# curl -fsSL https://raw.githubusercontent.com/CWSpear/local-persist/master/scripts/install.sh | sudo bash
# curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
# docker-compose up

Устанавливаем плагин поиска по морфологии Morphological Analysis Plugin:

# wget http://dl.bintray.com/content/imotov/elasticsearch-plugins/org/elasticsearch/elasticsearch-analysis-morphology/5.6.8/elasticsearch-analysis-morphology-5.6.8.zip
# cp ./elasticsearch-analysis-morphology-5.6.8.zip /opt/docker/esdata_prod/
# docker exec 165bd085835a bin/elasticsearch-plugin install file:///usr/share/elasticsearch/data/elasticsearch-analysis-morphology-5.6.8.zip

Проверяем, что Elastic Search в контейнере работает:

# curl http://127.0.0.1:9200/_cat/health

На этом с Elastic Search закончили и переходим к следующему этапу.

Моя официальная страница на FaceBook
Мой микроблог в твиттер

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


Есть вопросы?
Спрашивайте и я обязательно вам отвечу!

* Поля обязательные для заполнения .