Это старая версия документа!
## MessageLog X-Road: настройка и обслуживание
### Описание
MessageLog — база данных PostgreSQL для хранения логов обмена сообщениями X-Road Security Server.
Содержит: * Метаданные запросов/ответов * Тела сообщений (опционально) * Подписи и временные метки
—
### Конфигурация
Файл: `/etc/xroad/conf.d/local.ini`
#### Рекомендуемые настройки
```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/`
—
### Проверка работы
Размер базы данных: ```bash sudo -u postgres psql -c «SELECT pg_size_pretty(pg_database_size('messagelog'));» ```
Количество записей: ```bash sudo -u postgres psql -d messagelog -c «SELECT COUNT(*) FROM messagelog;» ```
Применение настроек: ```bash sudo systemctl restart xroad-proxy ```
—
### Устранение проблем
При переполнении БД:
```bash # Очистка старых записей 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 ```
—
### Полный пример конфигурации
```ini [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 ```
— Автор: Даниил Горбенко