gpt4 book ai didi

logging - 用于多行的 Docker Fluentd 日志记录驱动程序

转载 作者:IT老高 更新时间:2023-10-28 21:21:03 28 4
gpt4 key购买 nike

我正在尝试使用 fluentd 为 docker 环境创建一个集中式日志记录系统。目前,我可以使用 fluentd docker logging 驱动程序将 docker 日志发送到 fluentd,与使用 in_tail 方法读取 docker 日志文件相比,这是一种更简洁的解决方案。但是,我目前正面临多行日志问题。

enter image description here

从上图中可以看出,多行日志是乱序的,这对用户来说非常困惑。有什么办法可以解决这个问题吗?

谢谢。

连续

最佳答案

使用 fluent-plugin-concat 插件帮助我解决了上述问题。

在fluent-conf中添加这些行

 <filter **>
@type concat
key log
stream_identity_key container_id
multiline_start_regexp /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3}
multiline_end_regexp /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3}
</filter>

我的正则表达式正在检查日志中的 DateTimeStamp,其中每行以日期和时间戳开头(注意下面的 "log":"2017-09-21 15:03:27.289)

2017-09-21T15:03:27Z    tag     {"container_id":"11b0d89723b9c812be65233adbc51a71507bee04e494134258b7af13f089087f","container_name":"/bel_osc.1.bc1k2z6lke1d7djeq5s28xjyl","source":"stdout","log":"2017-09-21 15:03:27.289  INFO 1 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.6"}
2017-09-21T15:03:28Z tag {"container_id":"11b0d89723b9c812be65233adbc51a71507bee04e494134258b7af13f089087f","container_name":"/bel_osc.1.bc1k2z6lke1d7djeq5s28xjyl","source":"stdout","log":"2017-09-21 15:03:28.191 INFO 1 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext"}

另外,我必须在 Dockerfile 中添加以下行来安装插件

RUN ["gem", "install", "fluent-plugin-concat", "--version", "2.1.0"] 
#Works with Fluentd v0.14-debian

虽然这个正则表达式在异常发生的时候效果不好,但还是比以前好很多。 Fluentd Link, for reference .

关于logging - 用于多行的 Docker Fluentd 日志记录驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32686502/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com