如何使用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并没有起作用。

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


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

查看所有标签

猜你喜欢:

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

自品牌

自品牌

[美] 丹·斯柯伯尔(Dan Schawbel) / 佘卓桓 / 湖南文艺出版社 / 2016-1-1 / 39.80元

什么是自品牌?如何利用新媒体推广自己?如何放大自己的职业优势? 细化到如何巩固“弱联系”人脉?如何在团队里合作与生存?如何开创自己的事业?这些都是职场人不得不面临的问题,但少有人告诉你答案,你需要利用书里分享的高效方法独辟蹊径,把自己变成职场里高性价比的人才。这是一本教你利用新型社交媒体开发职业潜能的自我管理读本,不管你是新人还是老鸟,都可以通过打造自品牌在职场中脱颖而出。如果不甘平庸,就亮......一起来看看 《自品牌》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换