В этом задании вы потренируетесь в:
- установке Elasticsearch,
- первоначальном конфигурировании Elasticsearch,
- запуске Elasticsearch в Docker.
Используя Docker-образ centos:7 как базовый и документацию по установке и запуску Elastcisearch:
- составьте Dockerfile-манифест для Elasticsearch,
- соберите Docker-образ и сделайте
push
в ваш docker.io-репозиторий, - запустите контейнер из получившегося образа и выполните запрос пути
/
c хост-машины.
Требования к elasticsearch.yml
:
- данные
path
должны сохраняться в/var/lib
, - имя ноды должно быть
netology_test
.
В ответе приведите:
- текст Dockerfile-манифеста,
- ссылку на образ в репозитории dockerhub,
- ответ
Elasticsearch
на запрос пути/
в json-виде.
Подсказки:
- возможно, вам понадобится установка пакета perl-Digest-SHA для корректной работы пакета shasum,
- при сетевых проблемах внимательно изучите кластерные и сетевые настройки в elasticsearch.yml,
- при некоторых проблемах вам поможет Docker-директива ulimit,
- Elasticsearch в логах обычно описывает проблему и пути её решения.
Далее мы будем работать с этим экземпляром Elasticsearch.
В этом задании вы научитесь:
- создавать и удалять индексы,
- изучать состояние кластера,
- обосновывать причину деградации доступности данных.
Ознакомьтесь с документацией
и добавьте в Elasticsearch
3 индекса в соответствии с таблицей:
Имя | Количество реплик | Количество шард |
---|---|---|
ind-1 | 0 | 1 |
ind-2 | 1 | 2 |
ind-3 | 2 | 4 |
Получите список индексов и их статусов, используя API, и приведите в ответе на задание.
Получите состояние кластера Elasticsearch
, используя API.
Как вы думаете, почему часть индексов и кластер находятся в состоянии yellow?
Удалите все индексы.
Важно
При проектировании кластера Elasticsearch нужно корректно рассчитывать количество реплик и шард, иначе возможна потеря данных индексов, вплоть до полной, при деградации системы.
В этом задании вы научитесь:
- создавать бэкапы данных,
- восстанавливать индексы из бэкапов.
Создайте директорию {путь до корневой директории с Elasticsearch в образе}/snapshots
.
Используя API, зарегистрируйте
эту директорию как snapshot repository
c именем netology_backup
.
Приведите в ответе запрос API и результат вызова API для создания репозитория.
Создайте индекс test
с 0 реплик и 1 шардом и приведите в ответе список индексов.
Создайте snapshot
состояния кластера Elasticsearch
.
Приведите в ответе список файлов в директории со snapshot
.
Удалите индекс test
и создайте индекс test-2
. Приведите в ответе список индексов.
Восстановите состояние
кластера Elasticsearch
из snapshot
, созданного ранее.
Приведите в ответе запрос к API восстановления и итоговый список индексов.
Подсказки:
- возможно, вам понадобится доработать
elasticsearch.yml
в части директивыpath.repo
и перезапуститьElasticsearch
.
Выполненное домашнее задание пришлите ссылкой на .md-файл в вашем репозитории.