#ruby #elasticsearch #logstash #logstash-file
#ruby #elasticsearch #logstash #logstash-файл
Вопрос:
Мне нужна помощь в том, как добавить новое поле через ruby под фильтром и, наконец, вывести его в файл. Кто-нибудь может мне посоветовать? Спасибо.
input {
file {
type => "syslog"
path => "/opt/logstash/log/dns.log"
start_position => beginning
sincedb_path => "/dev/null"
}
}
filter {
ruby {
code => "
if event['type'] == 'syslog'
event['newfield'] = 'NewInfoCreated'
end
"
}
}
output {
file {
path => "/opt/logstash/testing.txt"
codec => line { format => "custom format: %{message}"}
}
}
Ввод dns.log
будет выглядеть следующим образом:
<blink>
{"ts":"2016-10 24T02:01:28.334052Z","uid":"CILq5k2MLCUYeBZJgd","id.orig_h":"10.17.103.224","id. orig_p":53362,"id.resp_h":"172.18.24.115"}
</blink>
Комментарии:
1. Что происходит при запуске этого кода? Кроме того, почему бы не использовать mutate-> add_field?
2. @Alain Collins, я хотел бы перезаписать некоторое значение в поле в ruby. Почему ruby? Это потому, что я вызываю сервер redis и возвращаю мне значение. Спасибо