👌 Ты заходишь в Кибану, а там ничего нет.
Случилась у нас однажды беда: люди начали заходить в Кибану, и удивлялись, почему они не видят их любимых дашбордов. Не было ничего: ни индексов, ни дашбордов, ни визуализаций.
Причиной этого является, скорее всего, скоропостижная кончина системного индекса .kibana, в котором хранятся все ее настройки.
Люди делятся на два типа: те, кто еще не делает бекапы и те, кто уже делает бекапы
Бекапы индексов #
Вот мы сейчас и научимся делать бекапы\снапшоты индексов
Ссылка на официальную документацию вот: https://www.elastic.co/guide/en/elasticsearch/reference/current/snapshot-restore.html, но я попробую сделать саммари.
Что нужно сделать #
- добавить директорию как репозиторий для хранения снапшотов на машины с эластикой
- настроить бекапы в новый репозиторий
- ????
- PROFIT
Добавить директорию #
Предположим, что у нас уже смонтирована какая-нибудь сетевая шара как директория /mnt/bck01
. Подключение к шаре выполняется с помощью программы cifs-utils и запись в /etc/fstab
выглядит так:
//<server_hostname>/BackupServers$/LinuxServers/kibana /mnt/bck01 cifs user,rw,credentials=/root/.smbclient,iocharset=utf8,uid=elasticsearch,gid=elasticsearch,file_mode=0775,dir_mode=0775 0 0
Подробнее про подключение сетевых шар в другой статье.
Нужно добавить эту директорию в настройки Elasticsearch. Идем в /etc/elasticsearch/elasticsearch.yml
и добавляем:
path:
repo:
- /mnt/bck01
Сохраняем файл и делаем:
systemctl restart elasticsearch
💡 Добавлять в конфигурацию путь к директории нужно на каждой ноде в кластере эластики
Настройка репозитория #
Дальше есть два варианта настройки:
- В Кибане
- Через АПИ
В Кибане #
Stack Management → Snaphot and restore → Repositories → Register repository
Вводим имя и выбираем Shared file system
Location - путь к нашей директории. Нас предупреждают, что путь должен быть добавлен в конфигурацию на всех нодах кластера!
Read only - если мы подключаем эту шару к нескольким кластерам, то рекомендуют только одному кластеру работать на запись. Остальным следует установить этот переключатель.
Через API #
Делаем cURL запрос к кластеру:
curl -X PUT "localhost:9200/_snapshot/bck01?pretty" -H 'Content-Type: application/json' -d'
{
"type": "fs",
"settings": {
"location": "/mnt/bck01/",
"compress": true
}
}
'
Настройка политик снапшотов #
Укажем системе что и когда бекапить:
Переходим в раздел Policies и нажимаем Create a policy.
Name - имя политики ни на что не влияет
Snapshot name - это именно имя снапшота, желательно разделять по дням добавив {now/d}
На следующем экране убираем переключатель, с которым будут бекапиться все индексы и указываем название индекса, который мы хотим резервировать:
На следующем экране говорим системе как долго хранить снапшоты:
Всё.
На экране политик можно руками запустить выполнение бекапа:
🔥 Не забудь забекапить бекап проверить восстановление из бекапа
💡 Если вам нравятся мои посты, то подписывайтесь также:
- Телеграм канал 📺
- Чат 🤘🏼