Używam Logstash + Elasticsearch + Kibana do przeglądania moich plików dziennika Tomcat.Logstash: jak dodać nazwę pliku jako pole?
Dla każdego wpisu dziennika potrzebuję znać nazwę pliku, z którego pochodzi. Chciałbym dodać go jako pole. Czy jest jakiś sposób na zrobienie tego? Mam trochę googleed i znalazłem tylko this SO question, ale odpowiedź nie jest już aktualna.
Do tej pory jedynym rozwiązaniem widzę jest określenie oddzielną konfigurację dla każdej możliwej nazwy pliku z innym „add_field” tak:
input {
file {
type => "catalinalog"
path => [ "/path/to/my/files/catalina**" ]
add_field => { "server" => "prod1" }
}
}
Ale potem trzeba przekonfigurować logstash za każdym razem pojawia się nowa możliwość Nazwa pliku. Jakieś lepsze pomysły?
dziękuję za odpowiedź :) Czy to nie sprawdzi nazwy pliku WEWNĄTRZ zawartości pliku logu? – machinery
Zwykle nie pracowałbyś z grokiem w polu wiadomości, ale korzystam z pola ścieżki, które jest specjalnym polem dodawanym automatycznie przez logstash. –
Wielkie dzięki :) Twoje rozwiązanie działa - po dodaniu znaku procentowego przed "{GREEDYDATA: nazwa pliku}". Zaktualizuj swoją odpowiedź, a zaakceptuję ją jako rozwiązanie. Po prostu nie wiedziałem o istnieniu pola "ścieżka". – machinery