Je le suivant ci-dessous sorte de JSON présent avec moi à être sous-évaluées à la recherche élastique en utilisant filebeat {"@timestamp":"2017-02-10T06:30:51.424Z","beat":{"hostname":"myhostname","name":"mydevice-logger","version":"5.2.0"},"fields":{"device_type":"mydevice","env":"staging"},"metricset":{"module":"system","name":"cpu","rtt":211},"system":{"cpu":{"cores":4,"idle":{"pct":0.000000},"iowait":{"pct":0.000000},"irq":{"pct":0.000000},"nice":{"pct":0.000000},"softirq":{"pct":0.000000},"steal":{"pct":0.000000},"system":{"pct":0.000000},"user":{"pct":0.000000}}},"tags":["automata","box"],"type":"metricbeat-test-log"}
comment remplacer champ d'horodatage provenant de JSON dans logstash
ma logstash (version 5.1.1) contient config, entrée, filtre et sortie comme ci-dessous -
input {
beats {
port => 5046
codec => json
}
}
filter {
if ...{}
else if [type] == "metricbeat-test-log" {
date {
match => ["@timestamp", "ISO8601"]
}
}
}
}
output {
if ...{}
else if [type] == "metricbeat-test-log" {
stdout { codec => rubydebug }
}
}
Le type est bon mais le filtre de date ne fonctionne pas. Le @timestamp
prend toujours l'horodatage actuel toujours. Je veux le remplacer par l'original @timestamp
présent dans json.
Utilisez-vous réellement Filebeat pour écrire les données JSON de Metricbeat dans Elasticsearch? –
Oui, la raison en est un appareil hors ligne. Je collectionne le journal de metricbeat et les met dans la recherche élastique –
bien que je puisse simplement employer un script de python pour vider le json entier dans l'ES cependant je trouve using le battement de fil plus pratique pour mon cas –