如何使用MongoDB存储Docker日志!

存储 存储软件 MongoDB
日志是系统很重要的一个组成部分,通过日志可以及时发现系统中存在的问题,也可以为修复问题提供线索。

[[243829]]

日志是系统很重要的一个组成部分,通过日志可以及时发现系统中存在的问题,也可以为修复问题提供线索。Docker提供了多种插件方式管理日志,本文就对使用MongoDB存储Docker日志的过程做个记录。

数据流

如何使用MongoDB存储Docker日志!

 

Docker产生的日期 发送到 FluentD,然后FluentD在转存到MongoDB。

配置Fluentd

前提:操作系统是CentOS7,已安装MongoDB3.4

1.安装Fluentd

CentOS 7的软件库并没有包含Fluentd的安装包,所以需要手动安装。在CentOS使用的软件td-agent。

如何使用MongoDB存储Docker日志!

 

上面命令会在/etct/yum.repo.d/目录中,创建一个td-agent的安装库 td.repo,然后自动安装td-agent。安装完毕后设为自动启动。

如何使用MongoDB存储Docker日志!

 

如果在启动过程中出现问题,可以查看位于/var/log/td-agent/下日志文件td-agent.log

2. 配置将docker日志转存到MongoDB

转存到MongoDB需要插件支持,但是默认情况下td-agent是没有安装该插件的,需要安装。

如何使用MongoDB存储Docker日志!

 

编辑/etc/td-agent/td-agent.conf,增加

如何使用MongoDB存储Docker日志!

 

重启td-agent。

3.启动容器

启动容器的命令改为:

如何使用MongoDB存储Docker日志!

 

运行完毕后,可以到MongoDB中查看日志。

解决写入延迟

上面我们完成了Docker + Fluentd + MongoDB的基本配置。但是在实际的使用过程中,却发现Docker生成的日志并不会立即写入到MongoDB中,有大概1分钟左右的延迟。

查阅Fluentd的文档得知,有一个flush参数可以控制日志的写入频率,默认的是60s。更改flush_interval参数就可以提高写入频率,具体更改如下:

如何使用MongoDB存储Docker日志!

 

刚开始对文档理解不太透彻,增加了flush_interval参数后,并没有发挥作用,***次更改时,并没有将flush_mode和flush_interval放在buffer结构中。也就是:

如何使用MongoDB存储Docker日志!

 

从日志中也可以看出上面的配置,并没有发挥作用:

如何使用MongoDB存储Docker日志!

 

上面说flush_mode并没有起作用。

好了,操作步骤以及实际案例就介绍到这里,希望今天的内容对你所帮助!

责任编辑:武晓燕 来源: 今日头条
相关推荐

2021-07-27 05:05:46

MongoDB存储Hangfire

2023-03-28 08:21:20

2023-10-09 07:31:25

2020-11-30 11:55:07

Docker命令Linux

2019-07-08 09:10:48

TigGitLinux

2023-08-23 10:16:47

日志系统

2020-02-04 13:58:11

存储云存储IT

2022-07-29 15:19:27

Dockersudo权限

2019-08-07 12:40:57

Linux命令存储性能

2011-05-23 13:30:00

MySQLMongoDB

2019-07-01 09:33:58

DockerNginx操作系统

2023-12-11 22:17:56

Docker镜像for 循环

2024-11-04 09:34:17

2022-09-15 08:31:11

主从复制模式Docker

2018-04-19 08:58:17

容器块存储

2009-05-04 10:25:36

XML.NET数据

2019-09-17 08:00:24

DockerCompose命令

2014-12-16 10:08:25

Docker日志处理镜像

2014-12-25 10:15:37

DockerJava

2017-05-23 15:53:52

docker服务容器
点赞
收藏

51CTO技术栈公众号