====== 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
----
Автор Даниил Горбенко