Перейти к основному содержимому

Системный журнал

Настройка системного журнала​

События системного журнала сохраняются в файл, путь к которому определяется в настройках компонента. Конфигурация системного журнала осуществляется через конфигурационные файлы, которые соответствуют каждому компоненту сервиса: /etc/pbr/<service-name>.yaml.

Внимание!

Для компонента Recovery Manager используется конфигурационный файл ~/.pbr/recovery-manager.yaml.

Пример конфигурационного файла /etc/pbr/agent-manager.yaml для компонента Agent Manager в части журналирования:

log:
path: /var/log/pbr/agent-manager.log
max_size: 200
max_age: 14
max_backups: 10
use_local_time: false
compress_backups: false
Параметры конфигурирования

Наименование

Описание

path

Путь к файлу, в который будут записываться логи

max_size

Максимальный размер лог-файла в мегабайтах. По умолчанию 100 МБ

max_age

Максимальный срок хранения лог-файла в днях

max_backups

Максимальное количество исторических логов, которое может храниться одновременно. Если выбрано 0, то количество файлов не ограничено

use_local_time

Параметр определяет, в каком формате будут записываться метки времени в имена файлов при ротации:

  • true – используется локальное системное время;
  • false (задано по умолчанию) – используется UTС-время.

compress_backups

Параметр определяет необходимость сжатия лог-файлов:

  • true – сжатие включено;
  • false – сжатие не используется
к сведению

Для корректной работы системы логирования необходимо заранее создать лог-файл и его промежуточные папки. Если у системы есть соответствующие права, они будут созданы автоматически, в противном случае – создайте их вручную или измените права доступа для автоматизации этого процесса.

Порядок удаления логов​

Удаление логов выполняется в два этапа:

  1. Сначала проверяется ограничение max_backups. Если количество исторических логов превышает заданное значение, самые старые файлы удаляются.
  2. Затем проверяется ограничение max_age. Удаляются логи, возраст которых превышает указанное количество дней.

Таким образом, оба параметра применяются независимо друг от друга:

  • лог-файл будет удален, если превышено значение max_backups, даже если не превышен срок его хранения max_age;
  • лог-файл также будет удален, если срок его хранения превышает max_age, даже если количество логов не превышает max_backups.
Пример удаления логов

log:
path: /var/log/pbr/agent-manager.log
max_size: 100
max_age: 90
max_backups: 10
use_local_time: false
compress_backups: false
  1. При достижении размера 100 МБ текущий лог ротируется и становится историческим логом.

  2. Допустим, после очередной ротации в каталоге находится 11 исторических логов:

    copywala.log.1
    copywala.log.2
    КОД ПРОПУЩЕН: <вывод логов с 3 по 10>
    copywala.log.11
  3. Сначала применяется правило max_backups: 10: так как количество исторических логов превышает 10, самый старый лог (copywala.log.11) будет удален, даже если ему меньше 90 дней.

  4. После этого применяется правило max_age: 90: если среди оставшихся логов есть файлы старше 90 дней, они также будут удалены, даже если общее количество логов не превышает max_backups.

Доступ к системному журналу​

Доступ к системному журналу имеет только администратор системы.

Основные события​

Все сообщения системного журнала имеют формат человекочитаемого сообщения. Каждая запись содержит уникальный идентификатор процесса, что позволяет однозначно определить, какая именно информация была занесена каждым отдельным процессом в системный журнал. Просмотр сообщений системного журнала осуществляется с использованием стандартного потока вывода приложения.

Для сообщений применимы следующие уровни логирования:

  • Error − записываются сообщения обо всех ситуациях или событиях в приложении, которые считаются ошибочными:

    • ошибки вызова внешних сервисов;
    • ошибки интеграционных вызовов;
    • ошибки, ведущие к падению одного из сервисов.

    Пример:

    2025-01-13 16:22:36.453 [1415876] ERR failed to handle request due to error err="failed to dispatch error: failed to commit task cancellation: failed to update task status: failed to connect to user=postgres database=postgres:\n\t[::1]:45432 (localhost): dial error: dial tcp [::1]:45432: connect: connection refused\n\t127.0.0.1:45432 (localhost): dial error: dial tcp 127.0.0.1:45432: connect: connection refused\n\t[::1]:45432 (localhost): dial error: dial tcp [::1]:45432: connect: connection refused\n\t127.0.0.1:45432 (localhost): dial error: dial tcp 127.0.0.1:45432: connect: connection refused" method=POST url=/api/task-manager/1/tasks/0194079b-5048-7dcf-9f05-c65c3fc55c3a:cancel

    Где 1415876 – идентификатор процесса в операционной системе.

  • Warning – предупреждения о некорректной работе сервиса.

    Пример:

    2025-01-13 16:20:35.866 [1415586] WRN REST API server is being configured without TLS configuration

    Где 1415586 – идентификатор процесса в операционной системе.

  • Info – информация о работе приложения и текущем состоянии сервисов.

    Пример:

    2025-12-19 17:18:46.144 [2315586] INF instance successfully entered online backup state
    2025-12-19 17:18:46.447 [2315586] INF requesting data directory path to perform backup
    2025-12-19 17:18:46.876 [2315586] INF successfully received data directory path data_directory=/pgdata/06/data

    Где 2315586 – идентификатор процесса в операционной системе.