2016-08-09 48 views
1

Welcher Name ist am besten geeignet für den Zeitstempel, wenn Logstash verwendet wird, um Protokolle in Elasticsearch zu parsen und dann mit Kibana zu visualisieren?ELK passendster Zeitstempelname _ oder @

Ich Definition der Zeitstempel in einem Filter mit Datum:

date { 
    match => [ "logtime", "yy-MM-dd HH:mm:ss" ] 
} 

Logstash stellt automatisch diese in das @timestamp Feld. Kibana kann so konfiguriert werden, dass jedes korrekt formatierte Feld als Zeitstempel verwendet wird, aber es scheint korrekt zu sein, in Elasticsearch _timestamp zu verwenden. Um dies zu tun, müssen Sie das Datumsstempelfeld mutieren und umbenennen.

mutate { 
    rename => { "@timestamp" => "_timestamp" } 
} 

Welche ist leicht ärgerlich.

Diese Frage könnte völlig semantisch sein - aber ist es am besten, _timestamp zu verwenden, oder ist es in Ordnung, @timestamp zu verwenden? Gibt es noch weitere Überlegungen, die die Benennung des Zeitstempelfelds beeinflussen könnten?

Antwort

1

Mit Elasticsearch können Sie Felder definieren, die mit einem Unterstrich beginnen. Kibana (seit v4) zeigt jedoch nur diejenigen an, die außerhalb des _source Dokuments deklariert wurden.

Sie sollten auf jeden Fall mit @timestamp bleiben, was die Standardmethode ist, um das Timestamp-Feld in Logstash zu benennen. Kibana erlaubt Ihnen nicht, _timestamp zu verwenden.

1

Bitte beachten Sie, dass reserviert ist und deprecated speziellen Feldnamen. Tatsächlich sind alle Feldnamen, die mit Unterstrich beginnen, reserved für die zukünftige interne Verwendung von elasticsearch. AFAIK logstash Dokumentation examples Verwenden Sie @timestamp als Feldname ohne Umbenennung.