2017-04-10 78 views
1

我完全新的Logstash。我今天才開始研究它。我沒有找到任何好的教程。所以我在這裏發佈我的查詢。Logstash - 基本神交模式不工作

我有一個基本的conf文件:

input { 
    file{ 
     path => "C:/software/logstash-5.3.0/logstash-5.3.0/bin/test1.txt" 
     type => "Text File" 
     start_position => "beginning" 
    } 
} 

filter { 

    grok { 
     match => [ "message", "%{WORD:File Name} %{WORD:Method Name} %{NUMBER:testing Number} %{NUMBER:testing second number}" ] 
    } 
} 

output{ 

    file { 
     path => "C:/software/logstash-5.3.0/logstash-5.3.0/bin/test_op1.txt" 
     codec => line { format => "File Name is: %{File Name} and Method Name is: %{Method Name}" 
     }  
    } 

    stdout {} 
} 

我在谷歌搜索看到幾個例子做這個的conf文件。

我輸入文件只包含一個行:TESTFILE TestMethod的123 345

我只是想了解Logstash如何在這裏工作。

我跑使用上述CONF文件和輸入文件中的logstash。 它開始成功運行。 並在控制檯上打印了「testFile testMethod 123 345」。 和「文件名是:%{文件名}和方法名稱是:%{方法名稱} 」得到了打印輸出文件。 而期望的輸出是:「文件名是:testFile和方法名稱是:testMethod」

在將configc => ruby​​debug添加到配置文件的輸出後,將輸出附加爲圖像。 output

可否請你建議我在哪裏,我錯了。 我是否需要創建任何模式文件或Grok是否有任何默認模式文件。

任何幫助將深表謝意。

謝謝。

+0

基於此[elastic.co支持線程](https://discuss.elastic.co/t/discover-field-names-with-spaces/37467/4),我會勸阻在你的領域名稱中使用空格和不一致的資本策略 –

+0

請'標準輸出{編解碼器=>「rubydebug」}'運行這個並將結果添加到您的問題 –

+0

增加的結果作爲圖像的問題 –

回答

2

標識的問題。問題是由我在GROK模式中使用的命名約定引起的。在GROK模式中使用空格導致了這個問題。

更正神交模式

grok { 
    match => [ "message", "%{WORD:FileName} %{WORD:MethodName} %{NUMBER:Number1} %{NUMBER:Number2}" ] 
} 

通過使用這種神交模式,我的問題解決了。 感謝您的建議https://stackoverflow.com/users/5216668/will-barnwell