Перейти к основному содержимому
Версия: 4.6.X

Обновление KOMRAD с версии 4.3.58 до версии 4.5 с сохранением событий

В данном разделе описана процедура обновления KOMRAD Enterprise SIEM с версии 4.3.58 до версии 4.5 с сохранением существующих событий в базе данных ClickHouse.

Обязательно перед началом обновления
  1. Убедитесь, что текущая версия KOMRAD -- 4.3.58.
  2. Создайте полную резервную копию системы (снимок виртуальной машины или бэкап данных).
  3. Проверьте учётные данные для подключения к ClickHouse и PostgreSQL. Пароли можно найти в конфигурационных файлах: /etc/echelon/komrad/komrad-server.yaml (PostgreSQL) и /etc/echelon/komrad/komrad-processor.yaml (ClickHouse).
  4. Убедитесь, что на диске достаточно свободного места для миграции данных (как минимум объём текущей таблицы событий).
  5. Проверьте наличие пользовательских плагинов -- они могут потребовать дополнительной настройки после обновления.

Все действия выполняются от имени пользователя root:

sudo su

Шаг 1. Остановка сервисов

Остановите все сервисы KOMRAD:

systemctl stop komrad-{file,snmp,xflow,syslog,sql,http}-collector \
komrad-incident-manager komrad-correlation-dispatcher komrad-reactor \
komrad-processor komrad-server komrad-server.socket pauth-server \
komrad-s3 komrad-backup komrad-scanner komrad-bus komrad-waf-proxy

Шаг 2. Проверка состояния сервисов

Убедитесь, что все сервисы остановлены и нет сервисов в состоянии failed:

systemctl --type service

При наличии сервисов в состоянии failed сбросьте их статус:

systemctl reset-failed <имя_сервиса>

Шаг 3. Удаление установленных пакетов

Удалите пакеты KOMRAD версии 4.3.58:

dpkg -P komrad-processor pauth-server komrad-server komrad-server.socket \
komrad-reactor komrad-s3 komrad-cli komrad-incident-manager komrad-backup \
komrad-reactor-cef komrad-vault komrad-correlation-dispatcher \
komrad-correlator komrad-bus komrad-scanner \
komrad-{file,snmp,xflow,syslog,sql,http}-collector komrad-waf-proxy

Шаг 4. Удаление конфигурационных директорий

rm -rf /etc/echelon/komrad /var/lib/echelon

Шаг 5. Подготовка ClickHouse

Подключитесь к ClickHouse и выполните подготовительные запросы:

clickhouse-client --user komrad --password <пароль>

Переименуйте текущую таблицу событий:

RENAME TABLE komrad_events.events TO komrad_events.events_old;

Создайте базу данных для интеграции с PostgreSQL:

CREATE DATABASE IF NOT EXISTS komrad_pg;

Отзовите права на запись:

REVOKE INSERT ON komrad_pg.* FROM komrad;

Шаг 6. Настройка конфигурации подключения к ClickHouse

Отредактируйте файл /etc/echelon/.click:

nano /etc/echelon/.click

Убедитесь, что содержимое файла имеет следующий вид:

{"creds":{"user":"komrad","password":"<пароль>"},"ttl":190}

Шаг 7. Распаковка дистрибутива KOMRAD версии 4.5

Скачайте дистрибутив KOMRAD v4.5 и распакуйте его без запуска установки:

bash ./komrad_v4.5.22_astra_1.8_amd64.run --noexec

Перейдите в директорию с пакетами:

cd komrad

Шаг 8. Обновление ClickHouse

Остановите сервис ClickHouse:

systemctl stop clickhouse-server

Обновите пакеты ClickHouse (при запросах о замене конфигурационных файлов выберите Y):

dpkg -i clickhouse-common-static-std_v24.8.6-70.lts.echelon.2_amd64_astra.deb
dpkg -i clickhouse-server-std_v24.8.6-70.lts.echelon.2_amd64_astra.deb
dpkg -i clickhouse-client-std_v24.8.6-70.lts.echelon.2_amd64_astra.deb
Примечание

Имена файлов пакетов могут отличаться в зависимости от версии дистрибутива. Используйте актуальные имена файлов из вашего дистрибутива.

Шаг 9. Настройка подключения ClickHouse к PostgreSQL

Создайте файл конфигурации именованных коллекций:

nano /etc/clickhouse-server/config.d/named_collections.yaml

Добавьте следующее содержимое:

named_collections:
postgres_creds:
user: postgres
password: <пароль>
host: 127.0.0.1
port: 5432
database: komrad-preferences
schema: preferences

Установите права на файл:

chown clickhouse:clickhouse /etc/clickhouse-server/config.d/named_collections.yaml
chmod 400 /etc/clickhouse-server/config.d/named_collections.yaml

Запустите ClickHouse:

systemctl start clickhouse-server

Шаг 10. Настройка PostgreSQL

Отредактируйте файл /etc/echelon/.pgpass:

nano /etc/echelon/.pgpass

Приведите содержимое к следующему виду:

127.0.0.1:5432:komrad-preferences:postgres:<пароль>
::1:5432:komrad-preferences:postgres:<пароль>
localhost:5432:komrad-preferences:postgres:<пароль>
127.0.0.1:5432:komrad-grafana:postgres:<пароль>
::1:5432:komrad-grafana:postgres:<пароль>
localhost:5432:komrad-grafana:postgres:<пароль>
127.0.0.1:5432:pauth-preferences:postgres:<пароль>
::1:5432:pauth-preferences:postgres:<пароль>
localhost:5432:pauth-preferences:postgres:<пароль>
127.0.0.1:5432:scanner:postgres:<пароль>
::1:5432:scanner:postgres:<пароль>
localhost:5432:scanner:postgres:<пароль>

Создайте базу данных для Grafana:

sudo -i -u postgres psql -c "CREATE DATABASE \"komrad-grafana\";"

Выполните миграцию конфигурации файловых коллекторов:

sudo -i -u postgres psql -d komrad-preferences -c "UPDATE preferences.collectors
SET config = jsonb_set(
config,
'{V, Filestream}',
(SELECT jsonb_array_elements(config -> 'V' -> 'Filestream') FROM preferences.collectors LIMIT 1)
)
WHERE collector_type = 'file'
AND config -> 'V' -> 'Filestream' IS NOT NULL;"

Шаг 11. Запуск установщика KOMRAD версии 4.5

Убедитесь, что вы находитесь в директории komrad с распакованными пакетами. Запустите установщик:

./setup

Выберите ручной режим установки (на вопрос "Установить Komrad SIEM с настройками по умолчанию?" введите N).

Пропустите следующие шаги, отвечая N:

  • Установка базы данных ClickHouse -- пропустить (ClickHouse уже обновлён)
  • Установка базы данных PostgreSQL из репозитория пакетов ОС -- пропустить (PostgreSQL уже настроен)
  • Введите секретный пароль и соль -- пропустить
  • Создайте роль и пользователя 'admin' -- пропустить (пользователь уже существует)

Шаг 12. Запуск Grafana на Astra Linux 1.7

Если Grafana не запускается на Astra Linux 1.7, необходимо закомментировать неподдерживаемые параметры в файле сервиса:

nano /lib/systemd/system/grafana.service

Закомментируйте следующие строки (добавьте # в начало каждой):

#ProtectProc=invisible
#ProtectClock=true
#ProtectHostname=true
#ProtectKernelLogs=true

Перезагрузите конфигурацию systemd:

systemctl daemon-reload
Примечание

Данный шаг необходим только для Astra Linux 1.7, где используется устаревшая версия systemd, не поддерживающая указанные директивы.

Шаг 13. Миграция данных событий

Скрипт миграции переносит данные из таблицы komrad_events.events_old (версия 4.3.58) в новую таблицу komrad_events.events (версия 4.5) и удаляет устаревшие индексные таблицы.

Перед запуском миграции
  • Убедитесь, что на диске достаточно свободного места.
  • Скрипт использует учётные данные по умолчанию: пользователь komrad, пароль pass. При необходимости измените их в скрипте.

Запустите скрипт миграции:

BATCH_SIZE=100000 ./click_migrate_4.3.58_to_4.5.22.sh

Параметр BATCH_SIZE определяет количество записей, обрабатываемых за одну итерацию (по умолчанию -- 100 000).

Скрипт сохраняет состояние миграции в файл .clickhouse_migration_state, что позволяет продолжить процесс с места остановки в случае ошибки.

По завершении миграции последовательно выводятся сообщения:

  1. Операция переноса данных с преобразованием завершена успешно
  2. Операция удаления индексных таблиц завершена успешно
  3. Все операции завершены успешно
Завершение

Таблица komrad_events.events_old с данными версии 4.3.58 не удаляется автоматически. После успешной миграции и проверки работоспособности системы рекомендуется удалить её вручную для освобождения дискового пространства.

После завершения миграции перезагрузите систему:

reboot