18.4 Gestione dei fusi orari

In un ambiente distribuito, la gestione dei fusi orari può essere molto complessa. Ad esempio, potrebbe presentarsi la situazione in cui un'origine evento si trova in un fuso orario, l'istanza di Collector Manager in un altro, il server Sentinel di back end in un altro e il client che sta visualizzando i dati in un altro fuso orario ancora. Quando vengono aggiunti elementi quali l'ora legale e le molte origini evento che non segnalano il fuso orario che è stato loro impostato (come tutte le origini syslog), i problemi da gestire potrebbero essere diversi. La flessibilità caratteristica di Sentinel consente di rappresentare nel modo più adeguato l'orario in cui effettivamente si verificano gli eventi e comparare tali eventi con altri provenienti da altre origini evento presenti nello stesso o in un diverso fuso orario.

Generalmente, vi sono tre scenari diversi in base ai quali le origini evento segnalano le registrazioni orario:

  • L'origine evento segnala l'ora in base al fuso orario UTC (Coordinated Universal Time, tempo coordinato universale). Ad esempio, tutti gli eventi standard del log eventi di Windows sono sempre segnalati secondo il fuso orario UTC.

  • L'origine evento riporta l'ora locale, ma include sempre il fuso orario nella registrazione orario. Ad esempio, qualsiasi origine evento che si attiene al formato RFC3339 nella struttura delle registrazioni orario include il fuso orario come offset. Altre origini, invece, riportano ID di fuso orario in formato lungo, come Americhe/New York, o abbreviato come EST (Eastern Standard Time, orario orientale standard) che possono presentare qualche problema a causa di conflitti e risoluzioni non adeguate.

  • L'origine evento riporta l'ora locale, ma non indica il fuso orario. Sfortunatamente, il formato syslog più comune si attiene a questo modello.

Per il primo scenario, è sempre possibile calcolare l'orario UTC assoluto in cui si è verificato un evento (supponendo che venga utilizzato un protocollo per la sincronizzazione dell'orario), in modo da semplificare la comparazione tra l'orario di tale evento con una qualsiasi altra origine evento del mondo. Tuttavia, non è possibile determinare automaticamente l'ora locale in cui si è verificato l'evento. Per questo motivo, Sentinel consente ai clienti di impostare manualmente il fuso orario di un'origine evento modificando il nodo dell'origine evento nella Gestione origini eventi e specificando il fuso orario appropriato. Queste informazioni non incidono sul calcolo di OrarioDispositivoEvento o OrarioEvento, ma vengono poste nel campo FOSensore e utilizzate per calcolare vari campi FOSensore, come OraFOSensore. Questi campi sono sempre espressi secondo l'ora locale.

Nel secondo scenario, se vengono utilizzati ID di fuso orario in formato lungo oppure offset, è possibile passare al formato UTC per recuperare l'orario UTC assoluto canonico (memorizzato in DeviceEventTime), ma anche calcolare i campi ObserverTZ dell'ora locale. Se viene utilizzato l'ID del fuso orario in formato abbreviato, potrebbero generarsi dei conflitti potenziali.

Il terzo scenario richiede che l'amministratore imposti manualmente il fuso orario dell'origine eventi per tutte le origini interessate, affinché Sentinel sia in grado di calcolare correttamente l'orario UTC. Se il fuso orario non viene specificato adeguatamente modificando il nodo dell'origine evento nella Gestione origini eventi, OrarioEventoDispositivo (e probabilmente OrarioEvento) possono risultare non corretti così come FOSensore e i campi associati.

Generalmente, il servizio di raccolta per un determinato tipo di origine evento (come Microsoft Windows) è a conoscenza del modo in cui un'origine evento presenta una registrazione orario e si regola di conseguenza. È comunque consigliato impostare sempre manualmente il fuso orario di tutti i nodi delle origini evento nella Gestione origini eventi, eccetto qualora si sia a conoscenza che l'origine evento riporta l'ora locale e include sempre il fuso orario nella registrazione orario.

L'elaborazione della presentazione dell'origine evento della registrazione orario si verifica nel servizio di raccolta e nell'istanza di Collector Manager. OraEventoDispositivo e OraEvento sono memorizzati come UTC e i campi FOSensore sono memorizzati come stringhe impostate per l'ora locale dell'origine evento. Queste informazioni vengono inviate dall'istanza di Collector Manager al server Sentinel e memorizzate nella memorizzazione eventi. Il fuso orario in cui si trova l'istanza di Collector Manager o il server Sentinel non ha alcuna implicazione sul processo o sui dati memorizzati. Tuttavia, quando un client visualizza l'evento in un browser Web, UTC EventTime viene convertito nell'ora locale del browser, affinché tutti gli eventi vengano presentati ai client nel fuso orario locale. Se gli utenti desiderano visualizzare l'ora locale dell'origine, possono disporre di ulteriori dettagli consultando i campi FOSensore.