Назад | Перейти на главную страницу

Формат времени и часовой пояс Syslog-ng

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

В настоящее время все поступает в syslog-ng и выгружается в локальный каталог или отправляется на другое устройство через UDP. Обычный формат журнала:

May  1 00:00:08 hostname.example.com Here is the full message

Для одного устройства, на которое я пересылаю журналы, они хотят, чтобы все форматы времени были в формате UTC, а также вместо «1 мая» они хотят, чтобы это было «1 мая».

destination d_test {
    udp("remote_host.domain.com" port(514) spoof_source(yes) time_zone("UTC")); };

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

Спецификация фиктивного часового пояса должна быть в формате [+ -] ЧЧ: ММ, смещение должно быть меньше 24:00; значение = 'UTC'

Есть ли другой способ изменить это? Что касается двух форматов даты символа, я попробовал несколько вариантов шаблона, но пока не смог изменить начальную часть.

Попробуйте использовать +04:00 (или как бы там ни было, чтобы добраться до UTC) вместо UTC для часового пояса.

Я не знаю, как просто изменить день месяца на две цифры с помощью syslog-ng, но вы можете получить стандартную метку времени, совместимую с ISO 8601 (yyyy-mm-ddThh: mm: ss + -ZONE), используя ISODATE вместо того DATE. Их может быть проще проанализировать, что может помочь или не помочь вам в зависимости от вашей ситуации.

Вы могли бы сделать что-нибудь с awk, sed, или perl просматривать файлы журналов и изменять метку даты постфактум, но похоже, что это может вызвать другие проблемы.