Пакет установки

В данном разделе приведено описание дистрибутива и установщика 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.

Если ни одна из них не установлена, используется режим консоли.

Порядок работы установщика

Процесс работы установщика состоит из следующих этапов:

  1. Подготовка (общий этап для всех продуктов R-Vision, работающих на платформе Kubernetes):

    • Проверка соответствия программных и аппаратных требований для работы установщика.

    • Проверка целостности файла установщика.

    • Обнаружение и проверка целостности загружаемых пакетов.

    • Выбор режима работы установщика:

      • Новая установка в существующий кластер Kubernetes.

      • Обновление предыдущей версии.

      • Удаление установленного экземпляра R-Vision SIEM.

      • Распаковка имеющихся архивов.

      • Скачивание недостающих пакетов.

  2. Действия, специфичные для выбранного режима работы установщика.

При выборе установки, обновления или удаления выполняется распаковка пакетов в каталог продукта или их удаление из каталога, а управление передается скрипту установщика R-Vision SIEM.