J'utilise Logstash et filebeat pour l'ingestion de deux fichiers csv dans elastic
j'ai créer deux config logstash et une config file beat pour la lecture de mes deux fichiers
j'ai remarquer quand mes data dans elastic est mélanger existe il des bonne pratiques pour
ça???
Tu n'est pas obligé a utiliser Filebeat et Logstash.
C'est bien possible d'effectuer l'ingestion de fichiers csv en utilisant Filebeat avec une ingest pipeline Elasticsearch ou seulement avec Logstash.
En théorie chaque ligne a un champ qui représente le nom du fichier.
Le nombre des lignes peut être préservé ou pas selon la pipeline et méthodes utilisé.
Si tu as plusieurs fichiers CSV et ils ont la même structure tu peux créer un seul file input avec path qui pointe vers le dossier ou ils sont stockés (documentation).
E.g. path => "/dossier.../*.csv"
Il faut faire attention pour la gestion des en-tête des fichier CSV.
Si les 2 fichiers ont le meme en-tete:
pour le 1 fichier j'ai réaliser l'ingestion avec filebeat et Logstash
je voulais ingérer le 2 fichiers en utilisant filebeat et Logstash dans le même index que
le premier fichier
j'ai utiliser file beat et logsth pour traiter mes deux fichiers
ma config file beat est
- type: log
# Change to true to enable this input configuration.
enabled: true
# Paths that should be crawled and fetched. Glob based paths.
paths:
- C:\Users\h83710\Desktop\elastic\logstash-7.5.2\test\FICHIER.csv
paths:
- C:\Users\h83710\Desktop\elastic\logstash-7.5.2\test\poca.csv
et ma config logstash est :
input {
beats {
port => "5044"
}
}
filter {
# added condition for first file
if [path] == "C:\Users\h83710\Desktop\elastic\logstash-7.5.2\test\FICHIER.csv"{
csv{
separator => ";"
columns => ["chaine", "job", "date_plan", "statut", "date_debut", "date_fin", "serveur", "numero_passage", "application", "sous_application"]
}
date {
match => [ "date_plan" , "dd/MM/YYYY" ]
}
date {
match => [ "date_debut" , "dd/MM/YYYY HH:mm" ]
}
date {
match => [ "date_fin" , "dd/MM/YYYY HH:mm" ]
}
mutate {
convert => { "numero_passage" => "integer" }
}
}
# added condition for second file
else if [path] == "C:\Users\h83710\Desktop\elastic\logstash-7.5.2\test\poca.csv"{
csv{
separator => ";"
columns => ["date_fraicheur"]
}
# ommitted mutations for second file
mutate {
convert => { "date_fraicheur" => "integer" }
}
}
}
output{
# added condition for first file
if [path] == "C:\Users\h83710\Desktop\elastic\logstash-7.5.2\test\FICHIER.csv"{
elasticsearch{
hosts => "http://localhost:9200"
index => "hello"
}
}
# added condition for second file
else if [path] == "C:\Users\h83710\Desktop\elastic\logstash-7.5.2\test\poca.csv"{
elasticsearch{
hosts => "http://localhost:9200"
index => "hello"
}
}
stdout {codec => rubydebug}
}
Filebeat lit bien tes fichiers ? Tu as purgé la registry de filebeat ? Dans l'exemple de configuration complet qui est fourni avec filebeat, on peut lire ce qui suit...si cela peut t'aider à retrouver ce fichier et à purger ta registry...
# Registry data path. If a relative path is used, it is considered relative to the
# data path.
#filebeat.registry.path: ${path.data}/registry
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.