В этой статье мы рассмотрим, как развернуть Elasticsearch и Kibana использовать Docker Compose. Это два ключевых компонента стека ELK( Elasticsearch, Logstash, Kibana), помогающих вам эффективно искать, анализировать и визуализировать данные. Ниже приведены подробные конфигурации и то, как работает каждый компонент.
1. Elasticsearch
а. Базовая конфигурация
Elasticsearch настроен для работы в контейнере Docker со следующими параметрами:
Изображение: Используется официальное Elasticsearch изображение версии .
8.17.2Режим одного узла: включается через переменную среды
discovery.type=single-node.Безопасность: включена безопасность X-Pack(
xpack.security.enabled=true), а пароль пользователяelasticустановлен наYVG6PKplG6ugGOw.Сеть: Elasticsearch прослушивает все сетевые интерфейсы(
network.host=0.0.0.0).Память JVM: сконфигурирована с
-Xms1g(начальная память) и-Xmx1g(максимальная память).
группа Ports Volumes
Ports: Порт
9200(HTTP) и9300(внутренняя связь) сопоставляются от контейнера к хосту.Volumes: Данные Elasticsearch хранятся в
elasticsearch-dataтоме.
c. Проверка здоровья
Healthcheck настроен для мониторинга Elasticsearch состояния 's путем вызова /_cluster/health API с elastic пользователем. Если API не отвечает, контейнер перезапустится.
2. Kibana
а. Базовая конфигурация
Kibana настроен на подключение Elasticsearch и запуск в контейнере Docker со следующими параметрами:
Изображение: Используется официальное Kibana изображение версии .
8.17.2Elasticsearch Подключение: Адрес Elasticsearch установлен на
http://elasticsearch:9200.Аутентификация: Kibana использует
kibana_userпарольYVG6PKplG6ugGOwдля подключения к Elasticsearch.
б. Ports и сети
Ports: Порт
5601сопоставляется с контейнера на хост для доступа к Kibana интерфейсу.Сети: Kibana подключена к
elk-network.
в) Зависимость от Elasticsearch
Kibana запускается только после Elasticsearch готовности, обеспечивая успешное соединение между двумя службами.
3. Объем и сеть
а. Объем
elasticsearch-data: Этот том используется для хранения Elasticsearch данных, обеспечивая сохранность данных даже в случае удаления контейнера.
б) Сеть
elk-network: Сеть
bridgeсоздана для подключения Elasticsearch и Kibana предоставления услуг.
4. Как использовать
а. Запуск служб
Для запуска Elasticsearch выполните Kibana следующую команду:
docker-compose up -d
б) Создание Kibana пользователя(при необходимости)
Если вы хотите использовать отдельного пользователя для Kibana, вы можете создать его с помощью следующей команды:
docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
Чтобы использовать token вместо пароля, вы можете создать его с помощью следующей команды:
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana kibana-token
5. Устранение неполадок
Если вы столкнулись с ошибками, вы можете проверить журналы контейнера с помощью:
docker logs elasticsearch docker logs kibanaДля перезапуска Kibana:
Полное содержимое Docker Compose файла
Ниже приведено полное содержимое файла docker-compose-els.yml :
version: '3.7'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.2
container_name: elasticsearch
environment:
- discovery.type=single-node
- xpack.security.enabled=true
- ELASTIC_PASSWORD=you_password
- network.host=0.0.0.0
- ES_JAVA_OPTS=-Xms1g -Xmx1g
ports:
- '9200:9200'
- '9300:9300'
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
ulimits:
memlock:
soft: -1
hard: -1
networks:
- elk-network
healthcheck:
test: ["CMD-SHELL", "curl -u elastic:YVG6PKplG6ugGOw --silent --fail localhost:9200/_cluster/health || exit 1"]
interval: 10s
retries: 5
start_period: 30s
timeout: 5s
kibana:
image: docker.elastic.co/kibana/kibana:8.17.2
container_name: kibana
ports:
- '5601:5601'
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
- ELASTICSEARCH_USERNAME=kibana_user
- ELASTICSEARCH_PASSWORD=you_password
networks:
- elk-network
depends_on:
elasticsearch:
condition: service_healthy
volumes:
elasticsearch-data:
driver: local
networks:
elk-network:
driver: bridge
Заключение
С этой Docker Compose конфигурацией вы можете легко развернуть Elasticsearch и Kibana обслуживать ваши потребности в поиске, анализе и визуализации данных. Настройте и расширьте эту конфигурацию, чтобы она соответствовала конкретным требованиям вашего проекта!

