Warum kann ich nicht anzeigen @timestamp zu _timestamp in Elastic Search-Indexerstellung-Vorlage?
Ich bin mit Logstash mit Elasticsearch und als ein Ergebnis, das @timestamp-Feld ist ein verbindliches Dokument-Feld. Der Wert der @timestamp
Feld ist immer nach ISO8601-format.
Einige der Veranstaltungen/Dokumente aus Logstash nicht über ein spezielles timestamp
Feld (bitte nicht verwechselt dies mit der _timestamp Feld; dies ist ein weiteres Feld, erhalten aus der grok Analyse), so habe ich beschlossen, Karte @timestamp
zu _timestamp
mit den folgenden Indizierung Vorlage:
{
"settings" : {...},
"template" : "logstash-myindex-*",
"mappings": {
"_id" : {
"path": "myid"
},
"_timestamp" : {
"enabled" : true,
"stored" : true,
"path" : "@timestamp",
"format": "YYYY-MM-dd'T'HH:mm:ss.SSS'Z'"
},
"property" : {
"@timestamp" : {
"type": "date",
"format": "YYYY-MM-dd'T'HH:mm:ss.SSS'Z'"
},
"myid" : {
"type": "string",
"index": "not_analyzed"
}
}
}
}
Wenn ich eine Suche durchgeführt:
POST logstash-myindex-2014.12.16/_search
{
"fields": ["_timestamp", "_source"],
"query": {
"match_all": {}
}
}
Bekomme ich wieder die Ergebnisse als solche (nur mit einem Beispiel-Dokument):
{
"_id": "AUeo39n78xpe_2ggb",
"_index": "logstash-myindex-2014.12.16",
"_score": 1.0,
"_source": {
"@timestamp": "2014-12-16T13:47:09.703Z",
"@version": "1",
"myid": "AUeo39n78xpe_2ggb"
"timestamp": 1418737629,
},
"_type": "logs",
"fields": {
"_timestamp": 1418737629000
}
}
Ok, so hier sehen Sie die path
Attribut _id
arbeiten. Es nimmt den Wert des Feldes myid
und gilt es zu _id
.
Nun, vorwärts zu _timestamp
. Hier wird es dann seltsam. Nicht nur, dass es nicht der Wert von @timestamp
(2014-12-16T13:47:09.703 Z), er nimmt statt dessen den Wert der spezielle timestamp-Feld (wie erwähnt, es ist ein Bereich, erhalten Sie von grok Analyse die ursprüngliche log-Nachricht) und dann wandelt es um Millisekunden.
Das gewünschte Ergebnis wäre, dass _timestamp
übernehmen was auch immer Wert @timestamp
hält. Kann mir bitte jemand sagen, was hier Los ist? Jemand erlebt? Gibt es irgendeine Art von Konflikt, der zwischen einem Feld namens timestamp
und Elastic Search ist _timestamp
Feld?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Intern in Elasticsearch alle Daten gespeichert werden als Epoche Millisekunden - also die
_timestamp
format gut aussieht.Mithilfe der Epoch converter ein Zeitstempel
1418737629000
konvertiertTue, 16 Dec 2014 13:47:09 GMT
.Das sieht ziemlich nah an Ihrem
@timestamp
Wert der Millisekunden, die gelöscht wurden, das ist alles. Möglicherweise gibt es eine änderung der Zeitzone, die du geworfen?_timestamp
Wert wird nie die form 2014-12-16T13:47:09.703 Z, obwohl ich den Pfad der_timestamp
zu@timestamp
?store=true
auf ein Datum-Feld? Sorry, ich bin wirklich so langsam an dieses aufzuheben.store=true
? Ja oder Nein?