
Ich versuche, Teilzeichenfolgen aus meinem Pfadfeld in meiner Logstash-Konfiguration zu extrahieren.
Das Feld „Pfad“ sieht folgendermaßen aus:
/storage/logs/deployment/servers/hostname.example.com/server.log
In einem Filterabschnitt habe ich Folgendes:
ruby {
code => "event.set('log_filename',
event.get('path').split('/').last)"
}
Das funktioniert einwandfrei. Ich erhalte ein neues Feld mit dem Namen „log_filename“.
Allerdings interessiert mich auch der Servername (hostname.example.com)
Also habe ich Folgendes versucht:
ruby {
code => "event.set('log_filename', event.get('path').split('/').[-1]) event.set('server_name', event.get('path').split('/').[-2])"
}
Das funktioniert überhaupt nicht. Ich erhalte keine Fehler in meinem Logstash-Protokoll, aber es werden keine Logstash-Daten angezeigt.
Mir geht es um den Dateinamen und das davor stehende Feld, das den Host darstellt, von dem die Datei stammt.
Ist etwas mit meiner Syntax nicht in Ordnung?