google-fluentd:在Cloud Logging log_level中更改严重性

时间:2017-01-04 06:36:00

标签: fluentd google-cloud-dataproc

我们正在Google云Dataproc群集上运行火花作业(很多火花流)。

我们正在使用云日志记录来收集spark作业生成的所有日志。 目前它正在产生很多" INFO"消息导致整个日志卷的大小为几TB。

我想编辑google-fluentd配置,将日志级别限制为" ERROR"等级而不是" INFO"。

尝试将配置设置为"log_level error",但无效。 它也在/etc/google-fluentd/google-fluentd.conf的评论部分中提及# Currently severity is a seperate field from the Cloud Logging log_level.

# Fluentd config to tail the hadoop, hive, and spark message log.
# Currently severity is a seperate field from the Cloud Logging log_level.
<source>
    type tail
    format multi_format
    <pattern>
        format /^((?<time>[^ ]* [^ ]*) *(?<severity>[^ ]*) *(?<class>[^ ]*): (?<message>.*))/
/etc/google-fluentd/google-fluentd.conf/etc/google-fluentd/google-fluentd.conf/etc/google-fluentd/google-fluentd.conf        time_format %Y-%m-%d %H:%M:%S,%L
    </pattern>
    <pattern>
        format none
    </pattern>
    path /var/log/hadoop*/*.log,/var/log/hadoop-yarn/userlogs/**/stderr,/var/log/hive/*.log,/var/log/spark/*.log,
    pos_file /var/tmp/fluentd.dataproc.hadoop.pos
    refresh_interval 2s
    read_from_head true
    tag raw.tail.*
</source>

1 个答案:

答案 0 :(得分:2)

正确。正如评论所述,@log_level和严重程度不同,这充其量令人困惑。 @log_level配置组件记录器的详细程度,而severity是Stackdriver Logging接收的字段。

为了让流利的人排除ERROR下方的任何severity,您可以向/etc/google-fluentd/google-fluentd.conf添加一个明确排除这些名称的grep过滤器。

<match **>块之前的某个时刻添加以下内容:

<filter raw.tail.**>
    @type grep
    exclude1 severity (DEBUG|INFO|NOTICE|WARNING)
</filter>

这将检查severity字段的记录,如果值与正则表达式匹配则拒绝它。