2014-10-31 83 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