Logstash: How to Add File Name as a Field?
Better Stack Team
Updated on November 18, 2024
To add the file name as a field in Logstash, you can use the path
metadata provided by the file
input plugin. Here’s a basic configuration:
- Use the
file
input plugin: Capture thepath
value (the file’s full path). - Extract the file name: Use a filter to isolate the file name and add it as a field.
Example Configuration
input {
file {
path => "/path/to/your/files/*.log" # Adjust path as needed
start_position => "beginning"
sincedb_path => "/dev/null" # For testing purposes; adjust as needed
}
}
filter {
grok {
match => { "path" => "/path/to/your/files/%{GREEDYDATA:filename}.log" }
}
}
output {
stdout {
codec => rubydebug # Displays events on the console for debugging
}
}
Explanation
%{GREEDYDATA:filename}
: Extracts the filename from thepath
. Adjust the path pattern if necessary.filename
: Stores the extracted file name in a new field namedfilename
in each log event.
This setup will include the file name as a separate field in your Logstash output, making it easier to filter and analyze logs by file source.