Перейти к основному содержимому
Версия: 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