В настоящее время я использую довольно старую версию 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
просматривать файлы журналов и изменять метку даты постфактум, но похоже, что это может вызвать другие проблемы.