Problème avec Linux en français et logstash 8.6.2, et sa solution

[lienbillet seul]

B'jour les bilouts'

J'ai récemment rencontré un bug plutôt perplexant au premier abord.

Si vous avez un config par défaut et un bloc de filtre grok de cette forme dans votre pipeline dans /etc/logstash/conf.d/:

    filter {
      grok {
        match => { "message" => "^%{YEAR}/%{MONTHNUM}/%{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND} Testata testatut %{SPACE} blop : %{DATA:MonMessage}." }
      }
    }


ET que le contenu de la date déclencheuse change mais que %{DATA:MonMessage} ne change pas 2 fois de suite, eh bien j'ai eu l'honneur de voir que même avant de passer dans quelconque bloc output (et donc d'agir sur les données de %{DATA:MonMessage} par exemple), une erreur Pipeline worker error: [...] Unknow error message nébuleuse apparait et le processus Java de logstash CRASHE et redémarre.

En augmentant le niveau de déboguage à trace dans le fichier de config YAML de logstash, une erreur Ruby concernant le traitement de la timestamp de réception de l'événement avec la locale système fr_FR apparait!

Au final, j'ai trouvé que la correction la plus simple de loin est de modifier le fichier /etc/default/logstash en rajoutant cette ligne à la fin du fichier:

LC_ALL=en_US
#LC_ALL=C # marche aussi

Puis redémarrer le service logstash.