Русский | English | Español | 中文 | Français | Deutsch |
---|---|---|---|---|---|
Выбран | English | Español | 中文 | Français | Deutsch |
Проект предоставляет готовый стек Elasticsearch + analysis-icu + analysis-phonetic + Kibana
с обратным прокси Nginx
для удобного доступа.
- Docker 20.10+ и Docker Compose 2.0+
- 4+ GB свободной оперативной памяти
- Порты 8080 и 9200 свободны на хосте
- Существующая Docker сеть
external_network
(если не требуется нужно удалить из docker-compose.yml)
.
├── .docker.env (создается командой или вручную)
├── .docker.env.example
├── .gitignore
├── docker-compose.yml
├── Makefile
├── README.md
├── langs
│ ├── ...файлы локализации README.md...
├── assets
│ ├── ...контент для README.md...
├── docker-configs
│ ├── elasticsearch
│ │ ├── Dockerfile
│ │ └── elasticsearch.yml
│ ├── kibana
│ │ ├── Dockerfile
│ │ ├── kibana.yml
│ │ └── wait-for-elastic.sh
│ └── nginx
│ ├── Dockerfile
│ └── default.conf.template
└── data
├── ...создается под проект в .env...
Основные переменные окружения (файл .docker.env
):
Переменная | По умолчанию | Описание |
---|---|---|
COMPOSE_PROJECT_NAME | elasticsearch | Название проекта |
ELASTIC_VERSION | latest | Версия Elasticsearch |
KIBANA_VERSION | latest | Версия Kibana |
NGINX_VERSION | latest | Версия Nginx |
ELASTIC_CONTAINER | elasticsearch | Название контейнера elasticsearch |
KIBANA_CONTAINER | kibana | Название контейнера kibana |
NGINX_CONTAINER | nginx | Название контейнера nginx |
KIBANA_DOMAIN | kibana.local | Домен для доступа к Kibana |
ELASTIC_DOMAIN | elastic.local | Домен для доступа к Elasticsearch |
KIBANA_PORT | 5601 | Порт kibana на хосте |
ELASTIC_PORT | 9200 | Порт elasticsearch на хосте |
NGINX_PORT | 80 | Порт Nginx на хосте |
ELASTIC_DATA_DIR | ./data/elasticsearch | Хранилище данных Elasticsearch |
KIBANA_DATA_DIR | ./data/kibana | Хранилище данных Kibana |
EXTERNAL_NETWORK | external_network | Внешняя сеть Docker |
- Elasticsearch:
- Single-node кластер
- Выделено 2GB RAM
- Плагин
analysis-icu
предустановлен - Плагин
analysis-phonetic
предустановлен - Конфигурация с синонимами через
synonyms.txt
- Kibana:
- Автоматическое ожидание готовности Elasticsearch
- Настроен прокси через Nginx
- Nginx:
- Обратный прокси для Elasticsearch и Kibana
git clone https://github.com/yourusername/docker-elasticsearch.git
cd docker-elasticsearch
Если вы используете Windows - смотрите файл Makefile
- там есть полное описание команд. Рекомендую использовать или Linux
или Windows + WSL
.
Выполнить:
make init
В директории будет создан файл .docker.env
, а также директории в которых будут храниться файлы (указываются в переменных: ELASTIC_DATA_DIR
, KIBANA_DATA_DIR
)
Выполнить:
make pull
Будут скачены образы с версией указанной в ELASTIC_VERSION
, KIBANA_VERSION
, NGINX_VERSION
.
Выполнить:
make up
Если в процессе запуска возникла ошибка:
network onex_backend declared as external, but could not be found
Это означает, что вы не указали внешнюю сеть (сеть проекта, к которой нужно подключить elasticsearch). Варианта 2:
- Указать в существующую сеть в
.docker.env
, параметрEXTERNAL_NETWORK
- Удалить из
docker-compose.yml
У сервиса elasticsearch:
- external_network
У networks:
external_network:
name: ${EXTERNAL_NETWORK}
external: true
- Сборка образов без кэша:
make build
- Останавливает контейнеры:
make down
- "Жесткий" перезапуск:
make reset
- "Мягкий" перезапуск:
make restart
- Войти в нужный контейнер:
make in <container>
- Просмотреть логи нужного контейнера:
make log <container>
После запуска доступны через Nginx:
- Kibana: http://
${KIBANA_DOMAIN}
:${NGINX_PORT}
- Elasticsearch: http://
${ELASTIC_DOMAIN}
:${NGINX_PORT}
По умолчанию:
- Kibana: http://kibana.local:80
- Elasticsearch: http://elastic.local:80
Не забудьте прописать домены:
- Для Windows:
C:\Windows\System32\drivers\etc\hosts
- Для Linux:
/etc/hosts
Пример:
127.0.0.1 elastic.local
127.0.0.1 kibana.local
Доступ к Elasticsearch через браузер (http://elastic.local:80):
Доступ к Kibana через браузер (http://kibana.local:80):