Ajout d'une colonne avec Logstash

Bonjour,

J'utilise Logstash et file beat pour l'ingestion de mon fichiers CSV dans Elastisearch:

image

Est-il possible d'ajouter une colonne date de fraicheur en utilisant Logstash:

comme ci dissous:

image

Oui tu peux utiliser le plugin mutate add_field de logstash.

Oui tu peux utiliser le plugin mutate add_field de logstash.

En utilisant comme base le champ @timestamp qui est normalement généré par LS au moment où il process la ligne.

je sais il existe le plugin mutate add_field de logstash pour ajouter une colonne
ce qui m’intéresse ajouter la colonne est stocker dans cette colonne une seul fois la date 14/05/2020

Normalement chaque évènement est traité indépendamment des autres. Donc à part écrire une sorte de booléen dans un fichier disant que tu as déjà écrit la valeur, je ne vois pas.

Peut-être que les plugins faits par @fbaligand pourraient aider mais pas certain.

Bonjour,

Effectivement, avec le plugin aggregate (dont je suis l'heureux créateur :slight_smile:) , tu devrais pouvoir solutionner ton besoin.

Voici la conf aggregate que je mettrai :

filter {

    if [date_fraicheur] {
        aggregate {
            task_id => "%{host}%{path}"
            code => "map['date_fraicheur'] = event.get('date_fraicheur')"
            inactivity_timeout => 5
        }
    }
    else {
        aggregate {
            task_id => "%{host}%{path}"
            code => "event.set('date_fraicheur', map['date_fraicheur']) if map.has_key?('date_fraicheur')"
        }
    }
} 

Pour être sur que ça marche bien, je t'invite à mettre "-w 1" au lancement de Logstash, car l'ordre de traitement des lignes CSV est important.

Bonjour,

Je ne vois comment la colonne date_fraicheur va être crée comme ci dessous:

image

Je pars du principe que tu as cela comme prerequis avant le filtre aggregate :

  • un export csv de ton fichier Excel avec exactement le contenu que tu as dans ton impression écran. Le fichier csv est en input de ton logstash
  • dans ta conf logstash, un input file, suivi d’un filtre csv.
  • puis la conf aggregate que j’ai mis dans mon commentaire précédent.