Деликатная очистка логов в системах класса Secret Net

Гайд по очистке логов Secret Net Studio через SQL. Настройка плана обслуживания, безопасное удаление, бэкап и автоматизация в MS SQL. Для администраторов ИБ.

2026.03.31                  


Деликатная очистка логов в системах класса Secret NetДеликатная очистка логов в системах класса Secret Net Прямое вмешательство в базу данных может нарушить целостность отчётов или привести к потере гарантии технической поддержки.

Версия 8.13 предполагает использование СУБД (чаще всего MS SQL Server, реже PostgreSQL) для хранения событий и аудитов. Ниже приведен подробный гайд, как безопасно выполнить эту задачу, начиная от рекомендуемых методов и заканчивая SQL-скриптами (если штатные средства недоступны).


Важное предупреждение перед началом

  1. Резервная копия: Обязательно сделайте полный бэкап базы данных перед любыми операциями удаления.
  2. Техподдержка: Прямое удаление записей через DELETE может быть не поддержано вендором. Если система на гарантии, лучше запросить регламент у интегратора.
  3. Окно обслуживания: Выполняйте операции в нерабочее время, так как очистка больших таблиц может блокировать работу консоли управления.

Шаг 1. Проверка штатных средств (Рекомендуемый вариант)

В большинстве версий Secret Net (ACS) есть встроенный механизм архивации или очистки. 1. Зайдите в Консоль управления (Административный модуль). 2. Найдите раздел «Настройки», «Аудит» или «События». 3. Ищите параметр «Хранение логов» (Log Retention Policy). 4. Если там есть возможность указать срок (например, «Хранить 90 дней»), установите его и примените. Система сама удалит старое при следующей службе очистки.

Если штатного средства нет или оно не работает, переходите к работе с СУБД.


Шаг 2. Подготовка SQL-запроса (Для MS SQL Server)

Так как точная схема таблиц в версии 8.13 может отличаться, сначала нужно найти таблицы с логами.

2.1. Поиск таблиц с логами

Выполните этот запрос в SQL Server Management Studio (SSMS) под учетной записью sa или администратора БД:

SELECT 
    TABLE_SCHEMA, 
    TABLE_NAME, 
    COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%Date%' 
   OR COLUMN_NAME LIKE '%Time%' 
   OR COLUMN_NAME LIKE '%Created%'
ORDER BY TABLE_NAME;

Ищите таблицы с названиями вроде Events, AuditLog, Logs, History.

2.2. Пример запроса на очистку

Допустим, вы выяснили, что таблица называется dbo.EventLog, а колонка даты — EventTime.

Цель:

  • Удалить записи старше 6 месяцев.
-- Начало транзакции (для безопасности)
BEGIN TRANSACTION;

-- 1. Сначала проверьте, сколько записей удалится (НЕ выполняйте DELETE сразу)
SELECT COUNT(*) AS RowsToDelete
FROM dbo.EventLog
WHERE EventTime < DATEADD(MONTH, -6, GETDATE());

-- 2. Если количество устраивает, выполните удаление
-- DELETE FROM dbo.EventLog
-- WHERE EventTime < DATEADD(MONTH, -6, GETDATE());

-- 3. Освобождение места (опционально, может вызвать фрагментацию)
-- DBCC SHRINKFILE (N'ИмяФайлаЛога', 0); 

-- 4. Фиксация транзакции
COMMIT TRANSACTION;
-- В случае ошибки: ROLLBACK TRANSACTION;

Важно:

  • Если таблица очень большая (миллионы строк), удаляйте порциями, чтобы не переполнить лог транзакций:
WHILE (1=1)
BEGIN
    DELETE TOP (10000) FROM dbo.EventLog
    WHERE EventTime < DATEADD(MONTH, -6, GETDATE());

    IF @@ROWCOUNT < 10000 BREAK;

    WAITFOR DELAY '00:00:05'; -- Пауза 5 секунд между пакетами
END

Шаг 3. Настройка Плана обслуживания (Maintenance Plan)

Чтобы не делать это вручную, настройте автоматическую очистку через SQL Server Agent.

  1. Откройте SSMS → Подключитесь к серверу.
  2. Разверните узел Управление (Management)Планы обслуживания (Maintenance Plans).
  3. Нажмите правой кнопкой → Мастер плана обслуживания (Maintenance Plan Wizard).
  4. Шаги мастера:

* Имя плана: SecretNet_Logs_Cleanup. * Расписание: Запуск раз в неделю (например, воскресенье в 03:00). * Выбор задачи: Выберите «Выполнение задания T-SQL (Execute T-SQL Statement)». * Настройка задачи: Вставьте проверенный скрипт удаления (из Шага 2.2) в поле запроса. * Отчетность: Включите отправку отчета на email (опционально), чтобы знать об ошибках. 5. Завершите мастер и проверьте, что агент SQL Server запущен.


Шаг 4. Специфика версии 8.13 (Нюансы)

  • В версиях линейки 8.x часто используются специфические таблицы для целостности данных.
  • Не удаляйте записи из таблиц справочников** (Users, Objects, Policies), даже если они старые. Чистите только таблицы событий (Events/Logs).

Индексы:

После массового удаления рекомендуется перестроить индексы, чтобы ускорить работу системы:

    ALTER INDEX ALL ON dbo.EventLog REBUILD;

Лог транзакций:

Если база в модели восстановления Full, после очистки обязательно сделайте бэкап лога транзакций, иначе файл .ldf разрастется:

    BACKUP LOG [ИмяБазыSecretNet] TO DISK = 'C:\Backups\LogTrunc.trn';

Приоритет

  1. Приоритет 1: Попробуйте найти настройку «Срок хранения событий» в интерфейсе самой программы Secret Net Studio.
  2. Приоритет 2: Если через интерфейс нельзя, сделайте полный бэкап БД.
  3. Приоритет 3: Выясните точные имена таблиц через INFORMATION_SCHEMA и используйте пакетное удаление (DELETE TOP).
  4. Приоритет 4: Настройте SQL Agent Job для автоматизации в будущем.

Если вы не уверены в именах таблиц, рекомендую обратиться к документации «Администрирование базы данных» для версии 8.13 или запросить схему у вендора, чтобы не повредить связи между событиями и объектами защиты.