Содержание
Установка KUMA в производственной среде
Перед установкой программы ознакомьтесь с требованиями к установке KUMA, а также аппаратными и системными требованиями. Установка KUMA происходит в несколько этапов:
- Настройка сетевого доступа
Убедитесь, что все необходимые порты открыты для взаимодействия между компонентами KUMA с учетом структуры безопасности на вашем предприятии.
- Подготовка контрольной машины
Контрольная машина используется в процессе установки программы: на ней распаковывается и запускаются файлы установщика.
- Подготовка целевых машин
На целевые машины устанавливаются компоненты программы.
- Подготовка файла инвентаря
Создайте файл инвентаря с описанием сетевой структуры компонентов программы, с помощью которого установщик сможет развернуть KUMA.
- Установка программы
Установите программу и получите URL и учетные данные для входа в веб-интерфейс.
- Создание сервисов
Создайте сервисы в веб-интерфейсе KUMA и установите их на предназначенных для них целевых машинах.
Настройка сетевого доступа
Для правильной работы программы нужно убедиться, что компоненты KUMA могут взаимодействовать с другими компонентами и программами по сети через протоколы и порты, указанные во время установки компонентов KUMA. В таблице ниже показаны значения сетевых портов по умолчанию.
Сетевые порты, используемые для взаимодействия компонентов KUMA друг с другом
Протокол |
Порт |
Направление |
Назначение подключения |
HTTPS |
7222 |
От клиента KUMA к серверу с компонентом Ядро KUMA. |
Реверс-прокси к системе CyberTrace. |
HTTPS |
8123 |
От сервиса хранилища к узлу кластера ClickHouse. |
Запись и получение нормализованных событий в кластере ClickHouse. |
HTTPS |
9009 |
Между репликами кластера ClickHouse. |
Внутренняя коммуникация между репликами кластера ClickHouse для передачи данных кластера. |
TCP |
2181 |
От узлов кластера ClickHouse к сервису координации репликации ClickHouse keeper. |
Получение и запись репликами серверов ClickHouse метаинформации о реплицировании. |
TCP |
2182 |
От сервисов координации репликации ClickHouse keeper друг к другу. |
Внутренняя коммуникация между сервисами координации репликации, используемая для достижения кворума. |
TCP |
7210 |
От всех компонентов KUMA на сервер Ядра KUMA |
Получение конфигурации KUMA от сервера Ядра KUMA |
TCP |
7215 |
От коллектора KUMA к коррелятору KUMA |
Отправка данных коллектором в коррелятор KUMA |
TCP |
7220 |
От клиента KUMA к серверу с компонентом Ядро KUMA |
Доступ пользователей к веб-интерфейса KUMA |
TCP |
7221 и другие порты, используемые для установки сервисов в качестве значения параметра --api.port <порт> |
От Ядра KUMA к сервисам KUMA |
Администрирование сервисов из веб-интерфейса KUMA |
TCP |
7223 |
К серверу Ядра KUMA. |
Порт, используемый по умолчанию для API-запросов. |
TCP |
8001 |
От Victoria Metrics к серверу ClickHouse. |
Получение метрик работы сервера ClickHouse. |
TCP |
9000 |
От клиента ClickHouse к узлу кластера ClickHouse. |
Запись и получение данных в кластере ClickHouse. |
Подготовка контрольной машины
Контрольная машина используется в процессе установки программы: на ней распаковывается и запускаются файлы установщика.
Чтобы подготовить контрольную машину для установки KUMA:
- Установите на контрольную машину операционную систему и установите на нее необходимые пакеты.
- Настройте сетевой интерфейс.
Для удобства можно воспользоваться утилитой с графическим интерфейсом nmtui.
- Настройте синхронизацию системного времени с NTP-сервером:
- Если машина не имеет прямого доступа в интернет, отредактируйте файл /etc/chrony.conf, заменив значение
2.pool.ntp.org
на имя или IP-адрес внутреннего NTP-сервера вашей организации. - Запустите сервис синхронизации системного времени, выполнив следующую команду:
sudo systemctl enable --now chronyd
- Выждите несколько секунд и выполните следующую команду:
sudo timedatectl | grep 'System clock synchronized'
Если системное время синхронизировано верно, вывод будет содержать строку System clock synchronized: yes.
- Если машина не имеет прямого доступа в интернет, отредактируйте файл /etc/chrony.conf, заменив значение
- Сгенерируйте SSH-ключ для аутентификации на SSH-серверах целевых машин, выполнив следующую команду:
sudo ssh-keygen -f /root/.ssh/id_rsa -N "" -C kuma-ansible-installer
- Убедитесь, что контрольная машина имеет сетевой доступ ко всем целевым машинам по имени хоста и скопируйте SSH-ключ на каждую из них, выполнив следующую команду:
sudo ssh-copy-id -i /root/.ssh/id_rsa root@<имя хоста контрольной машины>
- Скопируйте архив с установщиком KUMA на контрольную машину и распакуйте его с помощью следующей команды (потребуется около 2 ГБ дискового пространства):
sudo tar -xpf kuma-ansible-installer-<version>.tar.gz
Контрольная машина готова для установки KUMA.
В началоПодготовка целевой машины
На целевые машины устанавливаются компоненты программы.
Чтобы подготовить целевую машину для установки компонентов KUMA:
- Установите на контрольную машину операционную систему и установите на нее необходимые пакеты.
- Настройте сетевой интерфейс.
Для удобства можно воспользоваться утилитой с графическим интерфейсом nmtui.
- Настройте синхронизацию системного времени с NTP-сервером:
- Если машина не имеет прямого доступа в интернет, отредактируйте файл /etc/chrony.conf, заменив значение
2.pool.ntp.org
на имя или IP-адрес внутреннего NTP-сервера вашей организации. - Запустите сервис синхронизации системного времени, выполнив следующую команду:
sudo systemctl enable --now chronyd
- Выждите несколько секунд и выполните следующую команду:
sudo timedatectl | grep 'System clock synchronized'
Если системное время синхронизировано верно, вывод будет содержать строку System clock synchronized: yes.
- Если машина не имеет прямого доступа в интернет, отредактируйте файл /etc/chrony.conf, заменив значение
- Установите имя хоста. Настоятельно рекомендуется использовать FQDN. Например: kuma-1.mydomain.com.
Не следует изменять имя хоста KUMA после установки: это приведет к невозможности проверки подлинности сертификатов и нарушит сетевое взаимодействие между компонентами программы.
- Зарегистрируйте целевую машину в DNS-зоне вашей организации для преобразования имен хостов в IP-адреса.
Если в вашей организации не используется DNS-сервер, вы можете использовать для преобразования имен файл /etc/hosts. Содержимое файлов можно автоматически создать для каждой целевой машины при установке KUMA.
- Выполните следующую команду и запишите результат:
hostname -f
Данное имя хоста потребуется указать при установке KUMA. Целевая машина должна быть доступна по этому имени для контрольной машины.
Целевая машина готова для установки компонентов KUMA.
Контрольную машину можно использовать в качестве целевой. Для этого подготовьте контрольную машину, а затем выполните на ней шаги 4–6 из инструкции по подготовке целевой машины.
В началоПодготовка файла инвентаря
Установка, обновление и удаление компонентов KUMA производится из папки с распакованным установщиком с помощью инструмента Ansible и созданного пользователем файла инвентаря с перечнем хостов компонентов KUMA и других параметров. Файл инвентаря имеет формат YAML.
Чтобы создать файл инвентаря:
- Перейдите в директорию установщика KUMA, выполнив следующую команду:
cd kuma-ansible-installer
- Создайте файл инвентаря, скопировав шаблон distributed.inventory.yml.template:
cp distributed.inventory.yml.template distributed.inventory.yml
- Отредактируйте параметры файла инвентаря:
- Если вы хотите, чтобы при установке были созданы демонстрационные сервисы, присвойте параметру deploy_example_services значение true.
deploy_example_services: true
Демонстрационные сервисы можно создать только при первичной установке KUMA – при обновлении системы с помощью того же файла инвентаря демонстрационные сервисы созданы не будут.
- Если машины не зарегистрированы в DNS-зоне вашей организации, присвойте параметру generate_etc_hosts значение true, а также для каждой машины в инвентаре замените значения параметра
ip (0.0.0.0)
на актуальные IP-адреса.generate_etc_hosts: true
При использование этого параметра установщик автоматически дополнит файлы /etc/hosts на машинах, куда устанавливаются компоненты KUMA, IP-адресами машин из файла инвентаря.
- Если вы устанавливаете KUMA в производственной среде и имеете отдельную контрольную машину, присвойте параметру ansible_connection значение ssh:
ansible_connection: ssh
- Если вы хотите, чтобы при установке были созданы демонстрационные сервисы, присвойте параметру deploy_example_services значение true.
- Укажите в файле инвентаря хост целевых машин, на которых следует установить компоненты KUMA. Если машины не зарегистрированы в DNS-зоне вашей организации, замените значения параметра
ip (0.0.0.0)
на актуальные IP-адреса.Хосты указываются в следующих разделах файла инвентаря:
core
– раздел для указания хоста и IP-адреса целевой машины, на которой будет установлено Ядро KUMA. В этом разделе можно указать только один хост.collector
– раздел для указания хоста и IP-адреса целевой машины, на которой будет установлен коллектор. В этом разделе можно указать один или более хостов.correlator
– раздел для указания хоста и IP-адреса целевой машины, на которой будет установлен коррелятор. В этом разделе можно указать один или более хостов.storage
– раздел для указания хостов и IP-адресов целевых машин, на которых будут установлены компоненты хранилища. В этом разделе можно указать один или более хостов.Компоненты хранилища: кластеры, шарды, реплики, киперы
Каждая машина в разделе
storage
может иметь следующие комбинации параметров:shard
+replica
+keeper
shard
+replica
keeper
Если указаны параметры
shard
иreplica
, машина является частью кластера и принимает участие в накоплении и поиске нормализованных событий KUMA. Если дополнительно указан параметрkeeper
, машина также принимает участие в координации репликации данных на уровне всего кластера.Если указан только параметр
keeper
, машина не будет накапливать нормализованные события, но будет участвовать в координации репликации данных на уровне всего кластера. Значения параметра keeper должны быть уникальными.Если в рамках одного шарда определено несколько реплик, значение параметра replica должно быть уникальным в рамках этого шарда.
Файл инвентаря создан. С его помощью можно установить KUMA.
Рекомендуется не удалять файл инвентаря после установки KUMA:
- Если этот файл изменить (например, дополнить данными о новом сервере для коллектора), его можно использовать повторно для обновления системы новым компонентом.
- Этот же файл инвентаря можно использовать для удаления KUMA.
Установка программы
Установка KUMA производится помощью инструмента Ansible и YML-файла инвентаря. Установка производится с контрольной машины, при этом все компоненты KUMA устанавливаются на целевых машинах.
Чтобы установить KUMA:
- На контрольной машине войдите в папку с распакованным установщиком.
- Подложите в папку <папка установщика>/roles/kuma/files/ файл с лицензионным ключом.
Файл ключа должен иметь название license.key.
- Запустите установщик, выполнив следующую команду:
sudo ./install.sh distributed.inventory.yml
- Примите условия Лицензионного соглашения.
Если вы не примите условия Лицензионного соглашения, программа не будет установлена.
Компоненты KUMA установлены на целевых машинах. На экране будет отображен URL веб-интерфейса KUMA и указано имя пользователя и пароль, которые необходимо использовать для доступа к веб-интерфейса.
По умолчанию адрес веб-интерфейса KUMA – https://kuma.example.com:7220
.
Учетные данные, используемые для входа по умолчанию (после первого входа требуется изменить пароль учетной записи admin):
- логин – admin
- пароль – mustB3Ch@ng3d!
Рекомендуется сохранить файл инвентаря, использованный для установки программы. С его помощью можно дополнить систему компонентами или удалить KUMA.
В началоСоздание сервисов
Сервисы KUMA следует устанавливать только после завершения развертывания KUMA. Сервисы можно устанавливать в любом порядке.
При развертывании нескольких сервисов KUMA на одном хосте в процессе установки требуется указать уникальные порты для каждого сервиса с помощью параметров --api.port <порт>
.
Ниже перечислены разделы, в которых описано создание сервисов:
В началоИзменение корневого сертификата
После установки Ядра KUMA создается уникальный самоподписанный корневой сертификат с соответствующим ключом. Этот сертификат используется для подписи всех других сертификатов, используемых для внутренней связи между компонентами KUMA, а также для запросов REST API. Корневой сертификат хранится на сервере Ядра KUMA в папке /opt/kaspersky/kuma/core/certificates/.
Вы можете использовать сертификат и ключ своей компании вместо самоподписанного корневого сертификата и ключа KUMA.
Перед изменением сертификата KUMA обязательно сделайте резервную копию предыдущего сертификата и ключа с именами backup_external.cert и backup_external.key.
Чтобы изменить корневой сертификат KUMA:
- Переименуйте файлы сертификата и ключа вашей компании в external.cert и external.key.
Ключи должны быть в PEM-формате.
- Поместите external.cert и external.key в папку /opt/kaspersky/kuma/core/certificates/.
- Перезапустите службу kuma-core, выполнив команду
sudo systemctl restart kuma-core
. - Перезапустите браузер, с помощью которого вы работаете в веб-интерфейсе KUMA.
Сертификат и ключ вашей компании используются для внутренней связи между компонентами KUMA и для запросов REST API.
В началоДополнительные кластеры ClickHouse
В KUMA можно добавить более одного кластера хранилища ClickHouse. Добавление дополнительного кластера ClickHouse производится в несколько этапов:
- Подготовка целевой машины
На целевой машине необходимо в директории /etc/hosts указать FQDN сервера с Ядром KUMA.
- Подготовка файла инвентаря кластера
В зависимости от типа установки – локальной или удаленной, – файл инвентаря готовится на целевой машине или на машине с установленным Ядром KUMA.
- Установка дополнительного кластера
- Создание хранилища
При создании узлов кластера хранилища убедитесь в сетевой связности системы и откройте используемые компонентами порты.
Подготовка файла инвентаря кластера
Установка, обновление и удаление компонентов KUMA производится из директории с распакованным установщиком с помощью инструмента Ansible и созданного пользователем файла инвентаря с перечнем хостов компонентов KUMA и других параметров. Файл инвентаря имеет формат YAML.
Чтобы создать файл инвентаря:
- Перейдите в директорию распакованного установщика KUMA, выполнив следующую команду:
cd kuma-ansible-installer
- Создайте файл инвентаря, скопировав шаблон additional-storage-cluster.inventory.yml.template:
cp additional-storage-cluster.inventory.yml.template additional-storage-cluster.inventory.yml
- Отредактируйте параметры файла инвентаря:
- Если вы хотите, чтобы при установке были созданы демонстрационные сервисы, присвойте параметру deploy_example_services значение true.
deploy_example_services: true
Демонстрационные сервисы можно создать только при первичной установке KUMA – при обновлении системы с помощью того же файла инвентаря демонстрационные сервисы созданы не будут.
- Если машины не зарегистрированы в DNS-зоне вашей организации, присвойте параметру generate_etc_hosts значение true, а также для каждой машины в инвентаре замените значения параметра
ip (0.0.0.0)
на актуальные IP-адреса.generate_etc_hosts: true
При использование этого параметра установщик автоматически дополнит файлы /etc/hosts на машинах, куда устанавливаются компоненты KUMA, IP-адресами машин из файла инвентаря.
- Присвойте параметру ansible_connection значение:
- Укажите local, если хотите установить кластер локально, на предназначенном ему сервере:
ansible_connection: local
- Укажите ssh, если хотите установить кластер централизовано, с сервера с установленным Ядром KUMA:
ansible_connection: ssh
- Укажите local, если хотите установить кластер локально, на предназначенном ему сервере:
- Если вы хотите, чтобы при установке были созданы демонстрационные сервисы, присвойте параметру deploy_example_services значение true.
- Укажите в файле инвентаря в разделе
storage
полные имена доменов хостов, на которых вы хотите установить ноды кластера. Если машины не зарегистрированы в DNS-зоне вашей организации, замените значения параметраip (0.0.0.0)
на актуальные IP-адреса.Компоненты хранилища: кластеры, шарды, реплики, киперы
Каждая машина в разделе
storage
может иметь следующие комбинации параметров:shard
+replica
+keeper
shard
+replica
keeper
Если указаны параметры
shard
иreplica
, машина является частью кластера и принимает участие в накоплении и поиске нормализованных событий KUMA. Если дополнительно указан параметрkeeper
, машина также принимает участие в координации репликации данных на уровне всего кластера.Если указан только параметр
keeper
, машина не будет накапливать нормализованные события, но будет участвовать в координации репликации данных на уровне всего кластера. Значения параметра keeper должны быть уникальными.Если в рамках одного шарда определено несколько реплик, значение параметра replica должно быть уникальным в рамках этого шарда.
Файл инвентаря создан. С его помощью можно создать кластер ClickHouse.
Рекомендуется не удалять файл инвентаря после установки KUMA:
- Если этот файл изменить (например, дополнить данными о новом сервере для коллектора), его можно использовать повторно для обновления системы новым компонентом.
- Этот же файл инвентаря можно использовать для удаления KUMA.
Установка дополнительного кластера
Установка KUMA производится помощью инструмента Ansible и YML-файла инвентаря.
Чтобы установить дополнительный кластер KUMA:
- На подготовленной целевой машине или машине с установленным Ядром KUMA (в зависимости от параметра
ansible_connection
) войдите в папку с распакованным установщиком. - Запустите установщик, выполнив следующую команду:
PYTHONPATH="$(pwd)/ansible/site-packages:${PYTHONPATH}" python3 ./ansible/bin/ansible-playbook -i additional-storage-cluster.inventory.yml additional-storage-cluster.playbook.yml
Дополнительный кластер ClickHouse установлен. Для записи данных в кластер с помощью KUMA необходимо создать хранилище.
В началоУдаление кластера
Чтобы удалить кластер ClickHouse,
выполните следующую команду:
systemctl stop kuma-storage-<идентификатор хранилища> && systemctl stop kuma-clickhouse && systemctl disable kuma-storage-<идентификатор хранилища> && systemctl disable kuma-clickhouse && rm -rf /usr/lib/systemd/system/kuma-storage-<идентификатор хранилища>.service && rm -rf /usr/lib/systemd/system/kuma-clickhouse.service && systemctl daemon-reload && rm -rf /opt/kaspersky/kuma
Сервисы хранилища KUMA и кластера ClickHouse будут остановлены и удалены.
В начало