У меня есть несколько сообщений журнала в файле, который я обрабатываю с помощью плагинов фильтра logstash. Затем отфильтрованные журналы отправляются в elasticsearch.Падающий фильтр не работает logstash
В сообщении журнала есть одно поле под названием addID. Я хочу отбросить все сообщения журнала, которые имеют конкретный addID. Эти конкретные addIDS присутствуют в файле ID.yml.
Сценарий: Если addID сообщения журнала совпадает с любым из addID, присутствующих в файле ID.yml, это сообщение журнала должно быть удалено.
Может ли кто-нибудь помочь мне в достижении этого?
Ниже приведен файл конфигурации.
input {
file {
path => "/Users/jshaw/logs/access_logs.logs
ignore_older => 0
}
}
filter {
grok {
patterns_dir => ["/Users/jshaw/patterns"]
match => ["message", "%{TIMESTAMP:Timestamp}+{IP:ClientIP}+{URI:Uri}"]
}
kv{
field_split => "&?"
include_keys => [ "addID" ]
allow_duplicate_values => "false"
}
if [addID] in "/Users/jshaw/addID.yml" {
drop{}
}
}
output {
elasticsearch{
hosts => ["localhost:9200"]
}
}
Спасибо за ответ. Итак, если я использую ruby-фильтр, то могу ли я удалять сообщения журнала, имеющие конкретный addID? – User24
@ User24 Да. Cf [документация] (https://www.elastic.co/guide/en/logstash/current/plugins-filters-ruby.html) – baudsp