Содержание
- Установка и удаление KUMA
- Требования к установке программы
- Порты, используемые KUMA при установке
- Синхронизация времени на серверах
- О файле инвентаря
- Установка на одном сервере
- Распределенная установка
- Распределенная установка в отказоустойчивой конфигурации
- Резервное копирование KUMA
- Изменение конфигурации KUMA
- Обновление предыдущих версий KUMA
- Устранение ошибок при обновлении
- Удаление KUMA
Установка и удаление KUMA
Для выполнения установки вам понадобится дистрибутив:
- kuma-ansible-installer-<номер сборки>.tar.gz содержит все необходимые файлы для установки KUMA без поддержки отказоустойчивых конфигураций.
- kuma-ansible-installer-ha-<номер сборки>.tar.gz содержит все необходимые файлы для установки KUMA в отказоустойчивой конфигурации.
Для установки вам понадобится файл установщика install.sh и файл инвентаря с описанием инфраструктуры. Файл инвентаря вы сможете создать на основе шаблона. Каждый дистрибутив содержит файл установщика install.sh и следующие шаблоны файла инвентаря:
- single.inventory.yml.template
- distributed.inventory.yml.template
- expand.inventory.yml.template
- k0s.inventory.yml.template
KUMA размещает свои файлы в папке /opt, поэтому мы рекомендуем сделать /opt отдельным разделом и выделить под него все дисковое пространство, за исключением 16 ГБ для операционной системы.
Установка KUMA выполняется одинаково на всех хостах при помощи установщика и подготовленного вами файла инвентаря, в котором вы опишете конфигурацию. Мы рекомендуем заранее продумать схему установки.
Доступны следующие варианты установки:
- Установка на одном сервере
Схема установки на одном сервере
Вы можете установить все компоненты KUMA на одном сервере: в файле инвентаря single.inventory.yml для всех компонентов следует указывать один сервер. Установка "все в одном" может обеспечить обработку небольшого потока событий - до 10000 EPS. Если вы планируете использовать много макетов панели мониторинга и обрабатывать большой объем поисковых запросов, одного сервера может не хватить. Мы рекомендуем выбрать распределенную установку.
- Распределенная установка
Схема распределенной установки
Вы можете установить сервисы KUMA на разных серверах: конфигурацию для распределенной установки вы можете описать в файле инвентаря distributed.inventory.yml.
- Распределенная установка в отказоустойчивой конфигурации
Вы можете установить Ядро KUMA в кластере Kubernetes для обеспечения отказоустойчивости. Используйте файл инвентаря k0s.inventory.yml для описания.
Требования к установке программы
Общие требования к установке программы
Перед развертыванием программы убедитесь, что выполнены следующие условия:
- Серверы, предназначенные для установки компонентов, соответствуют аппаратным и программным требованиям.
- Порты, которые KUMA займет при установке, доступны.
- Адресация компонентов KUMA осуществляется по полному доменному имени FQDN хоста. Перед установкой программы убедитесь, что в поле
Static hostname
возвращается правильное имя FQDN хоста. Для этого выполните следующую команду:hostnamectl status
- Имя сервера, на котором запускается установщик, отличается от
localhost
илиlocalhost.<
домен
>
. - Настроена синхронизация времени на всех серверах с сервисами KUMA по протоколу Network Time Protocol (NTP).
Требования к установке на операционных системах Oracle Linux и Astra Linux
|
Oracle Linux |
Astra Linux |
---|---|---|
Версия Python |
3.6 или выше |
3.6 или выше |
Модуль SELinux |
Выключен |
Выключен |
Система управления пакетами |
pip3 |
pip3 |
Основные пакеты |
|
Пакеты можно установить с помощью команды:
|
Зависимые пакеты |
– |
Если вы собираетесь из KUMA обращаться к базам данных Oracle DB, требуется установить пакет Astra Linux libaio1. |
Пакеты, которые нужно установить на устройстве с Ядром KUMA для корректного формирования отчетов и возможности их скачивания |
|
|
Уровень прав пользователя, необходимый для установки программы |
– |
Пользователю, под которым вы собираетесь устанавливать программу, требуется присвоить необходимый уровень прав с помощью следующей команды:
|
Порты, используемые KUMA при установке
Для правильной работы программы нужно убедиться, что компоненты KUMA могут взаимодействовать с другими компонентами и программами по сети через протоколы и порты, указанные во время установки компонентов KUMA.
Перед установкой Ядра на устройстве убедитесь, что следующие порты свободны:
- 9090: используется Victoria Metrics.
- 8880: используется VMalert.
- 27017: используется MongoDB.
В таблице ниже показаны значения сетевых портов по умолчанию. Порты открываются установщиком автоматически при установке 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 |
7209 |
От родительского сервера с компонентом Ядро KUMA к дочернему серверу с компонентом Ядро KUMA. |
Внутренняя коммуникация родительского узла с дочерним узлом в режиме иерархии. |
TCP |
7210 |
От всех компонентов KUMA на сервер Ядра KUMA. |
Получение конфигурации KUMA от сервера Ядра KUMA. |
TCP |
7220 |
|
|
TCP |
7221 и другие порты, используемые для установки сервисов в качестве значения параметра --api.port <порт> |
От Ядра KUMA к сервисам KUMA. |
Администрирование сервисов из веб-интерфейса KUMA. |
TCP |
7223 |
К серверу Ядра KUMA. |
Порт, используемый по умолчанию для API-запросов. |
TCP |
8001 |
От Victoria Metrics к серверу ClickHouse. |
Получение метрик работы сервера ClickHouse. |
TCP |
9000 |
От клиента ClickHouse к узлу кластера ClickHouse. |
Запись и получение данных в кластере ClickHouse. |
Порты, используемые предустановленными ресурсами из состава OOTB
Порты открываются установщиком автоматически при установке KUMA.
Порты, используемые предустановленными ресурсами из состава OOTB:
- 7230/tcp
- 7231/tcp
- 7232/tcp
- 7233/tcp
- 7234/tcp
- 7235/tcp
- 5140/tcp
- 5140/udp
- 5141/tcp
- 5144/udp
Трафик Ядра KUMA в отказоустойчивой конфигурации
В таблице "Трафик Ядра KUMA в отказоустойчивой конфигурации" указаны инициатор соединения (источник) и назначение. Номер порта на инициаторе может быть динамическим. Обратный трафик в рамках установленного соединения не должен блокироваться.
Трафик Ядра KUMA в отказоустойчивой конфигурации
Источник |
Назначение |
Порт назначения |
Тип |
---|---|---|---|
Внешние сервисы KUMA |
Балансировщик нагрузки |
7209 |
TCP |
Внешние сервисы KUMA |
Балансировщик нагрузки |
7210 |
TCP |
Внешние сервисы KUMA |
Балансировщик нагрузки |
7220 |
TCP |
Внешние сервисы KUMA |
Балансировщик нагрузки |
7222 |
TCP |
Внешние сервисы KUMA |
Балансировщик нагрузки |
7223 |
TCP |
Рабочий узел |
Балансировщик нагрузки |
6443 |
TCP |
Рабочий узел |
Балансировщик нагрузки |
8132 |
TCP |
Управляющий узел |
Балансировщик нагрузки |
6443 |
TCP |
Управляющий узел |
Балансировщик нагрузки |
8132 |
TCP |
Управляющий узел |
Балансировщик нагрузки |
9443 |
TCP |
Рабочий узел |
Внешние сервисы KUMA |
В зависимости от настроек при создании сервиса. |
TCP |
Балансировщик нагрузки |
Рабочий узел |
7209 |
TCP |
Балансировщик нагрузки |
Рабочий узел |
7210 |
TCP |
Балансировщик нагрузки |
Рабочий узел |
7220 |
TCP |
Балансировщик нагрузки |
Рабочий узел |
7222 |
TCP |
Балансировщик нагрузки |
Рабочий узел |
7223 |
TCP |
Внешние сервисы KUMA |
Рабочий узел |
7209 |
TCP |
Внешние сервисы KUMA |
Рабочий узел |
7210 |
TCP |
Внешние сервисы KUMA |
Рабочий узел |
7220 |
TCP |
Внешние сервисы KUMA |
Рабочий узел |
7222 |
TCP |
Внешние сервисы KUMA |
Рабочий узел |
7223 |
TCP |
Рабочий узел |
Рабочий узел |
179 |
TCP |
Рабочий узел |
Рабочий узел |
9500 |
TCP |
Рабочий узел |
Рабочий узел |
10250 |
TCP |
Рабочий узел |
Рабочий узел |
51820 |
UDP |
Рабочий узел |
Рабочий узел |
51821 |
UDP |
Управляющий узел |
Рабочий узел |
10250 |
TCP |
Балансировщик нагрузки |
Управляющий узел |
6443 |
TCP |
Балансировщик нагрузки |
Управляющий узел |
8132 |
TCP |
Балансировщик нагрузки |
Управляющий узел |
9443 |
TCP |
Рабочий узел |
Управляющий узел |
6443 |
TCP |
Рабочий узел |
Управляющий узел |
8132 |
TCP |
Рабочий узел |
Управляющий узел |
10250 |
TCP |
Управляющий узел |
Управляющий узел |
2380 |
TCP |
Управляющий узел |
Управляющий узел |
6443 |
TCP |
Управляющий узел |
Управляющий узел |
9443 |
TCP |
Управляющий узел |
Управляющий узел |
10250 |
TCP |
Консоль управления кластером (CLI) |
Балансировщик нагрузки |
6443 |
TCP |
Консоль управления кластером (CLI) |
Управляющий узел |
6443 |
TCP |
Синхронизация времени на серверах
Чтобы настроить синхронизацию времени на серверах:
- Установите chrony с помощью следующей команды:
sudo apt install chrony
- Настройте синхронизацию системного времени с NTP-сервером:
- Убедитесь, что виртуальная машина имеет доступ в интернет.
Если доступ есть, вы можете перейти к шагу b.
Если доступ отсутствует, отредактируйте файл
/etc/chrony.conf
, заменив значение2.pool.ntp.org
на имя или IP-адрес внутреннего NTP-сервера вашей организации. - Запустите сервис синхронизации системного времени, выполнив следующую команду:
sudo systemctl enable --now chronyd
- Через несколько секунд выполните следующую команду:
sudo timedatectl | grep 'System clock synchronized'
Если системное время синхронизировано верно, вывод будет содержать строку System clock synchronized: yes.
- Убедитесь, что виртуальная машина имеет доступ в интернет.
Синхронизация настроена.
В началоО файле инвентаря
Установка, обновление и удаление компонентов KUMA производится из папки с распакованным установщиком kuma-ansible-installer с помощью инструмента Ansible и созданного вами файла инвентаря. Вы можете указать значения параметров конфигурации KUMA в файле инвентаря, а установщик использует эти значения при развертывании, обновлении и удалении программы. Файл инвентаря имеет формат YAML.
Вы можете создать файл инвентаря на основе шаблонов, включенных в поставку. Доступны следующие шаблоны:
- single.inventory.yml.template – используется для установки KUMA на одном сервере. Содержит минимальный набор параметров, оптимизированный для установки на одном устройстве, без использования кластера Kubernetes.
- distributed.inventory.yml.template – используется для первоначальной распределенной установки KUMA без использования кластера Kubernetes, расширения установки "все в одном" до распределенной и для обновления KUMA.
- expand.inventory.yml.template – используется в ряде сценариев изменения конфигурации: для добавления серверов коллекторов и серверов корреляторов, для расширения существующего кластера хранения и добавления нового кластера хранения. Если вы используете этот файл инвентаря для изменения конфигурации, установщик не останавливает сервисы во всей инфраструктуре. Установщик может останавливать только те сервисы, которые размещены на хостах, перечисленных в файле инвентаря expand.inventory.yml, если вы повторно используете файл инвентаря.
- k0s.inventory.yml.template – используется для установки или переноса KUMA в кластер Kubernetes.
Мы рекомендуем сохранить файл инвентаря, который вы использовали для установки программы. С его помощью вы можете дополнить систему компонентами или удалить KUMA.
В началоПараметры конфигурации KUMA в файле инвентаря
Файл инвентаря может включать следующие блоки:
all
kuma
kuma_k0s
Для каждого хоста должен быть указан FQDN в формате <имя хоста
>.<домен
> или IP-адрес в формате ipv4 или ipv6.
Пример: hosts: hostname.example.com: ip: 0.0.0.0 или ip: ::%eth0 |
Блок all
В этом блоке указываются переменные, которые распространяются на все хосты, указанные в инвентаре, включая неявно заданный localhost, на котором запущена установка. Переменные можно переопределять на уровне групп хостов или даже отдельных хостов.
Пример переопределения переменных в файле инвентаря
В следующей таблице приведен список возможных переменных в разделе vars и их описание.
Список возможных переменных в разделе vars
Переменная |
Описание |
Возможные значения |
---|---|---|
|
Cпособ подключения к целевым машинам. |
|
|
Имя пользователя, от которого производится подключение к целевым машинам и установка компонентов. |
Если пользователь root на целевых машинах заблокирован, нужно использовать имя пользователя, имеющего право на подключение по SSH и повышение привилегий через su или sudo. |
|
Признак необходимости повышения привилегий пользователя, от имени которого осуществляется установка компонентов KUMA. |
|
|
Способ повышения привилегий пользователя, от имени которого осуществляется установка компонентов KUMA . |
|
|
Путь к закрытому ключу в формате /<путь>/.ssh/id_rsa. Эту переменную необходимо задать, если требуется указать файл ключа, отличный от используемого по умолчанию: ~/.ssh/id_rsa. |
|
|
Признак разворачивания компонент KUMA в кластере Kubernetes. |
|
|
Признак перемещения компонент KUMA в кластере Kubernetes. |
|
|
Признак отсутствия подключения к интернету. |
– значение по умолчанию для шаблона k0s.inventory.yml. |
|
Признак регистрации машин в DNS-зоне вашей организации. В этом случае установщик автоматически дополнит файлы /etc/hosts на машинах, куда устанавливаются компоненты KUMA, IP-адресами машин из файла инвентаря. Указанные IP-адреса должны быть уникальными. |
|
|
Признак создания предустановленных сервисов при установке. |
|
|
Признак установки KUMA в окружениях с ограниченными вычислительными ресурсами. В этом случае Ядро может быть установлено на хосте с 4 ГБ свободного дискового пространства. По умолчанию переменная отсутствует. |
|
Блок kuma
В этом блоке перечисляются параметры компонентов KUMA, развернутых вне кластера Kubernetes.
В блоке доступны следующие разделы:
vars
–
в этом разделе можно указать переменные, которые распространяются на все хосты, указанные в блокеkuma
.children
– в этом разделе можно перечислить группы параметров компонентов:kuma_core
– параметры Ядра KUMA. Может содержать только один хост.kuma_collector
– параметры коллекторов KUMA. Может содержать несколько хостов.kuma_correlator
– параметры корреляторов KUMA. Может содержать несколько хостов.kuma_storage
– параметры узлов хранилища KUMA. Может содержать несколько хостов.
Блок kuma_k0s
В этом блоке задаются параметры кластера Kubernetes, использование которого обеспечивает отказоустойчивость KUMA. Этот блок есть только в файле инвентаря на основе шаблона k0s.inventory.yml.template.
Минимальная конфигурация, на которую можно произвести установку – один контроллер, совмещенный с рабочим узлом. Данная конфигурация не обеспечивает отказоустойчивости Ядра и служит для демонстрации возможностей или проверки программной среды.
Для реализации отказоустойчивости необходимы 2 выделенных контроллера кластера и балансировщик нагрузки. Для промышленной эксплуатации рекомендуется использовать выделенные рабочие узлы и контроллеры. Если контроллер кластера находится под рабочей нагрузкой и под (англ. pod) с Ядром KUMA размещается на контроллере, отключение контроллера приведет к полной потере доступа к Ядру.
В блоке доступны следующие разделы:
vars
– в этом разделе можно указать переменные, которые распространяются на все хосты, указанные в блокеkuma
.сhildren
– в этом разделе задаются параметры кластера Kubernetes, использование которого обеспечивает отказоустойчивость KUMA.
В таблице ниже приведен список возможных переменных в разделе vars
и их описание.
Список возможных переменных в разделе vars
Группа переменных |
Описание |
|
---|---|---|
|
FQDN балансировщика нагрузки. Балансировщик пользователь устанавливает самостоятельно. Если внутри группы указать параметр |
|
|
Хост, выполняющий роль выделенного главного контроллера кластера. |
Группы для указания главного контроллера. Хост необходимо задать только в одной из них. |
|
Хост, совмещающий роль главного контроллера и рабочего узла кластера. |
|
|
Хосты, выполняющие роль выделенного контроллера кластера. |
Группы для указания второстепенных контроллеров. |
|
Хосты, совмещающие роль контроллера и рабочего узла кластера. |
|
|
Рабочие узлы кластера. |
Для каждого хоста в этом блоке должен быть указан его уникальный FQDN и IP-адрес в параметре ansible_host
, кроме хоста в разделе kuma_lb
– для него должен быть указан FQDN. Хосты в группах не должны повторяться.
Для каждого рабочего узла кластера и для контроллера кластера, совмещенного с рабочим узлом, должен быть указан параметр extra_args: "--labels=kaspersky.com/kuma-core=true,kaspersky.com/kuma-ingress=true,node.longhorn.io/create-default-disk=true"
.
Установка на одном сервере
Чтобы установить компоненты KUMA на одном сервере, выполните следующие шаги:
- Убедитесь, что соблюдены аппаратные и программные требования, а также требования к установке KUMA.
- Подготовьте файл инвентаря single.inventory.yml.
Используйте шаблон файла инвентаря single.yml.template, который входит в поставку, чтобы создать файл инвентаря single.inventory.yml и описать в нем сетевую структуру компонентов программы. С помощью single.inventory.yml установщик развернет KUMA.
- Установите программу.
Установите программу и выполните вход в веб-интерфейс, используя учетные данные по умолчанию.
При необходимости вы можете разнести компоненты программы на разные серверы, чтобы продолжить работу в распределенной конфигурации.
Подготовка файла инвентаря single.inventory.yml
Установка, обновление и удаление компонентов KUMA производится из папки с распакованным установщиком с помощью инструмента Ansible и созданного пользователем файла инвентаря в формате YML с перечнем хостов компонентов KUMA и других параметров. Если вы хотите установить все компоненты KUMA на одном сервере, следует указать в файле инвентаря один и тот же хост для всех компонентов.
Чтобы создать файл инвентаря для установки на одном сервере:
- Скопируйте архив с установщиком
kuma-ansible-installer-<
номер версии
>.tar.gz
на сервер и распакуйте его с помощью следующей команды (потребуется около 2 ГБ дискового пространства):sudo tar -xpf kuma-ansible-installer-<
номер версии
>.tar.gz
- Перейдите в директорию установщика KUMA, выполнив следующую команду:
cd kuma-ansible-installer
- Скопируйте шаблон single.inventory.yml.template и создайте файл инвентаря с именем single.inventory.yml:
cp single.inventory.yml.template single.inventory.yml
- Отредактируйте параметры файла инвентаря single.inventory.yml.
Если вы хотите, чтобы при установке были созданы предустановленные сервисы, присвойте параметру deploy_example_services значение true.
deploy_example_services: true
Предустановленные сервисы появятся только при первичной установке KUMA. При обновлении системы с помощью того же файла инвентаря предустановленные сервисы повторно созданы не будут.
- Замените в файле инвентаря все строки
kuma.example.com
на имя хоста, на который следует установить компоненты KUMA.
Файл инвентаря создан. С его помощью можно установить KUMA на одном сервере.
Мы рекомендуем сохранить файл инвентаря, который вы использовали для установки программы. С его помощью вы можете дополнить систему компонентами или удалить KUMA.
Пример файла инвентаря для установки на одном сервере
В началоУстановка программы на одном сервере
Вы можете установить все компоненты KUMA на одном сервере с помощью инструмента Ansible и файла инвентаря single.inventory.yml.
Чтобы установить KUMA на одном сервере:
- Скачайте на сервер дистрибутив KUMA kuma-ansible-installer-<
номер сборки
>.tar.gz и распакуйте его. Архив распаковывается в папку kuma-ansibleinstaller. - Войдите в папку с распакованным установщиком.
- Поместите в папку <папка установщика>/roles/kuma/files/ файл с лицензионным ключом.
Файл ключа должен иметь название license.key.
sudo cp <
файл ключа
>.key <
папка установщика
>/roles/kuma/files/license.key
- Запустите установку компонентов с использованием подготовленного файла инвентаря single.inventory.yml с помощью следующей команды:
sudo ./install.sh single.inventory.yml
- Примите условия Лицензионного соглашения.
Если вы не примете условия Лицензионного соглашения, программа не будет установлена.
В результате все компоненты KUMA установлены. По окончании установки войдите в веб-интерфейс KUMA и в строке браузера введите адрес веб-интерфейса KUMA, а затем на странице входа введите учетные данные.
Адрес веб-интерфейса KUMA – https://<
FQDN хоста, на котором установлена KUMA
>:7220
.
Учетные данные для входа по умолчанию:
- логин – admin
- пароль – mustB3Ch@ng3d!
После первого входа измените пароль учетной записи admin
Мы рекомендуем сохранить файл инвентаря, который вы используете для установки программы. С помощью этого файла инвентаря можно будет дополнить систему компонентами или удалить KUMA.
Установку можно расширить до распределенной.
В началоРаспределенная установка
Распределенная установка KUMA происходит в несколько этапов:
- Проверка соблюдения аппаратных и программных требований, а также требований к установке KUMA.
- Подготовка контрольной машины.
Контрольная машина используется в процессе установки программы: на ней распаковывается и запускаются файлы установщика.
- Подготовка целевых машин.
На целевые машины устанавливаются компоненты программы.
- Подготовка файла инвентаря distributed.inventory.yml.
Создайте файл инвентаря с описанием сетевой структуры компонентов программы. С помощью этого файла инвентаря установщик развернет KUMA.
- Установка программы.
Установите программу и выполните вход в веб-интерфейс.
- Создание сервисов.
Создайте клиентскую часть сервисов в веб-интерфейсе KUMA и установите серверную часть сервисов на целевых машинах.
Сервисы KUMA следует устанавливать только после завершения установки KUMA. Мы рекомендуем устанавливать сервисы в такой последовательности: хранилище, коллекторы, корреляторы и агенты.
При развертывании нескольких сервисов KUMA на одном хосте в процессе установки требуется указать уникальные порты для каждого сервиса с помощью параметров
--api.port <порт>
.
При необходимости вы можете изменить сертификат веб-консоли KUMA на сертификат своей компании.
Подготовка контрольной машины
Чтобы подготовить контрольную машину для установки KUMA:
- Убедитесь, что соблюдены аппаратные и программные требования, а также требования к установке программы.
- Сгенерируйте SSH-ключ для аутентификации на SSH-серверах целевых машин, выполнив следующую команду:
sudo ssh-keygen -f /root/.ssh/id_rsa -N "" -C kuma-ansible-installer
Если на контрольной машине заблокирован доступ root по SSH, сгенерируйте SSH-ключ для аутентификации на SSH-серверах целевых машин с помощью пользователя из группы sudo:
sudo ssh-keygen -f /home/<
имя пользователя из группы sudo
>/.ssh/id_rsa -N "" -C kuma-ansible-installer
В результате ключ будет сгенерирован и сохранен в домашней директории пользователя. Вам следует указать полный путь к ключу в файле инвентаря в значении параметра ansible_ssh_private_key_file, чтобы ключ был доступен при установке.
- Убедитесь, что контрольная машина имеет сетевой доступ ко всем целевым машинам по имени хоста и скопируйте SSH-ключ на каждую целевую машину, выполнив следующую команду:
sudo ssh-copy-id -i /root/.ssh/id_rsa root@<
имя хоста контрольной машины
>
Если на контрольной машине заблокирован доступ root по SSH и вы хотите использовать ключ SSH из домашней директории пользователя из группы sudo, убедитесь, что контрольная машина имеет сетевой доступ ко всем целевым машинам по имени хоста и скопируйте SSH-ключ на каждую целевую машину, выполнив следующую команду:
sudo ssh-copy-id -i /home/<
имя пользователя из группы sudo
>/.ssh/id_rsa root@<
имя хоста контрольной машины
>
- Скопируйте архив с установщиком
kuma-ansible-installer-<version>.tar.gz
на контрольную машину и распакуйте его с помощью следующей команды (потребуется около 2 ГБ дискового пространства):sudo tar -xpf kuma-ansible-installer-<
номер версии
>.tar.gz
Контрольная машина готова для установки KUMA.
В началоПодготовка целевой машины
Чтобы подготовить целевую машину для установки компонентов KUMA:
- Убедитесь, что соблюдены аппаратные и программные требования, а также требования к установке.
- Установите имя хоста. Мы рекомендуем указывать FQDN. Например: kuma1.example.com.
Не следует изменять имя хоста KUMA после установки: это приведет к невозможности проверки подлинности сертификатов и нарушит сетевое взаимодействие между компонентами программы.
- Зарегистрируйте целевую машину в DNS-зоне вашей организации для преобразования имен хостов в IP-адреса.
Если в вашей организации не используется DNS-сервер, вы можете использовать для преобразования имен файл /etc/hosts. Содержимое файлов можно автоматически создать для каждой целевой машины при установке KUMA.
- Чтобы получить имя хоста, которое потребуется указать при установке KUMA, выполните следующую команду и запишите результат:
hostname -f
Целевая машина должна быть доступна по этому имени для контрольной машины.
Целевая машина готова для установки компонентов KUMA.
В началоПодготовка файла инвентаря distributed.inventory.yml
Чтобы создать файл инвентаря distributed.inventory.yml:
- Перейдите в директорию установщика KUMA, выполнив следующую команду:
cd kuma-ansible-installer
- Скопируйте шаблон distributed.inventory.yml.template и создайте файл инвентаря с именем distributed.inventory.yml:
cp distributed.inventory.yml.template distributed.inventory.yml
- Отредактируйте параметры файла инвентаря distributed.inventory.yml.
Мы рекомендуем сохранить файл инвентаря, который вы использовали для установки программы. С его помощью вы можете дополнить систему компонентами или удалить KUMA.
Пример файла инвентаря для Распределенной схемы установки
В началоУстановка программы в распределенной конфигурации
Установка KUMA производится помощью инструмента Ansible и YML-файла инвентаря. Установка производится с контрольной машины, при этом все компоненты KUMA устанавливаются на целевых машинах.
Чтобы установить KUMA:
- На контрольной машине войдите в папку с распакованным установщиком.
cd kuma-ansible-installer
- Поместите в папку <папка установщика>/roles/kuma/files/ файл с лицензионным ключом.
Файл ключа должен иметь название license.key.
- Запустите установщик, находясь в папке с распакованным установщиком:
sudo ./install.sh distributed.inventory.yml
- Примите условия Лицензионного соглашения.
Если вы не примете условия Лицензионного соглашения, программа не будет установлена.
Компоненты KUMA будут установлены. На экране будет отображен URL веб-интерфейса KUMA и указано имя пользователя и пароль, которые необходимо использовать для доступа к веб-интерфейсу.
По умолчанию адрес веб-интерфейса KUMA – https://
<FQDN или IP-адрес компонента core>
:7220
.
Учетные данные для входа по умолчанию (после первого входа требуется изменить пароль учетной записи admin):
- логин – admin
- пароль – mustB3Ch@ng3d!
Мы рекомендуем сохранить файл инвентаря, который вы использовали для установки программы. С его помощью вы можете дополнить систему компонентами или удалить KUMA.
В началоИзменение самоподписанного сертификата веб-консоли
Перед изменением сертификата KUMA сделайте резервную копию действующего сертификата и ключа с именами external.cert.old и external.key.old.
После установки Ядра KUMA установщик создает следующие сертификаты в папке /opt/kaspersky/kuma/core/certificates:
- Самоподписанный корневой сертификат ca.cert с ключом ca.key.
Подписывает все другие сертификаты, которые используются для внутренней связи между компонентами KUMA.
- Сертификат internal.cert, подписанный корневым сертификатом, и ключ internal.key сервера Ядра.
Используется для внутренней связи между компонентами KUMA.
- Сертификат веб-консоли KUMA external.cert и ключ external.key.
Используется в веб-консоли KUMA и для запросов REST API.
Вы можете использовать сертификат и ключ своей компании вместо самоподписанного сертификата веб-консоли. Например, если вы хотите заменить сертификат веб-консоли с самоподписанного CA Core на сертификат, выпущенный корпоративным CA, необходимо предоставить external.cert и незашифрованный external.key в формате PEM.
В следующем примере показано, как заменить самоподписанный CA Core с помощью корпоративного сертификата в формате PFX. Вы можете использовать инструкцию в качестве примера и адаптировать шаги в соответствии со своми потребностями.
Чтобы заменить сертификат веб-консоли KUMA на сертификат external:
- Переключитесь на работу под пользователем с правами root:
sudo -i
- Перейдите в директорию с сертификатами:
cd /opt/kaspersky/kuma/core/certificates
- Сделайте резервную копию действующего сертификата и ключа:
mv external.cert external.cert.old && mv external.key external.key.old
- В OpenSSL конвертируйте файл PFX в сертификат и зашифрованный ключ в формате PEM:
openssl pkcs12 -in kumaWebIssuedByCorporateCA.pfx -nokeys -out external.cert
openssl pkcs12 -in kumaWebIssuedByCorporateCA.pfx -nocerts -nodes -out external.key
При выполнении команды потребуется указать пароль от ключа PFX (Enter Import Password).
В результате получен сертификат external.cert и ключ external.key в формате PEM.
- Поместите полученные файлы сертификата external.cert и ключа external.key в директорию /opt/kaspersky/kuma/core/certificates.
- Смените владельца файлов ключа:
chown kuma:kuma external.cert external.key
- Перезапустите KUMA:
systemctl restart kuma-core
- Обновите страницу или перезапустите браузер, с помощью которого вы работаете в веб-интерфейсе KUMA.
Сертификат и ключ вашей компании заменены.
В началоРаспределенная установка в отказоустойчивой конфигурации
Отказоустойчивость KUMA обеспечивается путем внедрения Ядра KUMA в кластер Kubernetes, развернутый установщиком KUMA.
Конфигурация кластера Kubernetes задается в файле инвентаря. Она должна включать один контроллер (выделенный или совмещенный с рабочим узлом), как минимум один рабочий узел (выделенный или совмещенный с контроллером), 0 и более выделенных рабочих узлов.
Для установки KUMA в отказоустойчивом исполнении используется установщик kuma-ansible-installer-ha-<номер сборки>.tar.gz.
При установке программы в отказоустойчивом исполнении Ядро KUMA помещается в кластер Kubernetes с помощью установщика и файла инвентаря. Поместить Ядро KUMA в кластер Kubernetes можно следующими способами:
- Установить KUMA в кластере Kubernetes.
- Перенести Ядро существующей установки KUMA в кластер Kubernetes.
Об отказоустойчивости KUMA
Отказоустойчивость KUMA обеспечивается путем внедрения Ядра KUMA в кластер Kubernetes, развернутый установщиком KUMA, а также использования внешнего балансировщика TCP-трафика.
В Kubernetes существует 2 роли узлов:
- контроллеры (control-plane) – узлы с данной ролью управляют кластером, хранят метаданные, распределяют рабочую нагрузку.
- рабочие (worker) – узлы с этой ролью несут полезную рабочую нагрузку, то есть размещают процессы KUMA.
Подробнее о требованиях к узлам кластера.
Для продуктивных инсталляций Ядра KUMA на Kubernetes критически важно выделить 3 обособленных узла с единственной ролью контроллера. Это позволит обеспечить отказоустойчивость самого кластера Kubernetes и гарантировать, что рабочая нагрузка (процессы KUMA и другие) не повлияет на задачи, связанные с управлением кластером Kubernetes. При этом, в случае использования средств виртуализации, следует убедиться, что данные узлы размещены на разных физических серверах и что на тех же физических серверах не присутствуют рабочие узлы.
В тех случаях, когда KUMA установлена для демонстрации, допускается использование узлов, которые совмещают роли контроллера и рабочего узла. Однако при расширении установки до распределенной необходимо переустановить кластер Kubernetes целиком, выделив 3 отдельных узла с ролью контроллера и, как минимум, 2 узла с ролью рабочего узла. Обновление KUMA до следующих версий при наличии узлов, совмещающих роли контроллера и рабочего узла, недоступно.
Совмещайте разные роли на одном узле кластера только при демонстрационном развертывании программы.
Доступность Ядра KUMA при различных сценариях:
- Выход из строя или отключение от сети рабочего узла, на котором развернут сервис Ядра KUMA.
Доступ к веб-интерфейсу KUMA пропадает. Через 6 минут Kubernetes инициирует перенос контейнера с Ядром на работающий узел кластера. После завершения развертывания, которое занимает менее одной минуты, веб-интерфейс KUMA снова доступен по URL, в которых используются FQDN балансировщика. Чтобы определить, на каком из хостов работает Ядро, в терминале одного из контроллеров выполните команду:
k0s kubectl get pod -n kuma -o wide
Когда вышедший из строя рабочий узел или доступ к нему восстанавливается, контейнер с Ядром не переносится с текущего рабочего узла. Восстановленный узел может участвовать в репликации дискового тома сервиса Ядра.
- Выход из строя или отключение от сети рабочего узла с репликой диска Ядра KUMA, на котором в данный момент не развернут сервис Ядра.
Доступ к веб-интерфейсу KUMA не пропадает по URL, в которых используется FQDN балансировщика. Сетевое хранилище создает реплику работающего дискового тома Ядра на других работающих узлах. При доступе к KUMA через URL с FQDN работающих узлов перерыва также не возникает.
- Потеря доступности одного или нескольких контроллеров кластера при сохранении кворума.
Рабочие узлы работают в обычном режиме. Перерыва в доступе к KUMA не возникает. Выход из строя контроллеров кластера, при котором кворум не обеспечивается оставшимися в работе контроллерами, ведет к потере управления кластером.
Соответствие количества используемых машин для обеспечения отказоустойчивости
Количество контроллеров при установке кластера
Минимальное количество контроллеров, необходимое для работы кластера (кворум)
Возможное количество неработающих контроллеров
1
1
0
2
2
0
3
2
1
4
3
1
5
3
2
6
4
2
7
4
3
8
5
3
9
5
4
- Одновременный выход из строя всех контроллеров кластера Kubernetes.
Кластером невозможно управлять, из-за чего его работоспособность будет нарушена.
- Одновременная потеря доступности всех рабочих узлов кластера с репликами тома Ядра и подом Ядра.
Доступ к веб-интерфейсу KUMA пропадает. Если утеряны все реплики, будет потеряна информация.
Дополнительные требования к установке программы
Если вы планируете защитить сетевую инфраструктуру KUMA с помощью программы Kaspersky Endpoint Security for Linux, необходимо сначала установить KUMA в кластере Kubernetes и только потом разворачивать Kaspersky Endpoint Security for Linux.
При установке KUMA в отказоустойчивом варианте, должны выполняться следующие требования:
- Общие требования к установке программы.
- На хостах, которые планируются под узлы кластера Kubernetes, не используются IP-адреса из следующих блоков Kubernetes
- serviceCIDR: 10.96.0.0/12
- podCIDR: 10.244.0.0/16
Также для адресов этих блоков исключен трафик на прокси-серверы.
- Установлен и настроен балансировщик нагрузки nginx (подробнее о настройке nginx). Для установки можно воспользоваться, например,следующей командой:
sudo yum install nginx
Если вы хотите, чтобы nginx был настроен автоматически в процессе установки KUMA, установите nginx и откройте к нему доступ по SSH так же, как для хостов кластера Kubernetes.
- На сервере балансировщика добавлен ключ доступа с устройства, с которого осуществляется установка KUMA.
- На сервере балансировщика в операционной системе НЕ включен модуль SELinux.
- На хостах установлены пакеты tar, systemctl, setfacl.
При установке KUMA автоматически проверяется соответствие хостов указанным ниже аппаратным требованиям. Если эти условия не выполняются, установка прерывается.
Проверку этих условий при установке для демонстрации можно отключить, указав в файле инвентаря переменную low_resources: true
.
- Количество ядер CPU (потоков) – 12 или больше.
- ОЗУ – 22528 МБ или больше.
- Объем свободного пространства на диске в разделе /opt/ – 1000 ГБ или больше.
- Если производится первичная установка, то в /var/lib/ должно быть не менее 32GB свободного места. Если установка кластера на данный узел ранее уже проводилась, то размер требуемого свободного пространства уменьшается на размер директории /var/lib/k0s.
Дополнительные требования при установке на операционной системе Astra Linux Special Edition
- Установка KUMA в отказоустойчивом варианте поддерживается на операционной системе Astra Linux Special Edition РУСБ.10015-01 (2022-1011SE17MD, оперативное обновление 1.7.2.UU.1). Требуется версия ядра 5.15.0.33 или выше.
- На машинах, предназначенных для развертывания кластера Kubernetes, установлены следующие пакеты:
- open-iscsi
- wireguard
- wireguard-tools
Пакеты можно установить с помощью следующей команды:
sudo apt install open-iscsi wireguard wireguard-tools
Дополнительные требования при установке на операционной системе Oracle Linux
На машинах, предназначенных для развертывания кластера Kubernetes, установлены следующие пакеты:
- iscsi-initiator-utils
- wireguard-tools
Перед установкой пакетов необходимо добавить репозиторий EPEL в качестве источника: sudo yum install oracle-epel-release-el8
Пакеты можно установить с помощью следующей команды:
sudo yum install iscsi-initiator-utils wireguard-tools
Управление Kubernetes и доступ к KUMA
При установке KUMA в отказоустойчивом варианте, в директории установщика создается файл artifacts/k0s-kubeconfig.yml, содержащий реквизиты, необходимые для подключения к созданному кластеру Kubernetes. Такой же файл создается на основном контроллере в домашней директории пользователя, заданного в файле инвентаря как ansible_user.
Для обеспечения возможности мониторинга и управления кластером Kubernetes файл k0s-kubeconfig.yml необходимо сохранить в месте, доступном для администраторов кластера. Доступ к файлу следует ограничить.
Управление кластером Kubernetes
Для мониторинга и управления кластером можно использовать программу k0s, устанавливаемую на все узлы кластера при развертывании KUMA. Например, для просмотра нагрузки на рабочие узлы можно использовать команду:
k0s kubectl top nodes
Доступ к Ядру KUMA
Доступ к Ядру KUMA осуществляется по URL https://<FQDN рабочего узла>:<порт рабочего узла>
. Доступные порты: 7209, 7210, 7220, 7222, 7223. По умолчанию для подключения к веб-интерфейсу Ядра KUMA используется порт 7220. Доступ может осуществляться через любой рабочий узел, в параметре extra_args
которого содержится значение kaspersky.com/kuma-ingress=true
.
Одновременно войти в веб-интерфейс KUMA на нескольких рабочих узлах с помощью одинаковых учетных данных невозможно: активным остается только подключение, установленное последним.
В случае использования внешнего балансировщика нагрузки в конфигурации кластера Kubernetes с обеспечением отказоустойчивости доступ к портам Ядра KUMA осуществляется через FQDN балансировщика.
В началоЧасовой пояс в кластере Kubernetes
Внутри кластера Kubernetes всегда используется часовой пояс UTC+0, поэтому при обращении с данными, созданными Ядром KUMA, развернутом в отказоустойчивом варианте, следует учитывать эту разницу во времени:
- В событиях аудита в поле
DeviceTimeZone
будет указан часовой пояс UTC+0. - В сформированных отчетах пользователь будет видеть разницу между временем формирования отчета и временем браузера.
- В панели мониторинга пользователь будет видеть разницу между временем в виджете (отображается время браузера пользователя) и временем в выгрузке данных виджета в CSV-файле (отображается время внутри кластера Kubernetes).
Резервное копирование KUMA
KUMA позволяет выполнять резервное копирование базы данных Ядра KUMA и сертификатов. Функция резервного копирования предназначена для восстановления KUMA – для переноса или копирования ресурсов следует использовать функции экспорта и импорта ресурсов.
Резервное копирование можно осуществить следующими способами:
- с помощью REST API;
- с помощью исполняемого файла /opt/kaspersky/kuma/kuma.
Метод резервного копирования KUMA с помощью исполняемого файла kuma будет недоступен в версиях KUMA выше 2.1.
Особенности резервного копирования KUMA
- Восстановление данных из резервной копии поддерживается только при сохранении версии KUMA.
- Резервное копирование коллекторов не требуется, за исключением коллекторов с SQL-подключением. При восстановлении таких коллекторов следует вернуть к исходному начальное значение идентификатора.
- Если после восстановления KUMA не включается, рекомендуется обнулить базу данных kuma в MongoDB.
Резервное копирование KUMA с помощью файла kuma
Чтобы выполнить резервное копирование:
- Войдите в ОС сервера, на котором установлено Ядро KUMA.
- Выполните следующую команду исполняемого файла kuma:
sudo /opt/kaspersky/kuma/kuma tools backup --dst <путь к директории для резервной копии> --certificates
Резервная копия создана.
Чтобы восстановить данные из резервной копии:
- Войдите в ОС сервера, на котором установлено Ядро KUMA.
- Остановите Ядро KUMA, выполнив следующую команду:
sudo systemctl stop kuma-core
- Выполните следующую команду:
sudo /opt/kaspersky/kuma/kuma tools restore --src <путь к директории с резервной копией> --certificates
- Запустите KUMA, выполнив следующую команду:
sudo systemctl start kuma-core
- В веб-интерфейсе KUMA в разделе Ресурсы → Активные сервисы выберите все сервисы и нажмите на кнопку Сбросить сертификат.
- Установите сервисы заново с теми же портами и идентификаторами.
Данные восстановлены из резервной копии.
В началоИзменение конфигурации KUMA
Доступны следующие изменения конфигурации KUMA.
- Расширение установки "все в одном" до распределенной.
- Добавление серверов для коллекторов в распределенную установку.
- Добавление серверов для корреляторов в распределенную установку.
- Добавление серверов в существующий кластер хранения.
- Добавление дополнительного кластера хранения.
- Удаление серверов из распределенной установки.
- Удаление кластера хранения из распределенной установки.
- Перенос Ядра KUMA в новый кластер Kubernetes.
Обновление предыдущих версий KUMA
Обновление выполняется одинаково на всех хостах с использованием установщика и файла инвентаря. Если вы используете версию 1.5 или 1.6 и хотите обновить KUMA до версии 2.1.x, сначала выполните обновление до 2.0.x, а затем с 2.0.x до 2.1.x.
Обновление с версии 2.0.x до 2.1.x
Обновление с версии 2.1.x до 2.1.3
В началоУстранение ошибок при обновлении
При обновлении KUMA вы можете столкнуться со следующими ошибками:
Устраните ошибки, чтобы успешно завершить обновление.
В началоУдаление KUMA
При удалении KUMA используется инструмент Ansible и созданный пользователем файл инвентаря.
Чтобы удалить KUMA:
- На контрольной машине войдите в директорию установщика:
cd kuma-ansible-installer
- Выполните следующую команду:
sudo ./uninstall.sh <файл инвентаря>
KUMA и все данные программы удалены с серверов.
Базы данных, которые использовались KUMA (например, база данных хранилища ClickHouse), и содержащуюся в них информацию следует удалить отдельно.
Особенности удаления KUMA, установленной в отказоустойчивом варианте
Состав удаляемых компонентов зависит от значения параметра deploy_to_k8s
в файле инвентаря, используемого для удаления KUMA:
true
– удаляется созданный при установке KUMA кластер Kubernetes.false
– из кластера Kubernetes удаляются все компоненты KUMA, кроме Ядра. Сам кластер не удаляется.
Помимо установленных вне кластера компонентов KUMA на узлах кластера удаляются следующие директории и файлы:
- /usr/bin/k0s
- /etc/k0s/
- /var/lib/k0s/
- /usr/libexec/k0s/
- ~/k0s/ (для пользователя ansible_user)
- /opt/longhorn/
- /opt/cni/
- /opt/containerd
При удалении кластера возможен вывод на экран сообщений об ошибках, при котором работа установщика не прерывается.
- Для задач Delete KUMA transfer job и Delete KUMA pod такие сообщения можно игнорировать.
- Для задач Reset k0s (при сообщении об ошибке, содержащем текст "To ensure a full reset, a node reboot is recommended.") и Delete k0s Directories and files (при сообщении об ошибке, содержащем текст "Ошибка ввода/вывода: '/var/lib/k0s/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/") рекомендуется перезагрузить хост, к которому относится ошибка и выполнить повторное удаление KUMA с тем же файлом инвентаря.
После удаления KUMA необходимо перезагрузить хосты, на которых были установлены компоненты KUMA или Kubernetes.
В начало