Grep filter. Useful for dropping events you don't want to pass, or adding tags or fields to events that match.
Events not matched are dropped. If 'negate' is set to true (defaults false), then matching events are dropped.
filter {
grep {
/[A-Za-z0-9_-]+/ => ... # string (optional)
add_field => ... # hash (optional), default: {}
add_tag => ... # array (optional), default: []
drop => ... # boolean (optional), default: true
exclude_tags => ... # array (optional), default: []
match => ... # hash (optional), default: {}
negate => ... # boolean (optional)
remove_tag => ... # array (optional), default: []
tags => ... # array (optional), default: []
type => ... # string (optional), default: ""
}
}
Config for grep is: fieldname: pattern Allow arbitrary keys for this config.
If this filter is successful, add any arbitrary fields to this event. Example:
filter {
myfilter {
add_field => [ "sample", "Hello world, from %{@source}" ]
}
}
On success, myfilter will then add field 'sample' with the value above and the %{@source} piece replaced with that value from the event.
If this filter is successful, add arbitrary tags to the event. Tags can be dynamic and include parts of the event using the %{field} syntax. Example:
filter {
myfilter {
add_tag => [ "foo_%{somefield}" ]
}
}
If the event has field "somefield" == "hello" this filter, on success, would add a tag "foo_hello"
Drop events that don't match
If this is set to false, no events will be dropped at all. Rather, the requested tags and fields will be added to matching events, and non-matching events will be passed through unchanged.
Only handle events without any of these tags. Note this check is additional to type and tags.
A hash of matches of field => regexp. If multiple matches are specified, all must match for the grep to be considered successful. Normal regular expressions are supported here.
Negate the match. Similar to 'grep -v'
If this is set to true, then any positive matches will result in the event being cancelled and dropped. Non-matching will be allowed through.
If this filter is successful, remove arbitrary tags from the event. Tags can be dynamic and include parts of the event using the %{field} syntax. Example:
filter {
myfilter {
remove_tag => [ "foo_%{somefield}" ]
}
}
If the event has field "somefield" == "hello" this filter, on success, would remove the tag "foo_hello" if it is present
Only handle events with all of these tags. Note that if you specify a type, the event must also match that type. Optional.
The type to act on. If a type is given, then this filter will only act on messages with the same type. See any input plugin's "type" attribute for more. Optional.