Обновление системы

В данном разделе описаны действия по обновлению R-Vision SIEM.

Обновление состоит из следующих этапов:

Подготовка к обновлению

Перед обновлением R-Vision SIEM до новой версии выполните подготовительные действия:

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

  2. Скачайте архив с файлами для установки новой версии системы и проверьте его целостность.

При обновлении системы с определенных версий имеется ряд особенностей:

Особенности обновления системы с версии ниже 2.0.0

В системе версии ниже 2.0.0 может возникать ошибка при просмотре логов коллектора в интерфейсе:

Не удалось получить логи коллектора.
connect ECONNREFUSED <...>

В логах пода loki-gateway отображается ошибка:

host not found in resolver "coredns.kube-system.svc.cluster.local." in /etc/nginx/nginx.conf:33

Причина: чарт Loki по умолчанию использует имя coredns для конфигурации разрешения имен пода loki-gateway, однако в кластере может использоваться другое имя для сервиса DNS — например, kube-dns.

В системе версии 2.0.0 и выше данный параметр определяется автоматически, но при обновлении с более старой версии проблема может воспроизводиться, поэтому перед обновлением следует ее устранить.

Решение: нужно исправить конфигурацию сервиса loki-gateway. Для этого:

  1. Получите фактическое имя DNS-сервиса:

    K8S_DNS_SERVICE="$(kubectl get service -n kube-system -l k8s-app=kube-dns -o 'jsonpath={.items..metadata.name}')"
  2. Получите конфигурацию loki-gateway:

    LOKI_CONFIG="$(get cm loki-gateway -n kube-prometheus-stack -o 'jsonpath={.data.nginx\.conf}')"
  3. Сравните имена DNS-сервисов:

    echo "K8s DNS: $K8S_DNS_SERVICE"
    echo "Loki DNS: $(echo "$LOKI_CONFIG" | grep resolver)"
    Пример вывода имен DNS-сервисов
    K8s DNS: kube-dns
    Loki DNS: resolver coredns.kube-system.svc.cluster.local.;

    Если в выводе имена сервисов разные, перейдите к шагу 4.

  4. Откройте карту конфигурации loki-gateway:

    KUBE_EDITOR=nano kubectl edit configmap/loki-gateway -n kube-prometheus-stack

    Замените имя DNS-сервиса coredns после resolver на значение переменной K8S_DNS_SERVICE. После исправления строка карты конфигурации должна принять вид:

    resolver <dns_name>.kube-system.svc.cluster.local.;

    Здесь:

    • <dns_name> — имя DNS-сервиса Kubernetes, полученное на шаге 3, например, kube-dns.

  5. Сохраните файл и перезапустите loki-gateway:

    kubectl rollout restart deployment/loki-gateway -n kube-prometheus-stack

Особенности обновления системы с версии ниже 2.3.0

Начиная с версии 2.3.0 R-Vision SIEM поставляется на базе платформы R-Vision EVO.

Обновление SIEM с версий ниже 2.3.0 требует ручных действий.

Выключение коллекторов

Перед обновлением системы с версии ниже 2.3.0 необходимо выключить все работающие коллекторы.

После обновления все необходимые коллекторы и конвейеры нужно будет включить вручную.

Создание общей БД PostgreSQL

Сервисы платформы могут использовать как общую БД, так и собственные. В установщиках R-Vision SIEM версий ниже 2.3.0 общая БД отсутствует. Необходимо создать ее вручную с помощью команды:

kubectl exec -n <namespace> sts/postgresql -- psql -U <username> -d postgres -c 'CREATE DATABASE evo;'

Здесь:

  • <namespace> — имя пространства имен, в котором установлен кластер.

  • <username> — имя пользователя PostgreSQL. По умолчанию: siem-user.

Обновление NATS

Начиная с версии 2.2.0 в поставку R-Vision SIEM входит NATS. При обновлении с 2.2.x необходимо предварительно удалить предыдущие helm-релизы NATS, чтобы избежать ошибок. Для этого:

  1. Удостоверьтесь, что NATS развернут в необходимом пространстве имен:

    helm list -n <namespace> | grep nats-
  2. Удалите nats-main и nats-bridge при их наличии:

    helm uninstall -n <namespace> nats-bridge
    helm uninstall -n <namespace> nats-main

Здесь:

  • <namespace> — имя пространства имен, в котором установлен кластер.

Устранение проблем при обновлении

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

Если во время обновления системы произошел сбой, выполните следующие действия:

  1. Удалите метаданные модулей, которые успели развернуться до сбоя:

    kubectl get cm -n <namespace> -o name | grep release-info | xargs -n1 -t kubectl delete -n <namespace>
  2. Запустите обновление повторно без распаковки дистрибутива:

    export PATH=$PATH:/opt/r-vision/common/bin
    evoctl instance update -v

Обновление системы

Чтобы обновить систему до новой версии:

  1. Запустите установщик и выберите режим установки Updating previous version.

    install updating

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

  2. Выберите пространство имен, в котором установлена система.

  3. Задайте параметры Ansible:

    1. Имя пользователя.

    2. Метод аутентификации: через ключ или по паролю.

    3. Пароль: задайте и подтвердите пароль пользователя.

В целевом пространстве имен будут обновлены все чарты системы из директории siem/helm.

После обновления системы убедитесь, что у вас установлена поддерживаемая версия ClickHouse. Если ваша версия ClickHouse отличается от поддерживаемой, обновите ClickHouse до требуемой версии.

После обновления на экран будет выведен URL-адрес для подключения к системе.

Авторизация в системе

Чтобы выполнить вход в систему:

  1. В адресной строке браузера введите URL-адрес, выведенный на экран после обновления системы. На экране отобразится страница авторизации.

  2. Укажите логин и пароль учетной записи пользователя и нажмите на кнопку Войти.