如何使用MongoDB存储Docker日志!
日志是系统很重要的一个组成部分,通过日志可以及时发现系统中存在的问题,也可以为修复问题提供线索。Docker提供了多种插件方式管理日志,本文就对使用MongoDB存储Docker日志的过程做个记录。
数据流
Docker产生的日期 发送到 FluentD,然后FluentD在转存到MongoDB。
配置Fluentd
前提:操作系统是CentOS7,已安装MongoDB3.4
1.安装Fluentd
CentOS 7的软件库并没有包含Fluentd的安装包,所以需要手动安装。在CentOS使用的软件td-agent。
上面命令会在/etct/yum.repo.d/目录中,创建一个td-agent的安装库 td.repo,然后自动安装td-agent。安装完毕后设为自动启动。
如果在启动过程中出现问题,可以查看位于/var/log/td-agent/下日志文件td-agent.log
2. 配置将docker日志转存到MongoDB
转存到MongoDB需要插件支持,但是默认情况下td-agent是没有安装该插件的,需要安装。
编辑/etc/td-agent/td-agent.conf,增加
重启td-agent。
3.启动容器
启动容器的命令改为:
运行完毕后,可以到MongoDB中查看日志。
解决写入延迟
上面我们完成了Docker + Fluentd + MongoDB的基本配置。但是在实际的使用过程中,却发现Docker生成的日志并不会立即写入到MongoDB中,有大概1分钟左右的延迟。
查阅Fluentd的文档得知,有一个flush参数可以控制日志的写入频率,默认的是60s。更改flush_interval参数就可以提高写入频率,具体更改如下:
刚开始对文档理解不太透彻,增加了flush_interval参数后,并没有发挥作用,***次更改时,并没有将flush_mode和flush_interval放在buffer结构中。也就是:
从日志中也可以看出上面的配置,并没有发挥作用:
上面说flush_mode并没有起作用。
好了,操作步骤以及实际案例就介绍到这里,希望今天的内容对你所帮助!
相关文章
- 数据库的血泪史,一学就会,从安装到放弃MySQL 数据库安装教程
- MongoDB高可用方案之主从复制
- MySQL 8.0 的 5 个新特性,太实用了!
- MySQL索引-B+树是如何生长的
- MySQL数据库主从技术GTID大揭秘
- 聊聊MySQL的COUNT的性能,看看怎么最快?
- 鱼和熊掌兼得:同时使用 JPA 和 Mybatis
- 浅入浅出 MySQL 索引
- 入职第一天,MySQL就崩了...
- 全栈、均栈、MERN栈,哪个才是下一代Web项目的正确栈?
- 比较Flyway与Liquibase两大数据库迁移工具
- MySQL三种日志有啥用?如何提高MySQL并发度?
- 数据库:SQL Server数据库备份方式
- 聚焦联机交易分析一体化,巨杉数据库湖仓一体&云产品全线升级
- 2021 数据泄露调查:网络犯罪蓬勃发展,85% 的违规涉及人为因素
- 请不要再称数据库是CP或者AP
- MySQL慢日志全解析!
- 存储优化补充篇:Explain索引优化实操
- MySQL系列-Docker搭建Percona XtraDB Cluster(图文)
- 一文详解 SQL 关联子查询