Инструменты пользователя

Инструменты сайта


database-server-security

Это старая версия документа!


## 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 ```

Автор: Даниил Горбенко

database-server-security.1770634724.txt.gz · Последние изменения: 2026/02/09 10:58 — infra