2014-04-11 77 views
1

我正在嘗試從logstash進程的事件中獲取主機名,並且如果事件符合條件,我希望將主機名發送到另一個文件。但同時該事件應發送給elasticsearch輸出。如何在logstash配置中分配一個變量?

想法是將主機名稱分配給變量,並將變量值發送到文件,如果滿足「if」條件。

這可能與logstash?

問候, 拉夫

回答

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" 
     } 
    } 
} 

的神交模式將需要進行修改,以符合您的數據時,logstash文檔包含一個鏈接的默認模式設置,您可以使用。