Как получить синхронизированные по времени выходные данные (разные часовые пояса на серверах)?

Как получить синхронизированные по времени выходные данные (разные часовые пояса на серверах)?

Итак, представьте, что есть ~100 серверов с разными часовыми поясами (не все разные, а много-много часовых поясов). В журналах сервера есть такие записи:

server1:BFE4C025   0420201413 P H sysplanar0     UNDETERMINED ERROR
server2:BFE4C025   0421032413 P H sysplanar0     UNDETERMINED ERROR

-> поэтому они находятся в серверном времени (разные часовые пояса) ->

0420201413 = 2013.04.20. 20:14
0421032413 = 2013.04.21 03:24

Преобразование напр.: 0421032413 в 2013.04.21 03:24 тривиально. Но: снова время сервера отличается, если я даю команду "date" на этих двух серверах в одно и то же время:

server1:Tue Apr 23 07:23:24 EDT 2013
server2:Tue Apr 23 13:23:24 MESZ 2013

Я понял. Но мне нужны упомянутые логи (только несколько строк/серверов) в одном часовом поясе. Зачем? Потому что очень-очень полезно знать, когда именно что-то произошло в вашем часовом поясе, например: CET TZ.

В: как мне перевести время журналов сервера в центральноевропейское время?

решение1

Если вы просто хотите преобразовать существующие файлы syslog, вы можете, например, использовать небольшую программу на Python/Perl/Ruby, чтобы изменить Tue Apr 23 07:23:24 EDT 2013что-либо с помощью UTC (или CET).

Если вы хотите иметь больше контроля над форматом времени, который записывается в файл журнала, вы можете взглянуть на syslog-ng. Его tsformat()функция позволяет вам настроить формат времени, например, на iso8601.

Мне самому приходилось работать с серверами в 5 часовых поясах, поэтому я настоятельно рекомендую использовать временные метки UTC. Поскольку летнее время не начинается в одно и то же время, отслеживание того, что такое CET (или CEST) в PST (или уже PDT), — это кошмар.

решение2

Вы можете использовать dateдля печати метки даты и времени и сохранить ее вместе с сообщением журнала.

$ TZ='Europe/Warsaw' date
wto, 23 kwi 2013, 17:11:48 CEST
$ TZ='America/Los_Angeles' date
wto, 23 kwi 2013, 08:11:56 PDT
$ date --universal
wto, 23 kwi 2013, 15:13:14 UTC

Используйте tzselectдля поиска часовых поясов.

Связанный контент