Серверные журналы описывают работу самого процесса Stronghold: запуск, распечатывание, выборы лидера Raft, ошибки плагинов и подключений. Они не заменяют журналы аудита, в которых фиксируются запросы клиентов.

Уровни логирования

Уровень задаётся параметром log_level в конфигурационном файле или переменной окружения VAULT_LOG_LEVEL. Оба способа описаны в разделе «Настройка». Поддерживаемые значения в порядке возрастания подробности:

УровеньКогда использовать
errorТолько ошибки
warnОшибки и предупреждения
infoЗначение по умолчанию. Штатная работа, в том числе в production
debugДиагностика проблем, кратковременно
traceДетальная диагностика, кратковременно. Создаёт большой объём записей

В DP параметр log_level в конфигурации модуля не задан, поэтому используется уровень по умолчанию (info). Чтобы временно повысить его, используйте эндпоинт /sys/loggers.

Не оставляйте уровни debug и trace включёнными надолго: они увеличивают объём журналов и нагрузку на диск.

Формат журналов

Параметр log_format принимает значения standard (по умолчанию) и json. Для отправки журналов в систему централизованного логирования используйте формат json:

log_level  = "info"
log_format = "json"

Пример записи в формате JSON:

{"@level":"info","@message":"attempting to join possible raft leader node","@module":"core","@timestamp":"2025-10-20T10:54:02.578963Z","leader_addr":"https://stronghold-0.stronghold-internal:8300"}

В DP в конфигурации модуля зашито значение log_format = "json".

Чтобы писать журналы в файл, задайте параметр log_file и параметры ротации log_rotate_duration, log_rotate_bytes, log_rotate_max_files.

Просмотр журналов

  • Stronghold в Linux
  • Stronghold в DP

При запуске через systemd-unit stronghold.service журналы попадают в journald:

journalctl -u stronghold.service -f

Журналы за определённый период:

journalctl -u stronghold.service --since "1 hour ago"

Stronghold работает в неймспейсе d8-stronghold. Чтобы получить список подов, выполните команду:

d8 k -n d8-stronghold get pods -o wide

В поде stronghold-N есть контейнер stronghold, sidecar kube-rbac-proxy (метрики) и, если задан параметр модуля plugins, init-контейнер plugin-fetcher, который загружает плагины. Основной контейнер указывается через -c:

d8 k -n d8-stronghold logs stronghold-0 -c stronghold -f

Журналы предыдущего экземпляра контейнера после перезапуска:

d8 k -n d8-stronghold logs stronghold-0 -c stronghold --previous

Чтобы получить журналы активного узла (например, при диагностике ошибок автоматических снимков), используйте сервис stronghold-active:

d8 k -n d8-stronghold logs svc/stronghold-active -c stronghold

Изменение уровня логирования

Через конфигурационный файл

  1. Измените значение log_level в конфигурационном файле.

  2. Отправьте процессу сигнал SIGHUP:

    systemctl reload stronghold

    Команда использует ExecReload=/bin/kill -HUP $MAINPID из systemd-unit. При получении SIGHUP уровень логирования обновляется, флаги CLI и переменные окружения игнорируются. Не все подсистемы (например, плагины) поддерживают динамическое изменение уровня.

Через API без перезапуска

Эндпоинт /sys/loggers меняет уровень логирования на работающем узле. Запрос применяется к узлу, на который он отправлен.

Повысить уровень для всех подсистем:

curl --header "X-Vault-Token: ${STRONGHOLD_TOKEN}" --request POST --data '{"level": "debug"}' "${STRONGHOLD_ADDR}/v1/sys/loggers"

Повысить уровень для одной подсистемы (например, core):

curl --header "X-Vault-Token: ${STRONGHOLD_TOKEN}" --request POST --data '{"level": "trace"}' "${STRONGHOLD_ADDR}/v1/sys/loggers/core"

Вернуть уровень из конфигурации:

curl --header "X-Vault-Token: ${STRONGHOLD_TOKEN}" --request DELETE "${STRONGHOLD_ADDR}/v1/sys/loggers"

Имена подсистем совпадают с именами логгеров в строках журнала (например, core, expiration, raft, audit). Актуальный список для узла возвращает GET /v1/sys/loggers.

Потоковый просмотр журналов

Команда d8 stronghold monitor подключается к эндпоинту /sys/monitor и выводит журналы узла в реальном времени с заданным уровнем, не меняя конфигурацию:

d8 stronghold monitor -log-level=debug