1
2019/08/13 13:13:17 [DEBUG] Hello, world!
2019/08/13 13:13:17 [INFO] Ignore me
2019/08/13 13:13:17 [INFO] SPECIFIC_LOG :{"name": "mark"}

我喜欢上面的日志,我只需要 grep 包含“SPECIFIC_LOG”的日志,我想忽略其他日志。

我试图像这样设置配置,

<source>
    @type tail
    path ./sample.log
    tag debug.sample
    <parse>
        @type regexp
        expression /\[\w+\] SPECIFIC_LOG\s:(?<message>.*)$/
    </parse>
</source>

<filter debug.**>
    @type parser
    key_name message
    format json
</filter>

它适用于具有模式的匹配日志,但对于不匹配的日志,我收到警告说

#0 pattern not matched: "2019/08/13 13:13:17 [DEBUG] Hello, world!"

如何仅 grep 匹配模式的日志,以便解决警告?

4

1 回答 1

0

这只是模式不匹配的警告,在我看来,可以忽略它。

要忽略此类警告,您可以设置emit_invalid_record_to_error false选项。

<filter debug.**>
    @type parser
    key_name message
    format json
    emit_invalid_record_to_error false
</filter>

有关此标志的更多信息 - https://docs.fluentd.org/filter/parser#emit_invalid_record_to_error

早期版本有suppress_parse_error_log标志,现在它已被替换为emit_invalid_record_to_error.

缺少suppress_parse_error_log。有哪些替代方案?

从 v1 开始,parser过滤器不支持suppress_parse_error_log参数,因为解析器过滤器使用 @ERROR 功能而不是内部日志记录来挽救无效记录。如果您只想忽略无效记录,请将 emit_invalid_record_to_error 设置为 false。另请参阅 emit_invalid_record_to_error 参数。

于 2019-08-22T00:17:19.547 回答