Как добавить новое поле под фильтр logstash с помощью ruby?

#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 и возвращаю мне значение. Спасибо