将自定义字段添加到logstash

时间:2015-01-28 01:55:18

标签: python ruby twitter elasticsearch logstash

我正在使用Twitter输入和Elasticsearch输出到Logstash。在logstash中,我想分析传入的推文并基于某种算法添加新字段。我知道我需要编写一个新的插件,但我遇到的例子都是Ruby。

是否可以在Python中编写插件?如果没有,请分享任何关于如何在Ruby中编写一个的好教程。

2 个答案:

答案 0 :(得分:2)

如果您的算法并不复杂,可以使用Ruby过滤器插件来满足您的要求。

例如,

filter {
    ruby {
        code => "
            if event['type'] == 'tweet' 
                event['newfield'] = 'Come from Twitter'
            end 
        "
    }
}

这将添加名称为newfield且值为Come from Twitter

的字段

答案 1 :(得分:2)

我个人不会使用ruby代码,但使用mutate插件(http://logstash.net/docs/1.4.2/filters/mutate

对于配置,您还可以使用提供的条件。可以在此处找到示例:http://logstash.net/docs/1.4.2/configuration#conditionals

if [type] == 'tweet' {
    mutate {
        add_field => { "newfield" => "value can contain variables from the entire message" }
    }
}