Изменение формата даты в Syslog

Временные метки syslog бывают двух видов: высокоточные временные метки и низкоточные временные метки. Если высокоточные временные метки имеют формат ISO 8601, то низкоточные временные метки имеют формат MMM dd HH:mm:ss (месяц - словами, день и время - цифрами).

Временные метки с низкой точностью лучше читаются. С другой стороны, формат с высокой точностью дает больше деталей о времени журнала. Поэтому, если мы хотим, чтобы наши журналы были легко читаемы, мы выберем временную метку с низкой точностью. Но если мы хотим знать больше о том, когда произошло событие в журнале, мы будем использовать временную метку высокой точности.

Rsyslog

Итак, как изменить формат временной метки в syslog? В этом руководстве мы поговорим о том, как изменить формат даты в syslog. Мы также рассмотрим файл rsyslog.conf.

Файл rsyslog.conf

Файл rsyslog.conf - это конфигурационный файл для утилиты rsyslog. Он содержит модули протоколирования, правила протоколирования, глобальные директивы для протоколирования, шаблоны протоколирования и практически любую конфигурацию, связанную с протоколированием. Зная это, мы можем отформатировать дату - а также временную метку - наших журналов, отредактировав файл rsyslog.conf.

Переход на формат с низкой точностью

syslog использует глобальную директиву $ActionFileDefaultTemplate для определения шаблона журнала. Затем указанный шаблон определяет формат файла журнала, включая формат временной метки.

syslog поставляется с различными зарезервированными/встроенными шаблонами. Некоторые из них используют формат временных меток с низкой точностью, а другие - с высокой. В зависимости от того, что мы хотим получить, мы можем указать любой из них с помощью глобальной директивы $ActionFileDefaultTemplate.

Конечно, существование зарезервированных шаблонов подразумевает, что мы можем создавать собственные шаблоны. Однако в этом учебнике мы будем использовать только зарезервированные шаблоны.

Мы можем использовать формат низкой точности для наших журналов, указав любой из этих зарезервированных шаблонов:

  • RSYSLOG_TraditionalFileFormat
  • RSYSLOG_TraditionalForwardFormat (используется при пересылке логов в rsyslogd ниже v3.12.5 и другие варианты syslogd).

Поскольку мы не будем пересылать наши журналы, мы будем использовать шаблон RSYSLOG_TraditionalFileFormat.

Давайте откроем файл rsyslog.conf:

Затем мы укажем RSYSLOG_TraditionalFileFormat в качестве шаблона журнала по умолчанию:

Теперь перезапустим syslog, чтобы изменения вступили в силу:

В нашем конфигурационном файле rsyslog выше, $ActionFileDefaultTemplate установлен на RSYSLOG_TraditionalForwardFormat. Таким образом, наши журналы теперь будут использовать временную метку с низкой точностью (месяц - словами, день - цифрами).

Переход к формату высокой точности

Мы можем перейти от формата с низкой точностью к формату с высокой точностью двумя способами:

  1. Закомментировать конфигурационный блок $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat.
  2. Замените RSYSLOG_TraditionalForwardFormat шаблоном временных меток высокой точности.

Комментирование конфигурации $ActionFileDefaultTemplate

Комментирование конфигурационного блока $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat в rsyslog.conf автоматически изменяет шаблон файла журнала на RSYSLOG_FileFormat. Поскольку RSYSLOG_FileFormat использует формат высокой точности, наша дата теперь будет записываться в журнал в соответствии со стандартом ISO 8601.

Итак, давайте закомментируем конфигурацию $ActionFileDefaultTemplate в нашем файле rsyslog.conf:

Мы перезапустим syslog, чтобы активировать изменения:

Вот как теперь выглядит наш daemon.log:

Использование шаблона файла журнала высокой точности

Как и в случае с временными метками низкой точности, мы можем указать любой из следующих шаблонов для перехода к временным меткам высокой точности:

  • RSYSLOG_FileFormat
  • RSYSLOG_ForwardFormat (Используется для пересылки журналов в rsyslogd v3.12.5 и выше).

Мы будем использовать шаблон RSYSLOG_FileFormat, поскольку мы не пересылаем наши журналы.

Теперь давайте отредактируем наш rsyslog.conf:

Теперь перезапускаем syslog:

Затем проверяем наш daemon.log:

Формат остается высокоточным.

Заключение

В этой статье мы рассказали о том, как переключаться между форматом временных меток низкой точности и форматом временных меток высокой точности в syslog. Также мы кратко рассмотрели, что делает файл rsyslog.conf.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий