====== MessageLog X-Road: настройка и обслуживание ====== MessageLog - база данных PostgreSQL для хранения логов обмена сообщениями X-Road Security Server. **Содержит:** * Метаданные запросов/ответов * Тела сообщений (опционально) * Подписи и временные метки ==== Конфигурация ==== Файл: /etc/xroad/conf.d/local.ini === Рекомендуемые настройки === [message-log] keep-records-for=1 archive-interval=0 0/2 * 1/1 * ? * clean-interval=0 0/3 * 1/1 * ? * message-body-logging=false clean-transaction-batch=10000 archive-transaction-batch=10000 === Параметры === ^ Параметр ^ Значение ^ Описание ^ | keep-records-for | 1 | Срок хранения в БД (дни) | | archive-interval | 0 0/2 * 1/1 * ? * | Каждые 2 часа архивировать | | clean-interval | 0 0/3 * 1/1 * ? * | Каждые 3 часа очищать БД | | message-body-logging | false | Не сохранять тела сообщений | | clean-transaction-batch | 10000 | Размер пакета очистки | | archive-transaction-batch | 10000 | Размер пакета архивирования | === Cron-выражения === Формат: секунды минуты часы день месяц день_недели **Примеры:** * 0 0/2 * 1/1 * ? * — Каждые 2 часа * 0 0/3 * 1/1 * ? * — Каждые 3 часа * 0 0 */6 * * ? — Каждые 6 часов * 0 0 2 * * ? — Ежедневно в 2:00 Архивные файлы автоматически сохраняются в директории /var/lib/xroad/ ==== Проверка работы ==== Размер базы данных: sudo -u postgres psql -c "SELECT pg_size_pretty(pg_database_size('messagelog'));" Количество записей: sudo -u postgres psql -d messagelog -c "SELECT COUNT(*) FROM messagelog;" Применение настроек: sudo systemctl restart xroad-proxy ==== Устранение проблем ==== При переполнении БД: # Очистка старых записей sudo -u postgres psql -d messagelog -c "DELETE FROM messagelog WHERE request_in_ts < NOW() - INTERVAL '1 day';" # VACUUM sudo -u postgres psql -d messagelog -c "VACUUM ANALYZE messagelog;" # Перезапуск sudo systemctl restart xroad-proxy ==== Полный пример конфигурации ==== [proxy-ui] [proxy] allow-get-wsdl-request = true client-http-port = 80 client-https-port = 443 [message-log] keep-records-for=1 archive-interval=0 0/2 * 1/1 * ? * clean-interval=0 0/3 * 1/1 * ? * message-body-logging=false clean-transaction-batch=10000 archive-transaction-batch=10000 [proxy-ui-api] wsdl-validator-command = /usr/share/xroad/wsdlvalidator/bin/wsdlvalidator_wrapper.sh strict-identifier-checks = false ---- Автор Даниил Горбенко