Como obter saídas sincronizadas com o horário (fusos horários diferentes nos servidores)?

Como obter saídas sincronizadas com o horário (fusos horários diferentes nos servidores)?

Então imagine que existem cerca de 100 servidores com fusos horários diferentes (nem todos diferentes, mas muitos fusos horários). Existem saídas nos logs do servidor como:

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

-> então eles estão no horário do servidor (fusos horários diferentes) ->

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

Converter ex.: 0421032413 para 2013.04.21 03:24 é trivial. Mas: novamente, o horário do servidor é diferente, se eu fornecer o comando "data" nesses dois servidores exatamente ao mesmo tempo:

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

Eu entendi isso. Mas preciso dos logs mencionados (apenas algumas linhas/servidor) em um fuso horário. Por que? Porque é muito útil saber quando exatamente as coisas aconteceram no seu fuso horário, ex.: CET TZ.

P: como posso converter a hora dos logs do servidor para a hora da Europa Central?

Responder1

Se você deseja apenas converter arquivos syslog existentes, você pode, por exemplo, usar um pequeno programa python/perl/ruby para alterar Tue Apr 23 07:23:24 EDT 2013algo com UTC (ou CET).

Se você quiser ter mais controle sobre o formato de hora escrito no arquivo de log, você pode querer dar uma olhada em syslog-ng. Sua tsformat()função permite configurar o formato da hora, por exemplo, para iso8601.

Tendo tido que trabalhar com servidores em 5 fusos horários, recomendo fortemente usar carimbos de data e hora UTC. Como o horário de verão não começa ao mesmo tempo, acompanhar o que é CET (ou CEST) no PST (ou já é PDT) é um pesadelo.

Responder2

Você pode usar datepara imprimir o carimbo de data e hora e armazená-lo com a mensagem de log.

$ 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

Use tzselectpara encontrar fusos horários.

informação relacionada