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?

InformationsquelleAutor Mark | 2014-12-16
Schreibe einen Kommentar