J'ai une configuration logstash qui utilise ce qui suit dans le bloc de sortie pour tenter d'atténuer les doublons.Logstash doc_as_upsert index croisé dans Elasticsearch pour éliminer les doublons
output {
if [type] == "usage" {
elasticsearch {
hosts => ["elastic4:9204"]
index => "usage-%{+YYYY-MM-dd-HH}"
document_id => "%{[@metadata][fingerprint]}"
action => "update"
doc_as_upsert => true
}
}
}
L'empreinte est calculée à partir d'un hachage SHA1 de deux champs uniques. Cela fonctionne lorsque logstash voit le même document dans le même index, mais comme la commande qui génère les données d'entrée n'a pas une vitesse fiable à laquelle différents documents apparaissent, logstash insère parfois des documents dupliqués dans une date différente. indice. Par exemple, la commande que logstash exécute pour obtenir l'entrée renvoie généralement les deux dernières heures de données. Cependant, étant donné que je ne peux pas dire définitivement quand un document apparaîtra/disparaîtra, j'accepte la commande toutes les quinze minutes.
Ceci est correct lorsque les doublons se produisent dans la même heure. Cependant, lorsque l'horodatage de l'heure ou du jour survole et que le document apparaît toujours, elastic/logstash pense qu'il s'agit d'un nouveau document.
Existe-t-il un moyen de faire croître l'index? Ce seraient tous le même type de doc, ils s'appliqueraient simplement à tous les index qui correspondent à "usage- *"
je remarquai que la charge sur le cluster a augmenté d'un peu après avoir mis cela en place. Mais jusqu'à présent, il semble fonctionner! – anthozep
Oui, car pour chaque événement qui passe par Logstash, une requête est effectuée sur votre ES pour vérifier si l'événement existe déjà ou non. – Val
Dans une tentative de réduire l'espace de recherche, j'ai ajouté un filtre de rubis pour obtenir la date d'hier. Je ne m'inquiète que des dupes qui pourraient apparaître lorsque le nom de l'index reviendra au lendemain. Cependant, il semble que dans le filtre elasticsearch, il ne développe pas les champs: 'elasticsearch { hosts => [" fmyelastic04.fm.intel.com:9204 "] index => 'surveillance-cama-usage- "% {[@ metadata] [hier]}" ' query => "_id:% {[métadonnées] [empreinte digitale]}" fields => {"_id" => "id_found"} } ' – anthozep