正在尝试为logstash创建正确解析Celery的日志格式的配置,包括多行堆栈跟踪。日志输出的示例可能如下所示:
[2014-04-15 15:11:27,350: DEBUG/Worker-4] Doing some work.
[2014-04-15 15:11:27,362: ERROR/MainProcess] Task core.tasks.sometask[92dc34bd-8139-4f98-b359-d78caf68381d] raised unexpected: ValueError('Foobar',)
Traceback (most recent call last):
File "./venvs/backend-33/lib/python3.4/site-packages/celery/app/trace.py", line 238, in trace_task
R = retval = fun(*args, **kwargs)
File "./venvs/backend-33/lib/python3.4/site-packages/celery/app/trace.py", line 416, in __protected_call__
return self.run(*args, **kwargs)
File "util.py", line 151, in wrapper
rv = func(self, *args, **kwargs)
File "tasks.py", line 104, in do_something_useful
raise ValueError('Foobar')
ValueError: Foobar在某种程度上,我让Grok准备解析单行输出,但多行是一个问题。此配置:
input {
stdin {
codec => multiline {
'negate' => true
'pattern' => '^\['
'what' => 'previous'
}
}
}
output {
stdout {
codec => rubydebug
}
}或多或少直接取自Logstash文档中的多行编解码器,当我运行它时,它根本不产生任何输出。
我尝试使用多行过滤器,但它产生了相同的结果,我还尝试使用--verbose运行logstash,但它没有提供任何有用的信息。这里发生了什么事?
发布于 2014-04-16 16:35:54
经过更多的谷歌搜索,我找到了答案,显然,多行编解码器与stdin输入不能很好地配合。使用文件输入,现在它可以工作了。
https://stackoverflow.com/questions/23102041
复制相似问题