# Резервное копирование

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

<p class="callout info">Информация, приведенная на данной странице, является разработкой команды pre-sales и/или community KUMA и **НЕ** является официальной рекомендацией вендора.</p>

<p class="callout info">Официальная документация по данному разделу приведена в Онлайн-справке на продукт: [https://support.kaspersky.com/help/KUMA/4.0/ru-RU/222208.htm3](https://support.kaspersky.com/help/KUMA/2.1/ru-RU/222208.htm)</p>

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

<p class="callout info"><span style="color: rgb(52, 73, 94);">Функция резервного копирования предназначена для восстановления KUMA – для переноса или копирования ресурсов следует использовать функции экспорта и импорта ресурсов.</span></p>

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

- <span lang="EN-US" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="mso-ansi-language: RU;">С</span><span lang="EN-US"> помощью REST API.</span>
- <span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: RU;"><span style="mso-list: Ignore;"><span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="mso-ansi-language: RU;">Через веб-интерфейс </span>

<p class="callout warning"><span style="color: rgb(230, 126, 35);">Восстановление данных из резервной копии возможно только на той же версии <span lang="EN-US">KUMA</span>.</span></p>


#### <span style="color: rgb(0, 0, 0);">Через веб-интерфейс \[KUMA 4.2+\]</span>

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/jcRimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/jcRimage.png)


#### <span style="color: rgb(0, 0, 0);">С помощью <span style="mso-bookmark: _Toc225510230;"><span lang="EN-US" style="mso-ansi-language: EN-US;">REST</span> </span><span style="mso-bookmark: _Toc225510230;"><span lang="EN-US" style="mso-ansi-language: EN-US;">API \[KUMA 3.4+\]</span></span></span>

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

<p class="callout warning">для KUMA от 4.0 и выше используйте API **v3**</p>

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

**GET /api/v1/system/backup**

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

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

Чтобы создать резервную копию Ядра необходимо создать пользователя и предоставить ему права доступа к методам <span lang="EN-US" style="mso-ansi-language: EN-US;">API</span> **GET /system/backup** и **POST /system/restore** (для восстановления)**:**

1. <span style="mso-fareast-font-family: 'Kaspersky Sans Display Light'; mso-bidi-font-family: 'Kaspersky Sans Display Light'; mso-ansi-language: RU;"><span style="mso-list: Ignore;"><span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="mso-ansi-language: RU;">Перейдите в раздел **Параметры** </span><span style="font-family: 'Arial',sans-serif; mso-ansi-language: RU;">→</span><span style="mso-ansi-language: RU;"><span style="mso-spacerun: yes;"> </span>**Пользователи** и нажмите **Добавить пользователя**.</span>
2. <span style="mso-fareast-font-family: 'Kaspersky Sans Display Light'; mso-bidi-font-family: 'Kaspersky Sans Display Light'; mso-ansi-language: RU;"><span style="mso-list: Ignore;"><span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="mso-ansi-language: RU;">В появившемся окне **Пользователь** задайте параметры нового пользователя:</span>

- <span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: RU;"><span style="mso-list: Ignore;"><span style="font: 7.0pt 'Times New Roman';"> </span></span></span>**<span style="mso-ansi-language: RU;">Имя</span>**<span style="mso-ansi-language: RU;"> – введите имя пользователя</span>
- **Логин** – введите уникальный логин учетной записи пользователя. Длина должна быть от 3 до 64 символов (допускается использование только символов a–z, A–Z, 0–9, . \\ - \_).
- <span style="font: 7.0pt 'Times New Roman';"> </span>**Адрес электронной почты** – введите уникальный адрес электронной почты пользователя. Адрес электронной почты должен быть <span lang="EN-US">корректным.</span>

<p class="callout info"><span lang="EN-US" style="color: rgb(52, 73, 94);">Если отправка уведомлений на почту не предполагается, то можно указать любую почту, например <test@abc.local></span></p>

- **<span style="mso-ansi-language: RU;">Новый пароль</span>**<span style="mso-ansi-language: RU;"> – введите пароль для учетной записи пользователя. Требования к паролю:</span>
    - <span style="mso-ansi-language: RU;">длина от 16 до 128 символов</span>
    - требуется как минимум один символ в нижнем регистре
    - требуется как минимум один символ в верхнем регистре;
    - <span style="mso-ansi-language: RU;">требуется как минимум одна цифра;</span>
    - <span style="mso-ansi-language: RU;">требуется как минимум один специальный символ: !, @, #, %, ^, &amp;, \*;</span>
    - <span style="mso-ansi-language: RU;">не более двух одинаковых символов подряд.</span>
- **Подтверждение пароля** – повторите пароля
- **Роли** – выберите роли пользователя. В текущем примере достаточно минимальных прав – **Младший аналитик.**
- В блоке параметров **Тенанты, доступные для роли** с помощью кнопок **Добавить поле** укажите тенант **<span lang="EN-US">Main</span>**
- Нажмите **Сохранить**.

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

<span style="mso-no-proof: yes;"> </span>

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/K0Iimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/K0Iimage.png)

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

- <span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: RU;"><span style="mso-list: Ignore;"><span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="mso-ansi-language: RU;">Нажмите **Права доступа через** </span>**<span lang="EN-US">API</span><span style="mso-ansi-language: RU;">.</span>**
- В окне **Права доступа через <span lang="EN-US">API</span> поставьте флажок напротив методов **<span lang="EN-US">GET</span> /<span lang="EN-US">system</span>/<span lang="EN-US">backup</span>** и **<span lang="EN-US">POST</span> /<span lang="EN-US">system</span>/<span lang="EN-US">restore.</span>**
- <span style="font: 7.0pt 'Times New Roman';"> </span>Нажмите **Сохранить**.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/5Atimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/5Atimage.png)

- <span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: RU;"><span style="mso-list: Ignore;"><span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="mso-ansi-language: RU;">В окне **Пользователь** нажмите **Сгенерировать токен**. </span>
- <span style="mso-ansi-language: RU;">В окне **Новый токен** укажите **Без окончания срока действия**, так как токен будет использоваться сервисной учетной записью </span><span lang="EN-US">backup</span><span style="mso-ansi-language: RU;"> для задач создания резервных копий.</span>
- <span style="mso-ansi-language: RU;">Нажмите **Сгенерировать токен**.</span>

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/1KSimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/1KSimage.png)

 <span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: RU;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="mso-ansi-language: RU;">Сохраните сформированный токен и нажмите **Сохранить**.</span>

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/Mi8image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/Mi8image.png)

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

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

<span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: RU; mso-fareast-language: RU;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="color: black; mso-color-alt: windowtext; mso-ansi-language: RU; mso-bidi-font-weight: bold;">Выполните подключение к</span><span lang="EN-US" style="color: black; mso-color-alt: windowtext; mso-bidi-font-weight: bold;"> CLI </span><span style="color: black; mso-color-alt: windowtext; mso-ansi-language: RU; mso-bidi-font-weight: bold;">сервера </span><span lang="EN-US" style="color: black; mso-color-alt: windowtext; mso-bidi-font-weight: bold;">KUMA</span><span lang="EN-US" style="color: black; mso-color-alt: windowtext; mso-ansi-language: RU; mso-bidi-font-weight: bold;"> </span><span style="color: black; mso-color-alt: windowtext; mso-ansi-language: RU; mso-bidi-font-weight: bold;">(серверу с компонентом Ядро при распределенной установке). </span>

<span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: RU;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="border: none windowtext 1.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm; mso-ansi-language: RU; mso-fareast-language: RU;">Выполните следующую команду для создания резервной копии с помощью </span><span lang="EN-US" style="border: none windowtext 1.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm; mso-fareast-language: RU;">API</span><span style="border: none windowtext 1.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm; mso-ansi-language: RU; mso-fareast-language: RU;">:</span>

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

<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span>Файл резервной копии Ядра <span lang="EN-US" style="mso-ansi-language: EN-US;">KUMA</span> успешно создан.

<p class="callout info">Необходим работающий сервис MongoDB для версии 3.4</p>

<details id="bkmrk-%D0%95%D1%81%D0%BB%D0%B8-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81-mongodb-"><summary>Если сервис MongoDB в нерабочем состоянии</summary>

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

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

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

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

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

```bash
systemctl start kuma-mongodb.service
```

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

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

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

```bash
systemctl start kuma-core*.service
```

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

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

**POST /api/v1/system/restore**

```bash
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 = "&lt;имя пользователя инициировавшего восстановление KUMA из резервной копии"

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

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

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

#### <span style="color: rgb(0, 0, 0);">Полезные ссылки</span>

- Создание резервной копии Ядра KUMA (Postman): [https://www.postman.com/kl-ru-presales/workspace/kaspersky-products-apis-ru/request/23340929-bd766c26-c34b-467e-a28a-4ff65ac05328](https://www.postman.com/kl-ru-presales/workspace/kaspersky-products-apis-ru/request/23340929-bd766c26-c34b-467e-a28a-4ff65ac05328)
- Восстановление Ядра KUMA из резервной копии (Postman): [https://www.postman.com/kl-ru-presales/workspace/kaspersky-products-apis-ru/request/23340929-974b96b4-0876-449c-9001-9912783f6acc](https://www.postman.com/kl-ru-presales/workspace/kaspersky-products-apis-ru/request/23340929-974b96b4-0876-449c-9001-9912783f6acc)

# Резервная копия (локальная) событий из хранилища

### С помощью встроенного клиента clickhouse в KUMA

<p class="callout info">С KUMA 4.0 путь к клиенту CH - /opt/kaspersky/kuma/storage/&lt;ID Storage&gt;/deps/clickhouse/bin/client.sh</p>

#### Сохранение данных

Сохранение данных за определенную дату в файл CSV:

```bash
/opt/kaspersky/kuma/clickhouse/bin/client.sh -d kuma --multiline --query "SELECT * FROM events_local_v2 WHERE toDate(fromUnixTimestamp64Milli(Timestamp)) = toDate('2024-07-16') FORMAT CSVWithNames;" > click_events.csv
```

Сохранение данных за определенную дату в файл CSV с максимальным сжатием (cырой файл CSV 1.4 Гб (строк 5630119) - сжатый 72 Мб):

```bash
/opt/kaspersky/kuma/clickhouse/bin/client.sh -d kuma --multiline --query "SELECT * FROM events_local_v2 WHERE toDate(fromUnixTimestamp64Milli(Timestamp)) = toDate('2024-07-16') FORMAT CSVWithNames;" | gzip -9 -c > click_events.csv.gz
```

Gzip подходит для небольших объемов информации, т.к. он однопоточный. Для **ускорения** рекомендуется использовать `pigz` либо zstd, они используют все доступные ядра процессора, обеспечивая значительное ускорение экспорта больших CSV-файлов по сравнению с gzip. Если он не установлен, то:

```bash
sudo apt install pigz # Debian/Ubuntu
sudo yum install pigz # RHEL/CentOS
```

Далее команда сохранения выглядит с pigz следующим образом:

```bash
/opt/kaspersky/kuma/storage/c1114ebb-45e8-461c-a576-3a222dbfe3b2/deps/clickhouse/bin/client.sh \
  -d kuma \
  --multiline \
  --query "SELECT * FROM events_local_v2 \
           WHERE toDate(fromUnixTimestamp64Milli(Timestamp)) = toDate('2025-08-13') \
           FORMAT CSVWithNames;" \
  | pigz > click_events.csv.gz
```

команда сохранения выглядит с zstd следующим образом:

```bash
/opt/kaspersky/kuma/storage/c1114ebb-45e8-461c-a576-3a222dbfe3b2/deps/clickhouse/bin/client.sh \
  -d kuma \
  --multiline \
  --query "SELECT * FROM events_local_v2 \
           WHERE toDate(fromUnixTimestamp64Milli(Timestamp)) = toDate('2025-08-13') \
           FORMAT CSVWithNames;" \
  | zstd -T0 -15 -v -o click_events.csv.zst
```

Сохранение данных за определенную дату по определенному промежутку в часах (время в UTC) в файл CSV с максимальным сжатием (с 10:00:00 до 11:00:00):

```bash
/opt/kaspersky/kuma/clickhouse/bin/client.sh -d kuma --multiline --query "SELECT * FROM events_local_v2 WHERE toDateTime(fromUnixTimestamp64Milli(Timestamp)) > toDateTime('2024-07-16 10:00:00') AND toDateTime(fromUnixTimestamp64Milli(Timestamp)) < toDateTime('2024-07-16 11:00:00') FORMAT CSVWithNames;" | gzip -9 -c > click_events.csv.gz
```

#### Загрузка данных в хранилище

Распаковать данные с сохранением архива: `gzip -dk click_events.csv.gz`  
Распаковать данные без сохранения архива: `gzip -d click_events.csv.gz`

Если необходима замена TenantID для видимости событий в определенном тенанте, нужно в распакованном файле CSV заменить третье значение после запятой (столбцы CSV `"ID","Timestamp","TenantID","ServiceID","ServiceName"...`), пример команды (старый TenantID 746c6045-b929-4edd-8e1e-84ebe4a11880, новый TenantID 911c6045-b929-4edd-8e1e-84ebe4a11911):

```bash
sed -i 's/746c6045-b929-4edd-8e1e-84ebe4a11880/911c6045-b929-4edd-8e1e-84ebe4a11911/g' click_events.csv
```

Загрузка событий из файла CSV в хранилище ClickHouse:

```bash
/opt/kaspersky/kuma/clickhouse/bin/client.sh -d kuma --multiline --query "INSERT INTO events_local_v2 FORMAT CSV" < /root/click_events.csv
```

<p class="callout warning">В CSV файле не должно быть пустых строк, иначе будет ошибка: `Code: 27. DB::ParsingException: Cannot parse input: expected ',' before: '\n\n':`</p>

---

### С утилитой clickhouse-backup

Для создания резервной копией можно воспользоваться утилитой clickhouse-backup. Исполняемый файл (clickhouse-backup-linux-amd64.tar.gz) для ОС Linux можно загрузить [**отсюда**](https://github.com/Altinity/clickhouse-backup/releases/latest). Подробнее про утилиту [https://github.com/Altinity/clickhouse-backup](https://github.com/Altinity/clickhouse-backup)

#### Подготовка

Разархивируем загруженный файл:

```bash
tar -xvf clickhouse-backup-linux-amd64.tar.gz
```

Добавляем возможность исполнения файла:

```bash
chmod +x clickhouse-backup
```

Добавляем следующую строку `<access_management>1</access_management>` в файл:

```bash
nano /opt/kaspersky/kuma/clickhouse/cfg/config.xml
```

В этот раздел конфига:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/scaled-1680-/XC0image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/XC0image.png)

Создадим файл конфигурации:

```bash
nano click_backup_config.yml
```

Соследующим содержимым:

```bash
general:
  log_level: error
  # Uncomment below if needed
  # remote_storage: sftp

clickhouse:
  host: kuma-aio.sales.lab
  port: 9000
  username: default
  password: ""  # Use `null` or a valid password if required
  secure: true
  tls_key: "/opt/kaspersky/kuma/clickhouse/certificates/key.pem"
  tls_cert: "/opt/kaspersky/kuma/clickhouse/certificates/cert.pem"
  tls_ca: "/opt/kaspersky/kuma/clickhouse/certificates/ca-cert.pem"
  
  skip_tables:
    - system.*
    - INFORMATION_SCHEMA.*
    - information_schema.*
    - _temporary_and_external_tables.*

# Uncomment and configure the SFTP section if needed
# sftp:
#   address: "172.30.56.216"
#   port: 22
#   username: "sftpuser"
#   password: "password"
#   key: ""
#   path: "clickhouse-backup"
#   compression_format: gzip
#   compression_level: 1
#   concurrency: 1
#   debug: false
```

<p class="callout warning">Для логирования действий утилиты используйте значение `log_level: info` в конфигурации `click_backup_config.yml`</p>

В нашем случае восстанавливается Хранилище в инсталляции All-In-One.

Для создания копии данных (ВСЕХ событий) используйте команду:

```bash
./clickhouse-backup create -t kuma.events_local_v2 -c click_backup_config.yml
```

Резервная копия создастся по пути `/opt/kaspersky/kuma/clickhouse/data/backup/`

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

```bash
./clickhouse-backup list -c click_backup_config.yml
```

Для восстановления из бекапа:

```bash
./clickhouse-backup restore 2024-04-08T11-07-24 -t kuma.events_local_v2 -c click_backup_config.yml
```

После восстановления при поиске может возникать следующая ошибка:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-10/scaled-1680-/PwQimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-10/PwQimage.png)

Для исправления ошибки перезапустите хранилище из активных сервисов.

Для удаления бекапа:

```bash
./clickhouse-backup delete local 2024-04-08T11-07-24 -c click_backup_config.yml
```

Удалить служебные данные утилиты:

```bash
./clickhouse-backup clean -c click_backup_config.yml
```

# Архивировние и восстановление БД через ClickHouse BACKUP/RESTORE

<p class="callout info">Информация, приведенная на данной странице, является разработкой команды pre-sales и/или community KUMA и **НЕ** является официальной рекомендацией вендора.</p>

<p class="callout danger">Данная инструкция проверена и актуальна только для версии KUMA 3.0.3.19</p>

---

### Описание

Данный метод позволяет выполнять локальное архивирование и восстановление партиций ClickHouse через встроенные механизмы BACKUP и RESTORE.

В статье описан пример ручного резервного копирования и восстановления на сервере в конфигурации All-in-One. При помощи скриптов данный подход может быть автоматизирован и распространен на распределенную конфигурацию.

<p class="callout warning">Всегда помните, если вы производите резервное копирование и/или архивирование и не проверяете корректность бэкапов, а также не пробуете их восстанавливать, существует вероятность, что вы не сможете восстановиться из резервной копии, когда это будет действительно необходимо.</p>

---

### Настройка хранилища

1\. Создать на сервере хранилища директорию для сохранения резервных копий, например, `/tmp/test_backup`

2\. Сделать владельцем директории пользователя kuma с помощью команды:

```bash
chown kuma:kuma /tmp/test_backup/
```

3\. Убедиться, что у пользователя kuma также есть права x и r на всех родительских директориях

4\. Перейти в Web-интерфейс KUMA на вкладку "активные сервисы".

5\. Открыть на редактирование требуемый сервис хранилища.

6\. В поле "Переопределение параметров ClickHouse" задать разрешенный путь для сохранения резервных копий

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/scaled-1680-/tOLimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/tOLimage.png)

```xml
<backups>
        <allowed_path>/tmp/test_backup/</allowed_path>
</backups>
```

7\. Сохранить сервис хранилища

8\. На вкладке "Активные сервисы" выбрать галочкой соответствующий сервис и нажать перезапустить в верхнем меню для применения настроек

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/scaled-1680-/EnNimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/EnNimage.png)

<details id="bkmrk-%D0%9A%D0%B0%D0%BA-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%82%D1%8C%2C-%D1%87%D1%82%D0%BE-%D0%B8"><summary>Как проверить, что изменения применились</summary>

1\. Перейдите в консоль соответствующего сервиса Хранилища

2\. Выполните команду

```bash
cat /opt/kaspersky/kuma/clickhouse/cfg/config.d/override.xml
```

3\. В выводе должны быть параметры, переопределенные в настройках севриса

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/scaled-1680-/Yl6image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/Yl6image.png)

</details>---

### Выполнение архивирования

1\. Запустить клиента clickhouse командой

```
/opt/kaspersky/kuma/clickhouse/bin/client.sh
```

2\. Выполнить запрос для просмотра партиций, например, такой

```sql
SELECT partition, name, partition_id 
FROM system.parts 
WHERE table='events_local_v2' 
AND NOT positionCaseInsensitive(partition,'audit')>0
ORDER BY partition DESC
```

3\. В результате будут выведены названия и id партиций

<details id="bkmrk-%D0%94%D0%BB%D1%8F-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%B8-%D0%BF%D0%BE-%D0%B4%D0%B0"><summary>Для фильтрации по дате можно воспользоваться следующим запросом</summary>

```sql
SELECT partition, name, partition_id 
FROM system.parts 
WHERE substring(partition,2,8) = '20240406'
AND table='events_local_v2'
AND NOT positionCaseInsensitive(partition,'audit')>0
```

В результате будут выведены все партиции, кроме партиций событий аудита за 6 апреля 2024 года

</details>4\. Для архивации потребуется значение из первой колонки (partition) или последней (partition\_id)

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/scaled-1680-/dUyimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/dUyimage.png)

5\. Для архивации партиции по id необходимо выполнить команду

```sql
BACKUP TABLE kuma.events_local_v2
PARTITION ID '0405a4ae764614f2283652209b390809'
TO File('/tmp/test_backup/20250221_0405a4ae764614f2283652209b390809.zip')
SETTINGS compression_method = 'lzma', compression_level=3
```

<details id="bkmrk-%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2-"><summary>Описание параметров</summary>

*04fb255c7659adfd1d43ed2dd0646b10* - id партиции из предыдущего запроса

*/tmp/test\_backup/* - директория для бэкапов

*20240406\_04fb255c7659adfd1d43ed2dd0646b10.tar.gz* - имя файла бэкапа (может быть произвольным)

</details><p class="callout danger">**Важно!** В ClickHouse использующемся в KUMA до версии **3.4** включительно присутствует баг, при котором параметр **compression\_method** игнорируется, если у итогового файла выбрано расширение отличное от **.zip**  
</p>

В случае, если все прошло успешно будет получено сообщение о создании бэкапа:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2025-02/scaled-1680-/p2gimage.png)

Также посмотреть состояние бэкапа можно через запрос к таблице system.backups

```sql
SELECT * FROM system.backups ORDER BY start_time \G
```

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2025-02/scaled-1680-/kDPimage.png)

Либо сразу с фильтрацией по соответствующему id, который был получен в результате выполнения резервного копирования

```sql
SELECT * FROM system.backups WHERE id = 'd52ba745-7ad0-4099-827a-db688aa62649' \G
```

После выполнения резервного копирования партицию можно удалить из интерфейса KUMA, либо с помощью клиента ClickHouse, либо же дождаться истечения срока хранения.

<details id="bkmrk-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BF%D0%B0%D1%80%D1%82"><summary>Пример удаления партиции из интерфейса</summary>

1\. Перейти на вкладку "Активные сервисы"

2\. Выбрать нужное хранилище, нажать по его имени правой кнопкой мыши и выбрать пункт "Смотреть разделы"

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/scaled-1680-/12cimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/12cimage.png)

3\. В разделах выбрать нужный и нажать удалить

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/scaled-1680-/dJWimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/dJWimage.png)

</details>---

### Выполнение восстановления

1\. Запустить клиента clickhouse командой

```
/opt/kaspersky/kuma/clickhouse/bin/client.sh
```

<p class="callout warning"> с версии 4.0 путь к клиенту: /opt/kaspersky/kuma/ID-storage/deps/clickhouse/bin/client.sh</p>

2\. Выполнить запрос для восстановления

```sql
RESTORE TABLE kuma.events_local_v2 
PARTITION ID '0405a4ae764614f2283652209b390809' 
FROM File('/tmp/test_backup/20250221_0405a4ae764614f2283652209b390809.zip') 
SETTINGS allow_non_empty_tables=true
```

3\. В результате будет восстановлена выбранная партиция из бэкапа и получено соответствующее сообщение:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/scaled-1680-/hSPimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/hSPimage.png)

<details id="bkmrk-%D0%95%D1%81%D0%BB%D0%B8-%D0%B1%D1%8D%D0%BA%D0%B0%D0%BF-%D1%81%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D1%82-"><summary>Если бэкап содержит несколько партиций</summary>

В таком случае можно перечислить сразу несколько ID или названий партиций, например:

```sql
RESTORE TABLE kuma.events_local_v2 
PARTITIONS (20240405,'a1fbde7a-76d3-4bbc-a769-82126b41b56f',''),
(20240406,'faeede7a-76d3-4bbc-a769-82126b41e453','')
FROM File('/tmp/test_backup/20240406_04fb255c7659adfd1d43ed2dd0646b10.zip')
SETTINGS allow_non_empty_tables=true
```

Либо выполнить восстановления всех партиций из бэкапа (также полезно в случае, если не известно id или имя партиции)

```sql
RESTORE ALL 
FROM File('/tmp/test_backup/20240406_04fb255c7659adfd1d43ed2dd0646b10.zip')
SETTINGS allow_non_empty_tables=true
```

</details>По аналогии с резервным копированием в таблице system.backups можно посмотреть состояние

```sql
SELECT * FROM system.backups ORDER BY start_time \G
```

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/scaled-1680-/fxVimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/fxVimage.png)

Либо сразу с фильтрацией по соответствующему id, который был получен в результате выполнения восстановления:

```sql
SELECT * FROM system.backups WHERE id = 'd7758d2f-59c1-4650-afba-c1c288402bf5' \G
```

<p class="callout warning">При восстановлении партиция ВСЕГДА восстанавливается на диск горячего хранения. Перенос данных на холодное хранение выполняется раз в 1 час. Для форсирования операции необходимо перезапустить сервис Ядра KUMA</p>

---

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

ClickHouse Backup and Restore: [https://clickhouse.com/docs/en/operations/backup](https://clickhouse.com/docs/en/operations/backup)