Problème: "_dateparsefailure"

Bonjour tout le monde!
Je suis entrain de configuré logstash, je veux afficher mes données avec la date d'enregistrement, et tout se passe bien seulement on affiche aussi la date d'aujourd'hui et si je lance GET pour voir on m'affiche ceci: "_index": "omcr_cs-2024-04-18",
"_id": "p8Bi844B8amhOmsZhqan",
"score": 1,
"source": {
"NE_Name": "LACELL_MSOFTX3000",
"cmn_callee_no_answer_times-times": 0,
"number_of_available_circuits_piece": 308,
"cmn_answer_rate
%": 0,
"udc_called_determinded_busy_times_incoming_times": 175,
"tags": [
"dateparsefailure"
],
"udc_called_determinded_busy_times_outgoing_times": 150,
"@timestamp": "2024-04-18T22:45:00.604172400Z",
"cmn_call_completion_traffic_erl": 0,
"udc_called_busy_times_incoming_times": 343,
"udc_congestion_times_incoming_times": 0,
"Period_Min": "60",
"udc_called_busy_times_outgoing_times": 307,
"udc_abandon_after_ring_times_incoming_times": 5594,
"cmn_call_completion_rate
%": 0,
"position": "-3.4050750732422,29.358901977539",
"average_conversation_duration_s": 36.559,
"answer_rate
%": 44.335,
"udc_avail_circuit_num_outgoing_times": 308,
"label": "BM1VIET1",
"udc_seizure_traffic_incoming_erl": 82.83,
"udc_seizure_traffic_outgoing_erl": 78.59,
"officedir": "32",
"udc_congestion_times_outgoing_times": 0,
"call_failure_ratio_due_to_all_circuits_busy _%": 0,
"cmn_callee_no_response_times_times": 0,
"average_seizure_traffic_per_line_erl": 0.255,
"udc_avail_circuit_num_incoming_times": 308,
"udc_abandon_after_ring_times_outgoing_times": 2587
}

je vous donne ma config:

date {
match => ["Start_Time", "MM/dd/yyyy HH:mm:ss", "MM/dd/yyyy HH:mm:ss"]
timezone => "+02:00"
target => "@timestamp"

 }
 
mutate {	
    remove_field => ["Start_Time",
	                  "tags_on_failure"]
}

Pouvez-vous m'aider !
je vous remercie d'avance

Bonjour :wave:t3:

Je ne vois pas le champ Start_Time dans ton document.

Bonjour Mr David!
je trouve des difficultés à répondre sur le chat.
Veuillez m' excuser pour ce problème.
voici le message que je voulais postuler
Je tiens à vous remercier de votre réponse rapide. Le champ "Start_Time a été remplacé par @timestamp puis supprimer : voici le contenu;
je vous rappelle aussi que mes données ont deux formes de date

input {
file {
path => ["/Users/PC04/Desktop/Synaptique/logstash-8.3.3/input/*.csv"]
start_position => "beginning"
sincedb_path => "/Users/PC04/Desktop/Synaptique/logstash-8.3.3/sincedb/omcr-ps-kpi2.sincedb"
file_completed_action => "log"
file_completed_log_path => "/Users/PC04/Desktop/Synaptique/logstash-8.3.3/sincedb/omcr-ps-kpi2.processed"
mode => read
file_sort_by => "last_modified"
file_sort_direction => "asc"

}
}

filter{

csv {
separator => "|"
skip_header => true
skip_empty_rows => true
skip_empty_columns => false
source => "message"
columns => ["Start Time",
"Period (Min)",
"NE Name",
"Office",
"{UDC}ABANDON AFTER RING n Ratio (%)",
"IP Congestion Times (times)",
"Local Office Call Failure Ratio (%)",
"Local Office Failures (times)",
"Outgoing ISUP Trunk Call Barred Times IP "

}
}

date {
match => ["Start_Time", "MM/dd/yyyy HH:mm:ss", "MM/dd/yyyy HH:mm"]
timezone => "+02:00"
target => "@timestamp"

}

mutate {
remove_field => ["Start_Time"]

}

#"office": "LABEL=BM1ONT1; OFFICEDIR=14"

kv {
source => "office"
value_split => "="
field_split => "; "
}
mutate {
remove_field => ["office",
"@version"
]
}

mutate{
rename => {"LABEL" => "label"
"OFFICEDIR" => "officedir"
}

}
translate {
source => "label"
target => "position"
dictionary_path => "C://Users/PC04/Desktop/Synaptique/logstash-8.3.3/dictionnaire2/dictelk2.yml"

}

}

output {
elasticsearch {
hosts => ["https://127.0.0.1:9200"]
index => "omcr_cs-%{+YYYY-MM-dd}"
user => "elastic"
password => "OCh-V4S9*YPlT6xm=LJ-"
cacert => "/Users/PC04/Desktop/Synaptique/Elasticsearch8.3/elasticsearch-8.3.3/config/certs/http_ca.crt"
ssl_certificate_verification => false
action => "index"
ecs_compatibility => "disabled"
}
}

Merci de votre compréhension!

Peux-tu:

  • formater le code quand tu postes STP ?
  • donner une ligne de CSV qui ne passe pas ?

Merci

Bonjour! veuillez m'excuser ; les fichiers ont des format de date différente
fichier1:
08/12/2017 00:00|60|LACELL_MSOFTX3000|LABEL=BM1ONT1; OFFICEDIR=14|0|9|0|6|0|0|3.226|91|91|0|0|0|0|97.849|0|0|93|93|0|1|51.613|0|0|0.13|0.01|0|0|0|0|0.154|1|14|0|3.226|1|0|1.5|31|0.001|54.839|0.12|10|0|0|0|0|0|21|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|91|0|93|0|0|0|0|0|4|26|83.871|9|6|0|0|0|0|31|31|0.13|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0

Fichier 2:

08/15/2017 00:00:00|60|LACELL_MSOFTX3000|LABEL=BM1VIET1; OFFICEDIR=32|189|144|22|17|4|18|28.869|308|308|15|7|7|18|100|0|0|308|308|3|0|68.75|0|27|2.83|2.39|0|0|1|0|1.695|0|312|0|28.869|97|1.35|4.423|53.186|0.009|99.405|2.45|0|27|0|0|0|0|1380|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|308|0|308|2|0|0|0|0|0|328|97.619|144|17|2|4|0|0|336|336|2.83|0|0|0|0|0|0|0|0|18|0|0|0|0|0|0|0|0|0

Je n'ai pas compris quand vous me demandez de formater le code.

probablement, je suppose que que vous n'avez besoin que la partie "date" qui pose problème.
Si c est bien ce que vous me demandez
voici un extrait :

date {
match =>["Start_Time", "MM/dd/yyyy HH:mm:ss", "MM/dd/yyyy HH:mm"]
timezone => "+02:00"
target => "@timestamp"

 }
 
mutate {	
    remove_field => ["Start_Time"]
	                 
}

merci de votre générosité

Bonjour!
SVP, je suis toujours en attente de vos réponses, si vous avez besoin de détails sur le problème posé ou il y a quelque chose qui manque dans mes messages, veuillez me signaler.

Je vous remercie d'avance!

Bonjour.

Sachant que la dernière réponse a été postée vendredi soir à 20H45 et que nous sommes Lundi 13H, que ce forum n'a pas de SLA, je pense que la patience est utile ici. Elastic fournit des services de consulting et de support avec SLA si nécessaire.
Une bonne pratique est d'attendre quelques jours (ouvrés) avant de relancer et pas juste après le week-end.

Enfin, ce guide explique comment formatter son code.

Le format date du fichier en entrée est:

08/12/2017 00:00

ou encore

08/15/2017 00:00:00

Le filtre est:

date {
  match => ["Start_Time", "MM/dd/yyyy HH:mm:ss", "MM/dd/yyyy HH:mm"]
  timezone => "+02:00"
  target => "@timestamp"
}

Ce qui semble correct ici.

Peux-tu supprimer ce filtre pour voir ce que donne un document en sortie avant la suppression de Start_Time ?

mutate {	
    remove_field => ["Start_Time"]                 
}

Bonjour,

Le field qui récupère la date dans le plugin csv (Start Time) sans le tiret de 6 est different de celui qui est dans le plugin date.

Start_Time au lieu de Start Time

Bonjour !
je m'excuse pour tout comportement inapproprié !

après enlever le filtre qui supprimer " Start_Time " voici le résultat :
on a toujours le même problème et la GET affiche ceci:

"_index": "omcr_cs-2024-04-22",
        "_id": "3TBRBo8B45wK-MObZ-pJ",
        "_score": 1,
        "_source": {
          "udc_abandon_after_ring_times_outgoing_times": 0,
          "udc_congestion_times_outgoing_times": 0,
          "cmn_callee_no_answer_times-times": 0,
          "udc_congestion_times_incoming_times": 0,
          "udc_called_determinded_busy_times_incoming_times": 0,
          "udc_seizure_traffic_incoming_erl": 0,
          "Start_Time": "Start Time",
          "udc_called_busy_times_incoming_times": 0,
          "average_seizure_traffic_per_line_erl": 0,
          "answer_rate_%": 0,
          "NE_Name": "NE Name",
          "udc_called_determinded_busy_times_outgoing_times": 0,
          "number_of_available_circuits_piece": 0,
          "Period_Min": "Period (Min)",
          "cmn_callee_no_response_times_times": 0,
          "average_conversation_duration_s": 0,
          "cmn_call_completion_traffic_erl": 0,
          "udc_seizure_traffic_outgoing_erl": 0,
          "udc_abandon_after_ring_times_incoming_times": 0,
          "udc_avail_circuit_num_outgoing_times": 0,
          "call_failure_ratio_due_to_all_circuits_busy _%": 0,
          "cmn_call_completion_rate_%": 0,
          "udc_called_busy_times_outgoing_times": 0,
          "tags": [
            "_dateparsefailure"
          ],
          "udc_avail_circuit_num_incoming_times": 0,
          "@timestamp": "2024-04-22T14:59:07.561706800Z",
          "cmn_answer_rate_%": 0
        }

Bonjour :
le champ Start Time a été renommé en Start_Time pour éviter les espaces vides.

"Start_Time": "Start Time",

ne correspond pas à un pattern date.

Peux-tu faire la même chose pour une ligne qui n'est pas la ligne de titre ?

J'ai du supprimer la ligne de titre et configurer "skip_header => false" , le problème est résolu
et j'ai compris que logstash comptait aussi la première ligne bien qu'on l'avait dit de ne pas le traiter

si vous pouvez me dire aussi pourquoi lgstash traite la première ligne et amène ces genre des soucis car je souhaiterais bien garder les titres de mes fichiers.

Je vous remercie tous de votre aide !

Dans le plugin csv de logstash, tu as l'option skip_header qui permet d'ignorer la premiere ligne.

Merci de votre retour, effectivement je l'avais configuré avec "true" il y a eu ce problème de date d'aujourd'hui et quand j'ai supprimé la ligne de titre et configuré " skip_header => false "
on a plus le problème de date mais on a pas aussi le titre de documents .
Maintenant comment garder les titres et éviter ce problèmes c est ça la question

Garder les titres pour quoi faire ?

Bonjour! Juste pour garder la forme où pensez vous que c'est une bonne pratique d'enlever les entêtes des données , ou bien c'est parce que les entêtes causent des problèmes. Si c' est une bonne pratique c'est pas grave si c' est une mauvaise pratique je souhaiterais connaitre le problème de ces titres.
Merci encore de votre disponibilité !

Logstash lit ligne par ligne.

Si dans ton fichier CSV, tu as les en-tete des colonnes, il faut eviter de les envoyer à logstash.

Maintenant, si tu souhaites que logstash sache que tu as premiere ligne corresponds aux en-tete des colonnes, alors tu peux aussi rajouter l'otption : autodetect_column_names et autogenerate_column_names

1 Like

Bien reçu, je vous ferai signe de la suite ! merci