# Подготовка ОС перед установкой и Требования

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

<p class="callout info">Официальная документация по данному разделу приведена в Онлайн-справке на продукт: [https://support.kaspersky.ru/kuma/4.2/231034](https://support.kaspersky.ru/kuma/4.2/231034) </p>

<p class="callout info">Актуальные для развёртывания системы пакеты KUMA запросите у сотрудника Лаборатории Касперского.</p>

<p class="callout warning">Порядок обновления с предыдущих версий KUMA - [https://support.kaspersky.ru/kuma/4.2/222156](https://support.kaspersky.ru/kuma/4.2/222156) </p>

<p class="callout success">Карта доступов для KUMA [https://support.kaspersky.ru/kuma/4.2/217770](https://support.kaspersky.ru/kuma/4.2/217770)   
**Дополнение:** Между шардами кластера хранилища необходимо также открывать порт **9000**, несмотря на то, что это не указано в таблице документации</p>

---

### Внешние доступы

1. В процессе развертывания KUMA не подключается к внешним URL
2. В процессе работы KUMA может подключаться ко внешним URL в следующих случаях: 
    - обновление контента (получение правил корреляции, нормализаторов и т.п.) по следующим [адресам](https://support.kaspersky.ru/common/start/6105) (либо используйте офлайн обновление [ссылка)](https://kb.kuma-community.ru/books/ustanovka-i-obnovlenie/page/obnovlenie-resursov-s-pomoshhiu-kaspersky-update-utility-kuu)
    - обращение к KSN при наличии интеграции с KIRA или обнаружения DLL-Hijacking (требуется лицензия на модуль AI) по следующим адресам: [https://llm-gateway.ksn.kaspersky-labs.com](https://llm-gateway.ksn.kaspersky-labs.com/) и [https://dc1-file.ksn.kaspersky-labs.com](https://dc1-file.ksn.kaspersky-labs.com/)
    - обращение к TIP (Threat Intelligence Portal) порталу для обогащения (требуется лицензия на TIP портал, отдельный продукт) или получение фидов продуктом Cyber Trace по следующим адресам: [https://wlinfo.kaspersky.com](https://wlinfo.kaspersky.com/) Также, во всех перечисленных случаях необходим доступ до серверов инфраструктуры публичных ключей: [http://crl.kaspersky.com](http://crl.kaspersky.com/) и [http://ocsp.kaspersky.com](http://ocsp.kaspersky.com/)
    - для активации продукта кодом активации - <span style="text-decoration: underline;">\*.activation-v2.kaspersky.com</span>

---

### Подготовка целевой машины

#### Дистрибутивы

Oracle Linux 9.4: [https://yum.oracle.com/ISOS/OracleLinux/OL9/u4/x86\_64/OracleLinux-R9-U4-x86\_64-dvd.iso](https://yum.oracle.com/ISOS/OracleLinux/OL9/u4/x86_64/OracleLinux-R9-U4-x86_64-dvd.iso)

Ubuntu LTS 22.04 (система работает наиболее производительно): [https://releases.ubuntu.com/jammy/](https://releases.ubuntu.com/jammy/) (cкачайте iso `...live-server-amd64.iso`)

Astra Linux SE 1.7.5: Приобретается отдельно. Сайт производителя: [https://astralinux.ru/](https://astralinux.ru/)

---

#### Разбивка диска

- `/` и другие системные разделы - суммарно 16Гб
- `/opt` - все остальное место
- `/var/log` - 5Гб (не обязательно, но рекомендуется)

---

#### Общие требования

##### Процессор

Набор инструкций SSE4.2 (для работы ClickHouse)

Инструкция AVX (для KUMA 3.2 для MongoDB)

##### Имя хоста

В качестве имени хоста ОБЯЗАТЕЛЬНО использовать FQDN (полное доменное имя, в котором есть хотя бы 1 точка), например, `kuma-1.mydomain.local`.

```bash
hostnamectl set-hostname kuma-1.mydomain.local
```

<p class="callout danger">При установке / обновлении на версию 3.2.х имя хоста НЕ должно начинаться с цифры</p>

Имя хоста можно задать во время установки (зависит от инсталятора ОС), либо после.

<p class="callout warning">Настоятельно не рекомендуется изменять FQDN машин после установки KUMA, особенно на сервере с компонентом Core! Это приведет к невозможности проверки подлинности сертификатов и нарушит сетевое взаимодействие между компонентами KUMA. Для восстановления работоспособности потребуется перевыпуск сертификатов всех сервисов, а также изменение их конфигурации!</p>

Зарегистрируйте целевые машины в DNS-зоне вашей организации. Для пилотных инсталляций, как альтернативу, можно использовать файл hosts. Для этого на каждой целевой машине укажите в файле hosts имена всех машин и их ip-адреса (включая адрес машины, на которой происходит настройка).

##### Синхронизация времени

Настройте временную зону и синхронизацию системного времени с NTP-сервером на всех серверах KUMA. Это можно сделать во время установки ОС.

<details id="bkmrk-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D0%BD"><summary>Пример команды для настройки NTP</summary>

```bash
sudo apt install chrony
sudo systemctl enable --now chronyd
sudo timedatectl | grep 'System clock synchronized'
```

Если доступ в Интернет отсутствует, то после установки chrony отредактируйте файл `/etc/chrony.conf`, заменив в нем `2.pool.ntp.org` на адрес NTP сервера вашей организации.

Либо:

```bash
timedatectl set-timezone Europe/Moscow
echo -e "[Time]\nServers=2.pool.ntp.org 1.pool.ntp.org" >>  /etc/systemd/timesyncd.conf
timedatectl set-ntp true
timedatectl status
```

</details>##### Прочее

Задайте пароль пользователю root. Это можно сделать во время установки ОС.

<p class="callout danger">Не создавайте на целевых машинах пользователя **kuma**! Он создается автоматически при установке продукта и наличие в системе пользователя с таким же именем может сделать вход в систему невозможным (придумайте другое имя).</p>

Отключите SELinux на тех ОС, для которых это применимо (Oracle, Ubuntu).

<details id="bkmrk-%D0%9E%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-selinux-1"><summary>Отключение SELinux</summary>

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

```bash
sudo setenforce 0
```

2\. Откройте на редактирование файл `/etc/selinux/config` и установите в нем параметру `SELINUX=` значение `disabled`

3\. Сохраните внесенные изменения и перезагрузите машину

```bash
sudo reboot
```

</details>На серверах хранилищ включите использование ipv6. Если установка All-in-one, на целевой машине также требуется включить использование ipv6. Для проверки, что ipv6 включен, можно использовать команду:

```bash
ping ::1
```

Для включения ipv6 воспользуйтесь инструкцией из **[статьи](https://kb.kuma-community.ru/books/polzovatelskie-stati/page/vkliucenie-ipv6-oraclecentosredhat)**.

Либо используйте конфигурацию хранилища без использования ipv6 - [https://kb.kuma-community.ru/link/25#bkmrk-%D0%97%D0%B0%D0%BF%D1%83%D1%81%D0%BA-%D1%81%D0%BB%D1%83%D0%B6%D0%B1%D1%8B-keeper](https://kb.kuma-community.ru/link/25#bkmrk-%D0%97%D0%B0%D0%BF%D1%83%D1%81%D0%BA-%D1%81%D0%BB%D1%83%D0%B6%D0%B1%D1%8B-keeper)

---

#### Установка пакетов

<p class="callout info">Требования к установке на различных ОС приведены в официальной документации: [https://support.kaspersky.com/help/KUMA/3.2/ru-RU/231034.htm](https://support.kaspersky.com/help/KUMA/3.2/ru-RU/231034.htm)   
</p>

<p class="callout warning">Убедитесь, что в рамках одной инсталляции KUMA на разных хостах не используются одновременно Python версии 3.6 и Python версии 3.10 и выше. Данное ограничение также распространяется на контрольный хост.  
  
Пример **НЕкорректной** конфигурации:  
*Контрольный хост — Python 3.11.13*  
*Целевые хосты — Python 3.6.8*</p>

##### Oracle Linux

Основные пакеты:

- python3 (python 3.6 - 3.11)
- netaddr
- firewalld

```bash
sudo yum install -y python3.6 python3-netaddr
```

Только для Oracle 9.x:

- compat-openssl11

```bash
sudo yum install -y compat-openssl11
```

Только для сервера Ядра (как правило, не требуются, если сервер установлен с GUI):

- nss
- gtk2
- atk
- libnss3.so
- libatk-1.0.so.0
- libxkbcommon
- libdrm
- at-spi2-atk
- mesa-libgbm
- alsa-lib
- cups-libs
- libXcomposite
- libXdamage
- libXrandr

```bash
sudo yum install -y nss gtk2 atk libnss3.so libatk-1.0.so.0 libxkbcommon libdrm at-spi2-atk mesa-libgbm alsa-lib cups-libs libXcomposite libXdamage libXrandr
```

##### Astra Linux

Основные пакеты:

- python3 (python 3.6 - 3.11)
- python3-apt
- curl
- libcurl4
- netaddr
- python3-cffi-backend

```bash
sudo apt install -y python3 python3-apt curl libcurl4 python3-netaddr python3-cffi-backend
```

<p class="callout warning">Перед установкой KUMA рекомендуется проверить наличие в ОС сервиса ufw (обычно устанавливается по умолчанию, но встречаются инсталляции, в которых сервис отсутствует):  
systemctl status ufw  
Если сервис отсутствует, выполнить установку (рекомендуемый вариант).   
Нерекомендуемый вариант: в файле инвентаря изменить значение параметра no\_firewall\_actions c **false** на **true**</p>

Только для сервера Ядра (как правило, не требуются, если сервер установлен с GUI):

- libgtk2.0.0
- libnss3
- libatk-adaptor
- libatk1.0-0
- libdrm-common
- libgbm1
- libxkbcommon0
- libasound2

```bash
sudo apt install -y libgtk2.0.0 libnss3 libatk-adaptor libatk1.0-0 libdrm-common libgbm1 libxkbcommon0 libasound2
```

Дополнительно требуется присвоить пользователю, под которым вы собираетесь установить KUMA необходимый уровень прав с помощью команды ниже

```bash
sudo pdpl-user -i 63 <имя пользователя>
```

##### Ubuntu

Основные пакеты:

- python3 (python 3.6 - 3.11)
- python3-apt
- curl
- libcurl4
- openssl 1.1.1
- acl

```bash
sudo apt install python3-apt curl libcurl4 acl
```

Для установки openssl 1.1.1 необходимо скачать пакет [libssl1.1\_1.1.1f-1ubuntu2\_amd64.deb](http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/) и установить его:

```bash
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
```

Только для сервера Ядра (как правило, не требуются, если сервер установлен с GUI):

- libatk1.0-0
- libgtk2.0-0
- libatk-bridge2.0-0
- libcups2
- libxcomposite-dev
- libxdamage1
- libxrandr2
- libgbm-dev
- libxkbcommon-x11-0
- libpangocairo-1.0-0
- libasound2

```
sudo apt install libatk1.0-0 libgtk2.0-0 libatk-bridge2.0-0 libcups2 libxcomposite-dev libxdamage1 libxrandr2 libgbm-dev libxkbcommon-x11-0 libpangocairo-1.0-0 libasound2
```

---

### Требования для Хранилища и Keeper

#### Процессор

- с частотой от 2 ГГц;
- с архитектурой x86\_64 и **поддержкой инструкций SSE 4.2**;
- Рекомендуется использовать технологии Turbo Boost и Hyper-Threading (при наличии);

<p class="callout info">ClickHouse работает более эффективно в конфигурациях с большим количеством ядер, но с более низкой тактовой частотой, чем в конфигурациях с меньшим количеством ядер и более высокой тактовой частотой. Например, 16 ядер с 2600 MHz предпочтительнее, чем 8 ядер с 3600 MHz.</p>

#### ОЗУ

Необходимый объём RAM зависит от Сложности запросов и Объёма данных, обрабатываемых в запросах.

- Рекомендуемый объем оперативной памяти от 16 Гб (для объемов данных ~ 16 - 32 ТБ \[горячее хранение\]);
- Рекомендуемый объем оперативной памяти от 32 Гб (для объемов данных ~ 32 - 48 ТБ);
- Рекомендуемый объем оперативной памяти от 48 Гб (для объемов данных ~ 48 - 64 ТБ);
- Рекомендуемый объем оперативной памяти от 64 Гб (для объемов данных ~ 64 - 80 ТБ);
- Рекомендуемый объем оперативной памяти от 128 Гб (для объемов данных &gt; 80 ТБ);

*<span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: EN-US;">В идеальном случае: Количество Гб ОЗУ примерно равно количеству ТБ хранилища.</span>*

<p class="callout info"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: EN-US;">Приемы оптимизации - [**ссылка**](https://kb.kuma-community.ru/link/55#bkmrk-%C2%A0%D0%9C%D0%BE%D0%B6%D0%B5%D1%82-%D0%B1%D1%8B%D1%82%D1%8C-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B7%D0%BD%D0%BE-)</span></p>

#### Диск

<p class="callout warning">Отключайте файл подкачки (swap) в продуктовых средах.</p>

Настоятельно рекомендуется использовать SSD (обычно ~ &gt; 15k EPS) или HDD-рейд (SAS 10-15k RPM) в зависимости от нагрузки (до 15-25k EPS) и профиля использования системы, если не предполагается выполнение агрегационных SQL-запросов с большой глубиной.

<p class="callout info">Пропускная способность диска является более важным фактором по сравнению с IOPS.</p>

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

Файловая система **ext4** — самый надежный вариант. XFS тоже работает хорошо. Большинство других файловых систем также должны работать нормально. FAT-32 и exFAT не поддерживаются из-за отсутствия жестких ссылок. Работа на NFS, тоже не лучшая идея.

Размер блока 64 КБ достаточен для большинства конфигураций RAID. Средний размер записи на сервере Clickhouse составляет примерно 1 МБ (1024 КБ), поэтому рекомендуемый размер страйпа (stripe) также составляет 1 МБ.

<p class="callout info">При необходимости размер блока можно оптимизировать, установив его равным 1 МБ, разделенному на количество дисков без четности в RAID-массиве, так что каждая запись распараллеливается на всех доступных дисках без четности. Никогда не устанавливайте размер блока слишком маленьким или слишком большим.</p>

<p class="callout warning">Keeper более критичен к диску и требует от 1000 IOPS, в зависимости от нагрузки, идеально использовать тип носителя NVMe</p>

#### Сеть  


- Keeper нужен IPv6, включите его в ОС, если он отключен;
- По возможности, используйте сети 10G и более высокого класса, минимально подойдет 1G.
- Пропускная способность сети критически важна для обработки распределенных запросов с большим количеством промежуточных данных. Также, скорость сети влияет на задержки в процессах репликации.
- Сетевые задержки не должны превышать 150 мс.

<p class="callout warning">Keeper рекомендуется устанавливать на отдельные сервера, отдельно от ClickHouse (при возможности, обычно это ~ &gt; 50k EPS), т.к. Keeper менее производителен при установке на одном узле с ClickHouse. Процессор и ОЗУ - по сайзингу.</p>

---

### Требования для Core / Collector / Correlator

Требования к процессору (для KUMA от версии 3.2 для работы MongoDB требуется **наличие инструкций процессора AVX**) и ОЗУ по сайзингу, диски можно использовать любые HDD от 7,5k RPM от 0,5 ТБ.

<p class="callout warning">Любое новое обогащение или агрегация на коллекторе это ~+ 100-200 Мб к ОЗУ (учитывайте это при расчете)</p>

<p class="callout info">Объем диска на ядре зависит от количества создавемых алертов, рекомендуется от 1 ТБ</p>

<p class="callout info">При отказоустойчивости ядра RAFT сетевые задержки должны быть не более 500 мс, идеально: 150 – 300 мс</p>

---

### Требования к отказоустойчивому ядру в кластере Kubernetes

Требования к процессору и ОЗУ по сайзингу.

#### Диск

<p class="callout info">Быстрые диски являются наиболее важным фактором производительности и стабильности развертывания.</p>

По возможности используйте диски SSD, в крайнем случе подойдет HDD RAID 10 (SAS 10-15k RPM);

#### Сеть

- Обычно 1GbE достаточно для обычных развертываний. Но если есть возможность, то 10GbE более предпочтительно;
- Сетевые задержки не должны превышать 100 мс.