我一直在关注本指南:
http://deviantony.wordpress.com/2014/06/04/logstash-debug-configuration/
我希望这将帮助我测试我的 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 进程,但是当我将日志行粘贴到 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"}
最初我在使用新的 grok 过滤器时遇到问题,所以我现在尝试使用我知道有效的现有过滤器(如上所示,它是一个 Asterisk 1.2 过滤器)并且已经在弹性搜索中生成条目一段时间了。
我试过触摸输出中提到的 json 文件,但这没有帮助。
现在,当我跟踪 logstash-debug.log 时,我只看到了也在写入我的 shell 的错误。
任何有关调试 grok 过滤器的建议都将不胜感激,如果我错过了一些非常明显的东西,抱歉,我只与 ELK & grok 合作了几个星期,我可能没有以最明智的方式这样做。我希望能够将示例日志条目放入 shell 并将 JSON 格式的 logstash 条目放入我的控制台,这样我就可以查看我的过滤器是否按我希望的那样工作,并标记它们,因为它们将在 kibana 中显示结束。如果有更好的方法来做到这一点,请告诉我。
我正在使用logstash 1.4.2