【问题标题】:Logstash 1.4.2 multiline codecLogstash 1.4.2 多行编解码器
【发布时间】:2014-06-27 13:09:22
【问题描述】:

我正在尝试使用的部分日志:

2014-06-27 14:47:48 Error: Fatal Error (4): syntax error, unexpected 'CakeLog' (T_STRING) in [/public_html/Config/log.php, line 5]
2014-06-27 14:47:48 Error: [FatalErrorException] syntax error, unexpected 'CakeLog' (T_STRING)
Stack Trace:
#0 lib/Cake/Error/ErrorHandler.php(204): ErrorHandler::handleFatalError(4, 'syntax error, u...', '/home/...', 5)
#1 [internal function]: ErrorHandler::handleError(4, 'syntax error, u...', '/home/do...', 5, Array)
#2 /home/shared_user/cakephp-git/lib/Cake/Core/App.php(929): call_user_func('ErrorHandler::h...', 4, 'syntax error, u...', '/home/...', 5, Array)
#3 /lib/Cake/Core/App.php(902): App::_checkFatalError()
#4 [internal function]: App::shutdown()
#5 {main}

我的 logstash 1.4.2 配置(使用与此处描述的几乎完全相同的编解码器 http://logstash.net/docs/1.4.2/codecs/multiline):

input {
  file {
    type => "cake-error"
    path => "/home/user/domains/example.com/public_html/tmp/logs/error.log"
    codec => multiline {
      pattern => "^%{TIMESTAMP_ISO8601}"
      negate => true
      what => "previous"    
    }
  }
}

仅输出第一个错误(没有 PHP 堆栈跟踪的错误)。我怎样才能让另一个工作?

【问题讨论】:

  • 您要解析的文件中是否还有其他行?因为 multiline 在确定无法添加下一行之前不会吐出事件。
  • 如果您的文件有任何新的日志输入,将输出带有多行的第二个事件。这是因为 logstash 确定第二个事件在收到新日志之前仍然没有结束。

标签: logstash


【解决方案1】:

这就是它不起作用的原因:https://github.com/elasticsearch/logstash/issues/1482。多行日志消息的结束只能在新消息进入时确定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    相关资源
    最近更新 更多