Пакет установки
В данном разделе приведено описание дистрибутива и установщика R-Vision SIEM.
Описание дистрибутива
Дистрибутив R-Vision SIEM рассчитан на автономную установку в существующий кластер Kubernetes без необходимости доступа к сети Интернет. Дистрибутив представляет собой самораспаковывающийся run-файл (bash-скрипт) с полезной нагрузкой.
Состав дистрибутива:
-
Образы и пакеты для развертывания R-Vision SIEM.
-
Инфраструктурные компоненты:
-
Провайдер хранилища: local-path-provisioner;
-
Контроллер: ingress-nginx;
-
Сервер метрик: metrics-server;
-
Мониторинг: kube-prometheus-stack;
-
Логирование: loki и promtail.
-
-
Сторонние сервисы:
-
ClickHouse;
-
Consul;
-
Dkron;
-
Kafka;
-
MinIO.
-
-
Вспомогательные утилиты (исполняемые файлы:
helm
,jq
,yq
). -
Скрипт установки (bash).
-
Скрипт первоначальной инициализации (bash).
Дополнительные пакеты:
-
siem-infra.tar — дополнительные инфраструктурные компоненты (провайдер хранилища Longhorn, балансировщик MetalLB);
-
siem-postgres.tar — компонент PostgreSQL;
-
kubespray-installer-redos.tar.gz — автономный установщик Kubernetes (kubespray offline) для Red OS 7.3.
Описание установщика
Установщик R-Vision SIEM — это самораспаковывающийся run-файл (bash-скрипт) с полезной нагрузкой.
Формат имени файла: siem-<номер версии>.run
Для вывода встроенной справки запустите run-файл siem-<номер версии>.run с параметром -h
или --help
:
./siem-<номер версии>.run --help
Если файл не имеет прав на выполнение, установите их с помощью команды chmod : sudo chmod +x siem-<номер версии>.run
|
Результат
Usage: siem-version.run [OPTIONS] Self-extracting installer for R-Vision SIEM version: <номер версии>. Available main actions: - new installation; - upgrading existing installation; - removing product; - downloading additional packages; - unpacking packages. Options: -c --check only check system readiness to install, don't execute actions -h --help show usage -V --version show version -v --verbose verbose output -y --yes don't ask user confirmation Supported variables: - ACCEPTED don't ask user confirmation - ACTION_MODE action from list: install update remove unpack download check - VERBOSE verbose output - SETUP_ROOT_DIR root directory of setup, default: /opt Required resources (for installation process only): CPU cores: 1 RAM Gb: 1 DISK Gb: 10 (in /opt/r-vision/siem) INODES: 10000 (in /opt/r-vision/siem)
Структура каталогов
Установщик содержит как общие разделяемые компоненты, так и специфичные для продукта.
По умолчанию распаковка выполняется в каталог /opt
, например /opt/r-vision
. Корневой каталог (/opt
по умолчанию) можно изменить переменной SETUP_ROOT_DIR
.
Таким образом:
-
/opt
— корневой каталог установщика; -
/opt/r-vision
— каталог производителя; -
/opt/r-vision/siem
— каталог продукта.
Если пользователь не имеет права записи в каталог /opt
, необходимо предварительно создать каталог производителя и назначить его владельцем пользователя, от имени которого будет выполняться установка.
sudo mkdir -pv /opt/r-vision sudo chown -R user:user /opt/r-vision
Пример возможной структуры каталогов после распаковки
/opt/r-vision/ ├── common # общие компоненты │ ├── ansible # роли и плейбуки Ansible │ ├── bin # утилиты (например: jq, yq, helm) │ ├── helm # helm-чарты общих компонентов Kubernetes │ │ ├── infra │ │ └── stateful │ ├── images # образы для helm-чартов общих компонентов Kubernetes │ └── lib # библиотека bash-функций ├── kubespray-installer-redos # офлайн-установщик Kubernetes │ ├── install.sh │ ├── kubespray-offline.tar.gz │ └── sys-prep-redos.tar.gz ├── product_1 # каталог продукта product_1 │ ├── helm │ ├── images │ ├── logs │ └── install.sh ├── product_2 # каталог продукта product_2 │ ├── helm │ ├── images │ ├── logs │ └── install.sh └── SIEM # каталог продукта SIEM ├── helm # helm-чарты ├── images # образы для helm-чартов ├── logs # логи установщика ├── init-after-setup.sh # скрипт первичной настройки системы ├── install.sh # скрипт установки/обновления/удаления системы └── release.info # информация о релизе
Логирование
Все действия логируются. При каждом запуске установщика создается новый лог-файл в каталоге logs
системы. В лог сохраняется более подробная информация, чем выводится на экран, даже в verbose-режиме. Также в лог сохраняется информация об операционной системе, ресурсах, программном окружении и переменных. Значения переменных с именами, содержащими pass
или private
, маскируются.
Пример системной информации в логе
System information: OS ID: redos OS name: RED OS MUROM (7.3) Kernel: 5.10.29-3.el7.x86_64 User: user (with sudo) CPU cores: 6 RAM GB: 12 App directory info: Directory: /opt/r-vision/siem Free space: 22G Free inodes: 45886082 Suitable tools: bash|4.0.0: 5.0.17 gunzip: 1.9.0 sed: 4.5.0 tar: 1.30.0 ansible|2.1: 2.12.5 jq: 1.6.0 yq: 4.40.4 helm: 3.12.1 kubectl: 1.26.3 python3|3.6.8: 3.8.2 curl: 7.79.1 wget: 1.20.3 whiptail: 0.52.21 dialog: <not installed> Environment: ------------ HOME=/root LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 TERM=xterm-256color TEST_PASSWORD=<masked> private_key=<masked> SUDO_USER=user USER=root ------------
Интерфейс установщика
Для взаимодействия с пользователем используются консольные диалоговые утилиты whiptail
или dialog
.
Если ни одна из них не установлена, используется режим консоли.
Порядок работы установщика
Процесс работы установщика состоит из следующих этапов:
-
Подготовка (общий этап для всех продуктов R-Vision, работающих на платформе Kubernetes):
-
Проверка соответствия программных и аппаратных требований для работы установщика.
-
Проверка целостности файла установщика.
-
Обнаружение и проверка целостности загружаемых пакетов.
-
Выбор режима работы установщика:
-
Новая установка в существующий кластер Kubernetes.
-
Обновление предыдущей версии.
-
Удаление установленного экземпляра R-Vision SIEM.
-
Распаковка имеющихся архивов.
-
Скачивание недостающих пакетов.
-
-
-
Действия, специфичные для выбранного режима работы установщика.
При выборе установки, обновления или удаления выполняется распаковка пакетов в каталог продукта или их удаление из каталога, а управление передается скрипту установщика R-Vision SIEM.