日志是系统中非常重要的一部分。通过日志可以及时发现系统中存在的问题,也可以为修复问题提供线索。Docker提供了多种插件方式来管理日志。本文将记录使用MongoDB存储Docker日志的过程。数据流Docker生成的date发送给FluentD,然后FluentD转储到MongoDB。配置Fluentd前提条件:操作系统为CentOS7,已安装MongoDB3.41。CentOS7安装Fluentd的软件库中没有Fluentd的安装包,需要手动安装。CentOS中使用的软件td-agent。以上命令会在/etct/yum.repo.d/目录下创建一个td-agent安装库td.repo,然后自动安装td-agent。设置为安装后自动启动。如果启动过程中出现问题,可以查看位于/var/log/td-agent/下的日志文件td-agent.log2。配置docker日志传输到MongoDB,传输到MongoDB需要插件支持,但是默认td-agent没有安装插件,需要安装。编辑/etc/td-agent/td-agent.conf,添加restarttd-agent。3.启动容器启动容器的命令改为:运行后可以在MongoDB中查看日志。解决写延迟上面我们已经完成了Docker+Fluentd+MongoDB的基本配置。但是在实际使用过程中,发现Docker产生的日志并没有立即写入MongoDB,有1分钟左右的延迟。根据Fluentd的文档,有一个flush参数可以控制日志的写入频率,默认是60s。改变flush_interval参数可以增加写入频率。具体变化如下:一开始对文档不是很了解。加了flush_interval参数后,没有用。我第一次改的时候,没有把flush_mode和flush_interval放到buffer里面。在结构上。即:从日志中也可以看出上面的配置不起作用:上面写着flush_mode不起作用。好了,操作步骤和实际案例就介绍到这里了,希望今天的内容能对大家有所帮助!
