Skip to main content

Резервное копирование и восстановление KUMA

Информация, приведенная на данной странице, является разработкой команды pre-sales и/или community KUMA и НЕ является официальной рекомендацией вендора.

Официальная документация по данному разделу приведена в Онлайн-справке на продукт: https://support.kaspersky.com/help/KUMA/4.0/ru-RU/222208.htm3

KUMA позволяет выполнять резервное копирование базы данных Ядра KUMA и сертификатов.

Функция резервного копирования предназначена для восстановления KUMA – для переноса или копирования ресурсов следует использовать функции экспорта и импорта ресурсов.

Доступны следующие возможности создания резервной копии и восстановления из резервной копии:

  •   С помощью REST API.
  •   Через веб-интерфейс 

Восстановление данных из резервной копии возможно только на той же версии KUMA.

Через веб-интерфейс [KUMA 4.2+]

image.png

С помощью REST API [KUMA 3.4+]

В связи с появлением возможности организации отказоустойчивого ядра в кластере kubernetes добавился новый механиз создания резервных копий ядра. 

для KUMA от 4.0 и выше используйте API v3

Для создания резервной копии ресурсов и сертификатов необходимо отправить следующий API-запрос: 

GET /api/v1/system/backup

В ответ на запрос возвращается архив tar.gz, содержащий резервную копию Ядра KUMA. На хосте, где установлено Ядро, резервная копия не сохраняется. Сертификаты включаются в состав резервной копии.

Если операция выполнена успешно, создается событие аудита со следующими параметрами:
DeviceAction = "Core backup created"
SourceUserID = "<user-login>"Пример команды для бэкапа через curl:

Чтобы создать резервную копию Ядра необходимо создать пользователя и предоставить ему права доступа к методам API GET /system/backup и POST /system/restore (для восстановления):

  1.       Перейдите в раздел Параметры   Пользователи и нажмите Добавить пользователя.
  2.      В появившемся окне Пользователь задайте параметры нового пользователя:
  •  Имя – введите имя пользователя
  • Логин – введите уникальный логин учетной записи пользователя. Длина должна быть от 3 до 64 символов (допускается использование только символов a–z, A–Z, 0–9, . \ - _).
  •  Адрес электронной почты – введите уникальный адрес электронной почты пользователя. Адрес электронной почты должен быть корректным.

Если отправка уведомлений на почту не предполагается, то можно указать любую почту, например test@abc.local

  • Новый пароль – введите пароль для учетной записи пользователя. Требования к паролю:
    • длина от 16 до 128 символов
    • требуется как минимум один символ в нижнем регистре
    • требуется как минимум один символ в верхнем регистре;
    • требуется как минимум одна цифра;
    • требуется как минимум один специальный символ: !, @, #, %, ^, &, *;
    • не более двух одинаковых символов подряд.
  • Подтверждение пароля – повторите пароля
  • Роли – выберите роли пользователя. В текущем примере достаточно минимальных прав – Младший аналитик.
  • В блоке параметров Тенанты, доступные для роли с помощью кнопок Добавить поле укажите тенант Main
  • Нажмите Сохранить.

Учетная запись пользователя создана и отображается в таблице Пользователи.

image.png

Нажмите на созданного пользователя и в появившемся окне Пользователь:

    · Нажмите Права доступа через API. 

    ·       В окне Права доступа через API поставьте флажок напротив методов GET /system/backup и POST /system/restorerestore..

    ·  Нажмите Сохранить.

    image.png

      ·  В окне Пользователь нажмите Сгенерировать токен

      ·      

      В окне Новый токен укажите Без окончания срока действия, так как токен будет использоваться сервисной учетной записью backup для задач создания резервных копий.

      ·      

      Нажмите Сгенерировать токен.

      image.png

       ·       Сохраните сформированный токен и нажмите Сохранить.

      image.png

      Токен успешно создан.

      Чтобы создать резервную копию Ядра:

      ·       Выполните подключение к CLI сервера KUMA (серверу с компонентом Ядро при распределенной установке).

      ·       Выполните следующую команду для создания резервной копии с помощью API:

      curl -k --header 'Authorization: Bearer <token>' 'https://<ip_kuma>:7223/api/v3/system/backup' -o backup.tar.gz

             Файл резервной копии Ядра KUMA успешно создан.

      Необходим работающий сервис MongoDB для версии 3.4

      Если сервис MongoDB в нерабочем состоянии

      Останавливаете службы MongoDB и Core:

      systemctl stop kuma-mongodb.service
      systemctl stop kuma-core*.service

        Удаляете данные из папки data: 

      rm -rf /opt/kaspersky/kuma/mongodb/data/*

       Запускаете службу MongoDB:

      systemctl start kuma-mongodb.service

      Инициализируете MongoDB:

      /opt/kaspersky/kuma/mongodb/bin/mongo --eval 'rs.initiate()'

      Запускаете службу Core:

      systemctl start kuma-core*.service

      Далее восстанавливаете ядро по пунктам ниже этой главы.

      Для восстановления из резервной копии необходимо отправить следующий API-запрос:

      POST /api/v1/system/restore

      curl -k --request POST 'https://<ip_kuma>:7223/api/v1/system/restore' --header 'Authorization: Bearer <token>'  --data-binary '@/backup/backup.tar.gz'

      Тело запроса должно содержать архив с резервной копией Ядра KUMA, полученный в результате выполнения API-запроса создания резервной копии.

      После получения архива с резервной копией KUMA выполняет следующие действия:

      1. Распаковывает архив с резервной копией Ядра KUMA во временную директорию.

      2. Сравнивает версию текущей KUMA и с версией резервной копии KUMA.

      3. Если версии соответствуют друг другу, создается событие аудита со следующими параметрами:

      DeviceAction = "Core restore scheduled"
      SourceUserID = "<имя пользователя инициировавшего восстановление KUMA из резервной копии"

      4. Если версии не различаются, выполняет восстановление данных из резервной копии Ядра KUMA.

      5. Удаляет временную директорию и стартует в штатном режиме.

      В журнале Ядра KUMA появится запись "WARN: restored from backup".

      Полезные ссылки