如何在logstash配置中分配变量?

时间:2014-04-11 06:42:33

标签: elasticsearch logstash

我正在尝试从logstash进程的事件中获取主机名,如果事件符合条件,我希望将主机名发送到另一个文件。但同时该事件应该发送到elasticsearch输出。

我们的想法是将主机名分配给变量,如果满足“if”条件,则将变量值发送到文件。

使用logstash可以实现吗?

此致 拉夫

1 个答案:

答案 0 :(得分:3)

是的,你想要的东西在Logstash中是可行的。 Logstash站点包含配置格式的文档,以及可在http://logstash.net/docs/1.4.0/找到的所有可用插件。您可能希望使用grok filter来提取主机名,并使用file output来写入数据。

这是一个示例confg,它可以满足您的需求:

 input {
     #some input
 } 
 filters { 
     grok {
         match => ["message", "%{HOSTNAME:host} rest of message line" ]
         add_tag => ["has_hostname"]
     }
 }
 output {
    elasticsearch {}
    if "has_hostname" in [tags] {
        file {
            message_format => "%{host}"
            path => "path/to/file"
        }
    }
 }

需要更改grok模式以匹配您的数据,logstash文档包含您可以使用的默认模式集的链接。