Обновление/Установка KUMA
- Обновление/Установка KUMA версии до 2.0.Х (инсталляция «все в одном»)
- Обновление/Установка KUMA версии до 2.0.Х (распределенная инсталляция)
- Обновление/Установка KUMA версии от 2.1.Х
- Установка KUMA версии от 2.1.Х с отказоустойчивым ядром
- Установка KUMA на ОС с установленным антивирусом
- Подготовка Astra Linux 1.7.х (с картинками)
Обновление/Установка KUMA версии до 2.0.Х (инсталляция «все в одном»)
- Создайте резервную копию ресурсов и сертификатов, см. советующий раздел в этой инструкции.
- Распакуйте архив:
tar -xvf kuma-ansible-installer-(ВЕРСИЯ).tar.gz
- Перейдите в распакованную папку:
cd kuma-ansible-installer
- Выполните команду копирования шаблона:
cp single.inventory.yml.template single.inventory.yml
- Для автоподстановки имени хоста в конфигурацию, используйте команду ниже:
Либо подставьте ранее использованный файл при обновлении. В случае ручной правки файла старайтесь не добавлять лишних пробелов. Если деморесурсы НЕ нужно разворачивать укажите в файлеsed -i "s/kuma.example.com/$(hostname -f)/g" single.inventory.yml
single.inventory.yml
в строке (значение false)deploy_example_services: false
. - Добавить файл лицензии в папку
kuma-ansible-installer/roles/kuma/files
и переименовать наlicense.key
- Входим в ОС из-под суперпользователя (root):
sudo -i
- Запустить установку:
./install.sh single.inventory.yml
- Должно все завершиться скриншотом ниже, ошибки отсутствуют (failed=0):
- Зайдите на веб интерфейс, проверьте статус Storage. Для этого перейдите во вкладку: Ресурсы - Активные сервисы. Если статус Storage отличается от зеленого (получить актуальный статус можно нажав кнопу обновить), то выполните нижеследующие команды.
После проделанных выше инструкций все демо-сервисы должны быть в статусе зеленый. Корректность работы можно проверить, перейдя во вкладку События и нажав на значок увеличительного стекла (Поиск), должны появиться события, поступающие KUMA или Сообщение «События не найдены». Если при поиске возникает ошибка, то необходимо проверить статусы сервисов в веб интерфейсе KUMA. Провести первичный траблшутинг по этому документу и сообщить ответственному инженеру Лаборатории Касперского в случае неуспеха.
Обновление/Установка KUMA версии до 2.0.Х (распределенная инсталляция)
- Создайте резервную копию ресурсов и сертификатов, см. советующий раздел в этой книге.
- Распакуйте архив (операции выполняются на ядре системы KUMA):
tar -xvf kuma-ansible-installer-(ВЕРСИЯ).tar.gz
- Перейдите в распакованную папку:
cd kuma-ansible-installer
- Добавить файл лицензии в папку
kuma-ansible-installer/roles/kuma/files
и переименовать наlicense.key
:cp ПУТЬ_ДО_КЛЮЧА*.key roles/kuma/files/license.key
- Выполните команду копирования шаблона (либо подставьте ранее использованный файл при обновлении):
cp distributed.inventory.yml.template distributed.inventory.yml
- Добавьте публичный ключ SSH на все удаленные хосты в том числе и для хоста с которого происходит развертывание:
- На ВСЕХ хостах в конфигурации сервиса SSH должна быть включена опция удаленного входа от суперпользователя!
- На хосте с которого происходит развертывание сгенерируйте ключ командой (без указания пароля и доп. параметров):
ssh-keygen -t rsa
- Добавьте ключ по ssh на удаленные хосты и на сам хост развертывания:
ssh-copy-id login@remote_host_fqdn
- На ВСЕХ хостах в конфигурации сервиса SSH должна быть включена опция удаленного входа от суперпользователя!
- Отредактируйте файл инвентаря с командой:
nano distributed.inventory.yml
В случае ручной правки файла старайтесь не добавлять лишних пробелов.
Количество keeper (ZooKeeper) должно быть нечетным (минимум 3). Если, например, хранилища два, то в файле инвентаря укажите в storage: hosts: <полное_доменное_имя_машины>
: (этом может быть core, collector) с его IP адресом и значением keeper, по аналогии с другими записями. Например, если используется два хранилища, то конфигурация storage будет выглядеть следующим образом:
Для развертывания отдельного одного хранилища без кластера используйте следующие настройки в distributed.inventory.yml
:
Демонстрационные сервисы
Если Вы хотите, чтобы инсталлятор развернул демонстрационные сервисы, присвойте параметру deploy_example_services значение true (Только для новых инсталляций).
Генерация содержимого файла /etc/hosts
Если целевые машины НЕ зарегистрированы в DNS-зоне вашей организации, то присвойте параметру generate_etc_hosts значение true и для каждой машины в инвентаре, замените значения параметра ip 0.0.0.0 на актуальные IP-адреса.
Список целевых машин
В файле определены 4 группы, именованные аналогично ключевым компонентам KUMA: core, collector, correlator, storage. Помещая целевую машину в одну из групп, вы инструктируете инсталлятор установить на нее соответствующий компонент KUMA. В каждой группе замените строки с суффиксом *.example.com на актуальные имена хостов целевых машин.
- Группа core. Может содержать только одну целевую машину.
- Группа collector. Может содержать одну или несколько целевых машин.
- Группа сorrelator. Может содержать одну или несколько целевых машин.
- Группа storage. Может содержать одну или несколько целевых машин. Каждая машина должна иметь одну из следующих комбинаций параметров:
- shard + replica + keeper
- shard + replica
- keeper
Про устройство кластера хранилища можно почитать тут.
Если хранилище одно, то оставьте параметры shard + replica + keeper, как у kuma-storage-1.example.com
Перед началом установки инсталлятор KUMA выполнит валидацию инвентаря и укажет на ошибки, если таковые были допущены.
8. Входим в ОС из-под суперпользователя (root):
sudo -i
9. Запустите процесс инсталляции:
./install.sh distributed.inventory.yml
10. Выполните настройку storage на использование двух хранилищ. В точках назначения нужно добавить URL второго хранилища, (если используются отдельные keeper, то их не нужно указывать в точках назначения) пример ниже:
Корректность работы можно проверить, перейдя во вкладку События и нажав на значок увеличительного стекла (Поиск), должны появиться события, поступающие KUMA или Сообщение «События не найдены». Если при поиске возникает ошибка, то необходимо проверить статусы сервисов в веб интерфейсе KUMA. Провести первичный траблшутинг по этому документу и сообщить ответственному инженеру Лаборатории Касперского в случае неуспеха.
Обновление/Установка KUMA версии от 2.1.Х
Информация, приведенная на данной странице, является разработкой команды pre-sales и/или community KUMA и НЕ является официальной рекомендацией вендора.
Официальная документация по данному разделу приведена в Онлайн-справке на продукт: https://support.kaspersky.com/KUMA/2.1/ru-RU/217904.htm
Пункты 9, 10 и 16 данного раздела требуются только при обновлении с версии 2.0 на версию 2.1.0, рекомендуемая версия 2.1.3.49
Убедитесь, что все пункты из статьи подготовки в системе соблюдены
- Создайте резервную копию ресурсов и сертификатов, см. советующий раздел в этой книге.
- Распакуйте архив (операции выполняются на ядре системы KUMA):
tar -xvf kuma-ansible-installer-(ВЕРСИЯ).tar.gz
- Перейдите в распакованную папку:
cd kuma-ansible-installer
- Добавить файл лицензии в папку kuma-ansible-installer/roles/kuma/files и переименовать на license.key:
cp ПУТЬ_ДО_КЛЮЧА*.key roles/kuma/files/license.key
- Выполните команду копирования шаблона (либо подставьте ранее использованный файл single или distributed при обновлении, в случае первичной установки смотрите пример заполенения тут):
cp distributed.inventory.yml.template distributed.inventory.yml
Про устройство кластера хранилища можно почитать тут.
- ВАЖНО! Регистр написания хостнеймов в inventory должен совпадать с выводом значения на хостах команды
hostname -f
- ВАЖНО! Хостнейм при команде
hostname -f
должен содержать хотя бы одну точку, пример:kuma.local
- На серверах хранилищ, где используется роль Keeper, включите использование ipv6.
ВАЖНО! С сервера хранилища до ядра должен быть доступен 7220 порт. - Измените конфигурацию сервиса хранилища
/usr/lib/systemd/system/kuma-storage-<ID хранилища>.service
пропишите:
TimeoutSec=57600 systemctl daemon-reload
- При наличии доменных пользователей в системе выполните следующие команды:
/opt/kaspersky/kuma/mongodb/bin/mongo localhost/kuma db.users.updateMany({"accessMatrix":null},{$set: {"accessMatrix":{ "GET /resources" : false, "POST /resources/export" : false, "GET /services" : false, "POST /dictionaries/update" : false, "GET /assets" : false, "GET /dictionaries" : false, "POST /assets/import" : false, "POST /resources/upload" : false, "GET /users/whoami" : false, "GET /alerts" : false, "POST /events" : false, "GET /resources/download/:id" : false, "POST /alerts/close" : false, "GET /events/clusters" : false, "POST /resources/import" : false, "GET /activeLists" : false, "GET /tenants" : false, "POST /assets/delete" : false, "POST /resources/toc" : false, "POST /activeLists/import" : false}}}) systemctl restart kuma-core
- Активируйте (если он деактивирован) пользователя по умолчанию admin в веб интерфейсе и вспомните его пароль, он потребуется в процессе установки. Либо если используется пароль по умолчанию, можно запустить установку так:
-
./install.sh ./inventory.yml -e "accept_eula=yes default_admin_password=yes"
- Входим в ОС из-под суперпользователя (root), если это не было сделано ранее:
sudo -i
- Запустите установку:
./install.sh distributed.inventory.yml
- При наличии ошибки в конце установки
TASK [Start not orphaned KUMA storage services]
считаем установку успешной. Эта ошибка связана с таймаутом запуска ClickHouse, время старта процесса занимает ~10 минут. Убедитесь, что служба clickhouse потребляет ресурсы командой top.- Лог хранилища ведется в:
/opt/kaspersky/kuma/storage/<ID хранилища>/log/storage
- Лог хранилища ведется в:
- Если в KUMA была настроена интеграция с Active Directory и были заданы группы ролей пользователя, сразу после обновления программы необходимо выполнить на машине с Ядром KUMA запрос в монго. В противном случае параметры групп ролей пользователей могут быть потеряны:
/opt/kaspersky/kuma/mongodb/bin/mongo localhost/kuma var tenantID = db.tenants.findOne({ main: true })._id; db.settings.insert({_id: "f371fa1b-948e-45d2-a47c-86ddd67029ee", tenantID: tenantID, disabled: true, roleGroups: [], kind: 'adfs'});
- Зайдите на веб интерфейс ядра KUMA по адресу ядра -
https://<FQDN_CORE or IP_CORE>:7220
Учетные данные для входа по умолчанию:admin / mustB3Ch@ng3d!
В случае, если при установке произошел сбой (НЕ обновлении), перед последующей установкой рекомендуется выполнить uninstall.sh.
Установка KUMA версии от 2.1.Х с отказоустойчивым ядром
Отказоустойчивость KUMA обеспечивается путем внедрения ядра KUMA в кластер Kubernetes, развернутый установщиком KUMA. В качестве распределённого блочного хранилища для кластера используется Longhorn. Схема:
Для установки KUMA в отказоустойчивом исполнении используется установщик kuma-ansible-installer-ha-2.1. X.tar.gz. Конфигурация кластера Kubernetes задается в файле инвентаря k0s.inventory.yml
. Требования к устройствам для установки KUMA в Kubernetes - https://support.kaspersky.com/help/KUMA/3.0.2/ru-RU/217889.htm
Порты доступа для кластера ядра
Трафик KUMA core в отказоустойчивой конфигурации (трафик, в котором и источником и получателем выступают внешние сервисы 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 |
Минимально кластер должен включать:
- один контроллер (выделенный или совмещенный с рабочим узлом);
- один рабочий узел (выделенный, или совмещенный с контроллером);
- 0 и более выделенных рабочих узлов.
Минимальная конфигурация, на которую можно произвести установку - один контроллер, совмещенный с рабочим узлом. Данная конфигурация не обеспечивает отказоустойчивости core и служит для демонстрации возможностей/проверки программной среды.
Для реализации отказоустойчивости необходим выделенный контроллер кластера и минимум 2 рабочих узла. Если контроллер кластера содержит рабочую нагрузку и под (pod) с Core размещается на нем, то его отключение приведет к полной потере доступа к Core.
На контроллерах кластера должен быть уникальный machine-id, это значит, что не рекомендуется клонирование машин с этой ролью, либо необходимо изменить ID на машинах до установки. Внимание! Допустимость данной операции должен определять администратор хоста с учётом возможного использования machine-id другими сервисами! rm /etc/machine-id /var/lib/dbus/machine-id && dbus-uuidgen --ensure=/etc/machine-id && dbus-uuidgen --ensure && reboot
- В нашем случае мы будем использовать установку All-In-One хост kuma-1.local, один узел контроллера (хост kuma-2.local) и два рабочих узла (хост kuma-3.local и kuma-4.local), пример файла инвентаря: https://box.kaspersky.com/f/bf06497b5b004dc3b1e5/ Другие примеры инвентарей: https://box.kaspersky.com/d/b397490dc08048acb671/
- В распределенной установке kuma в секции инвентаря kuma_core нужно указать хост, который есть в роли worker (один из двух)
- ВАЖНО! Для успешной установки должны быть соблюдены следующие требования:
- все машины кластера должны быть добавлены в
/etc/hosts
; - установлены пакеты в соответствии с: https://support.kaspersky.com/help/KUMA/2.1/ru-RU/244399.htm;
- На Astra Linux на машине балансировщика нужно установить в дополнение пакету nginx еще один пакет libnginx-mod-stream
- в
/var/lib/
должно быть не менее 32GB свободного места;
- все машины кластера должны быть добавлены в
- Значение переменных в инвентаре ansible:
need_transfer
– установка KUMA 2.1 происходит поверх предыдущей версии?;airgap
- значение неважно, может отсутствовать;low_resources
– использовать минимальные ресурсы для разворачивания? Отсутсвует по умолчанию. (Достаточно ресурсов: 2 CPU 4 RAM, НО при этом создается том хранения 4 Гб, без этого параметра том создается 512 Гб)- для части инвентаря kuma_k0s и переменных ansible_host важно указывать IP адреса
- если используется собственный балансировщик, то нужно указать
kuma_managed_lb: false
, при этом указать FQDN этого балансировщика (для корректного формирования сертификата коры) no_firewall_actions: false
- инсталлятор будет пытаться открыть необходимые порты на МЭ данного хоста
- Создайте резервную копию ресурсов и сертификатов, см. советующий раздел в этой инструкции.
- Распакуйте архив (операции выполняются на ядре системы KUMA):
tar -xvf kuma-ansible-installer-(ВЕРСИЯ).tar.gz
- Перейдите в распакованную папку:
cd kuma-ansible-installer
- Добавить файл лицензии в папку kuma-ansible-installer/roles/kuma/files и переименовать на license.key:
cp ПУТЬ_ДО_КЛЮЧА*.key roles/kuma/files/license.key
- Выполните команду копирования шаблона (пример заполненного файла в п. 0):
cp k0s.inventory.yml.template k0s.inventory.yml
- ВАЖНО! Регистр написания хостнеймов в inventory должен совпадать с выводом значения на хостах команды
hostname -f
- ВАЖНО! Хостнейм при команде
hostname -f
должен содержать хотя бы одну точку, пример: kuma.local - Входим в ОС из-под суперпользователя (root), если это не было сделано ранее:
sudo -i
- Запустите установку:
./install.sh k0s.inventory.yml
- Зайдите на веб интерфейс ядра KUMA по одному из адресов рабочих узлов или балансировщика, например, в нашем случае это - https://192.168.0.153:7220 Учетные данные для входа по умолчанию:
admin / mustB3Ch@ng3d!
- Для начального администрирования кластера воспользуйтесь командами этого раздела.
В случае, если при установке произошел сбой (НЕ обновлении), перед последующей установкой рекомендуется выполнить uninstall.sh и перезагрузить все узлы кластера. Если uninstall выполнить нельзя (идет миграция существующей установки в кластер), то перед повторной попыткой установки нужно вручную выполнить команду sudo k0s reset (если долгий reset, то rm -rf /var/lib/k0s/containerd, затем k0s reset -d) на всех узлах кластера и перезагрузить их
Перестроение между воркерами в кластере Kubernetes происходит с таймаутом ~ 5 мин
Отказоустойчивость балансировщиков, см. тут
Для работы с кластером можно использовать команды и инструменты отсюда
Видео установки в конфигурации AiO-1LB-1CP-2W тут
Установка KUMA на ОС с установленным антивирусом
В случае установки KUMA на ОС с установленным антивирусом необходимо в политике антивирусной защиты выставить исключение проверок средства защиты для папки:
/opt/kaspersky/kuma/*
Статья в скором времени будет дополняться...
Подготовка Astra Linux 1.7.х (с картинками)
Пак автомной установки KUMA (офлайн пакеты для Astra) — ссылка на mail.ru тк объем большой
Начало установки.
Выбор языка и режим «Графическая установка».
На скриншотах ниже показан пошаговый процесс установки с комментариями.
Установщик Astra Linux позволяет ввести только короткое имя компьютера (short host name). Задать FQDN имя компьютера (long host name) возможно после установки ОС. Подробнее см. Примечание 1.
Разметка дисков выполняется на усмотрение администратора ОС. Учитывайте пожалуйста пункты из подготовки ОС.
Для целей демонстрационной установки выбран метод «Авто – использовать весь диск».
Минимальная установка для сервера без графического интерфейса.
Выбор уровня защищенности согласно документации для используемого приложения. Для целей демонстрационной установки выбран уровень “Орел”.
Примечание 1
Сразу после установки ОС в минимальной конфигурации нет сети. И имя компьютера установлено в short host name.
Для конфигурации сетевых параметров ОС можно применить один из способов:
Пакет NetworkManager:
- предоставляет утилиту nmtui для настройки параметров в псевдографическом интерфейсе консоли;
- содержит инструмент nmcli для гибкой настройки в командной строке.
Пакет ifupdown с настройками конфигурационного файла /etc/network/interfaces
- будет удобен, если используется простая конфигурация с получением сетевого адреса по DHCP.
https://wiki.astralinux.ru/pages/viewpage.action?pageId=3277370
Во избежание конфликтов со службой networking служба NetworkManager НЕ РАБОТАЕТ с сетевыми интерфейсами, перечисленными в файле /etc/network/interfaces или в файлах в каталоге /etc/networking/interfaces.d/. По умолчанию в файле /etc/network/interfaces присутствует только интерфейс локальной петли (loopback).
Использование NetworkManager
Сразу после установки ОС вы можете установить соответствующий пакет командой:
sudo apt install network-manager
По умолчанию используется репозиторий установочного диска Astra Linux, который является активным в конфигурационном файле /etc/apt/sources.list
. Публичные репозитории закомментированы.
Чтобы приступить к настройке сетевых параметров в псевдографике выполните команду: nmtui
Здесь вы можете изменить имя узла на FQDN, настроить сетевой интерфейс, проверить параметры ipv4 и ipv6.
Использование конфигурационного файла interfaces. (сложнее)
Если не требуется специальная настройка и параметры сети будут получены по DHCP. Открыть на редактирование:
sudo nano /etc/network/interfaces
Добавить в файл комментарий, начинающийся с # (по желанию) и параметры
# The eth0 network interface
auto eth0
iface eth0 inet dhcp
Перезапустите службу сети: sudo /etc/init.d/networking restart
Проверьте параметры сетевого интерфейса: sudo ifconfig
Задайте имя компьютера в FQDN:
hostname -f
hostnamectl
hostnamectl set-hostname app-server-01.example.com
Пропишите IP адрес и FQDN в файле /etc/hosts
nano /etc/hosts
Текстовый файл hosts:
127.0.0.1 localhost
192.168.1.1 app-server-01.example.com
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
статья будет в скором времени дополнена ...