 
      
      
    
👌 Ты заходишь в Кибану, а там ничего нет.
Случилась у нас однажды беда: люди начали заходить в Кибану, и удивлялись, почему они не видят их любимых дашбордов. Не было ничего: ни индексов, ни дашбордов, ни визуализаций.
Причиной этого является, скорее всего, скоропостижная кончина системного индекса .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}
На следующем экране убираем переключатель, с которым будут бекапиться все индексы и указываем название индекса, который мы хотим резервировать:
  
  
    
  
  
     
      
      
    
На следующем экране говорим системе как долго хранить снапшоты:
  
  
    
  
  
     
      
      
    
Всё.
На экране политик можно руками запустить выполнение бекапа:
  
  
    
  
  
     
      
      
    
🔥 Не забудь забекапить бекап проверить восстановление из бекапа
💡 Если вам нравятся мои посты, то подписывайтесь также:
- Телеграм канал 📺
- Чат 🤘🏼
