如何使用MongoDB存储Docker日志!

栏目: 数据库 · 发布时间: 7年前

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

如何使用 <a href='https://www.codercto.com/topics/18948.html'>MongoDB</a> 存储 <a href='https://www.codercto.com/topics/20577.html'>Docker</a> 日志!

日志是系统很重要的一个组成部分,通过日志可以及时发现系统中存在的问题,也可以为修复问题提供线索。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并没有起作用。

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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Go Web 编程

Go Web 编程

[新加坡]Sau Sheong Chang(郑兆雄) / 黄健宏 / 人民邮电出版社 / 2017-11-22 / 79

《Go Web 编程》原名《Go Web Programming》,原书由新加坡开发者郑兆雄(Sau Sheong Chang)创作、 Manning 出版社出版,人名邮电出版社引进了该书的中文版权,并将其交由黄健宏进行翻译。 《Go Web 编程》一书围绕一个网络论坛 作为例子,教授读者如何使用请求处理器、多路复用器、模板引擎、存储系统等核心组件去构建一个 Go Web 应用,然后在该应用......一起来看看 《Go Web 编程》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具