2014-10-31 79 views
4

前調試新logstash神交的過濾器,我一直遵循本指南全職。充分利用

作爲指南的一部分,它會告訴您設置輸入和輸出以及過濾器文件。輸入似乎很好地工作:

input { 
    stdin { } 
} 

輸出是這樣的:

output { 
    stdout { 
     codec => json 
    } 
    file { 
     codec => json 
     path => /tmp/debug-filters.json 
    } 
} 

我收到以下錯誤,當我嘗試運行logstash過程(在這裏我已經與運行 - configtest的錯誤建議我嘗試,但它並沒有提供任何詳細信息):

# /opt/logstash/bin/logstash -f /etc/logstash/debug.d -l /var/log/logstash/logstash-debug.log --configtest 

Sending logstash logs to /var/log/logstash/logstash-debug.log. 
Error: Expected one of #, ", ', -, [, { at line 21, column 17 (byte 288) after output { 
    stdout { 
     codec => json 
    } 
    file { 
     codec => json 
     path => 

我試圖消除在我的輸出文件的部分,我可以得到logstash進程在運行,但是當我粘貼m y登錄到shell我沒有看到日誌條目分解到組件,我期望grok過濾器將其分解。我得到的,當我這樣做是:

Oct 30 08:57:01 VERBOSE[1447] logger.c: == Manager 'sendcron' logged off from 127.0.0.1 
{"message":"Oct 30 08:57:01 VERBOSE[1447] logger.c: == Manager 'sendcron' logged off from 127.0.0.1","@version":"1","@timestamp":"2014-10-31T16:09:35.205Z","host":"lumberjack.domain.com"} 

起初我是有一個新的神交過濾器有問題,所以我現在已經與現有的過濾器,我知道作品(如上圖所示,這是一個Asterisk 1.2試過過濾器),並且一直在彈性搜索中生成條目。

我曾嘗試觸摸輸出中提到的json文件,但這並沒有幫助。

當我尾巴logstash-debug.log現在我只看到寫入我的shell的錯誤。

任何關於調試grok過濾器的建議都會被讚賞,如果我已經錯過了一些非常明顯的事情,道歉,我一直在使用ELK & grok幾個星期,我可能不會在最明智的做法辦法。我希望能夠將示例日誌條目放入到shell中,並將JSON格式的logstash條目放到我的控制檯中,以便我可以看到我的過濾器是否按我希望的那樣工作,並將它們標記爲將在kibana中以結束。如果有更好的方法來做到這一點,請讓我知道。

我使用logstash 1.4.2

回答

7

至於調試神交過濾器的話,你可以使用這個鏈接(http://grokdebug.herokuapp.com/)它有一個非常全面的模式檢測器,它是一個良好的開端。

至於你的文件輸出,你需要圍繞你的路徑""。這裏是我在生產中使用的例子。下面是對文件輸出http://logstash.net/docs/1.4.2/outputs/file#path

output { 
    stdout { 
     codec => rubydebug 
    } 
    file { 
     codec => "plain" 
     path => "./logs/logs-%{+YYYY-MM-dd}.txt" 
    } 
} 
+0

謝謝!當你指出這一點時,這一點非常明顯,我現在感覺非常愚蠢......我之前曾嘗試過這個網站,但無法繼續,但感謝提醒我,我再次嘗試了它,並且幫助大規模地...... – Rumbles 2014-10-31 23:43:53

+2

我的不好,我是博客文章的作者,我剛剛更新了代碼片段! – Tony 2014-11-06 06:35:13