千家信息网

使用Fluentd + MongoDB构建实时日志收集系统

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Fluentd是一个日志收集系统,它的特点在于其各部分均是可定制化的,你可以通过简单的配置,将日志收集到不同的地方。 目前开源社区已经贡献了下面一些存储插件:MongoDB, Redis, Couch
千家信息网最后更新 2026年11月01日使用Fluentd + MongoDB构建实时日志收集系统Fluentd是一个日志收集系统,它的特点在于其各部分均是可定制化的,你可以通过简单的配置,将日志收集到不同的地方。 目前开源社区已经贡献了下面一些存储插件:MongoDB, Redis, CouchDB,Amazon S3, Amazon SQS, Scribe, 0MQ, AMQP, Delayed, Growl 等等。 本文要介绍的是在Fluentd的最新版中已经内置的MongoDB支持。主要通过一个收集Apache日志的例子来说明其使用方法:

机制图解

安装

为了完成相关的测试,需要安装下面一些组件:
  • Fluentd with MongoDB Plugin
  • MongoDB
  • Apache (with the Combined Log Format)
在Fluentd的最新安装包中已经包含了MongoDB插件,你也可以用命令
gem install fluent-plugin-mongo
来进行安装
  • Debian Package
  • RPM Package
  • MongoDB Downloads

配置

如果你是使用上面的deb/rpm包安装的Fluentd,那么配置文件位置在:/etc/td-agent/td-agent.conf,否则其位置应该在:/etc/fluentd/fluentd.conf 首先我们编辑配置文件中的source来设置日志来源
  type tail  format apache  path /var/log/apache2/access_log  tag mongo.apache
其中:
  1. type tail: tail方式是 Fluentd 内置的输入方式,其原理是不停地从源文件中获取新的日志。
  2. format apache: 指定使用 Fluentd 内置的 Apache 日志解析器。
  3. path /var/log/apache2/access_log: 指定日志文件位置。
  4. tag mongo.apache: 指定tag,tag被用来对不同的日志进行分类
下面再来编辑输出配置,配置日志收集后存储到MongoDB中
  # plugin type  type mongo  # mongodb db + collection  database apache  collection access  # mongodb host + port  host localhost  port 27017  # interval  flush_interval 10s
match标签后面可以跟正则表达式以匹配我们指定的tag,只有匹配成功的tag对应的日志才会运用里面的配置。配置中的其它项都比较好理解,看注释就可以了,其中flush_interval是用来控制多长时间将日志写入MongoDB一次。

测试

用ab工具对Apache进行访问,以产生相应的访问日志以供收集
$ ab -n 100 -c 10 http://localhost/
然后我们在MongoDB中就能看到收集到的日志了
$ mongo> use apache> db.access.find(){ "_id" : ObjectId("4ed1ed3a340765ce73000001"), "host" : "127.0.0.1", "user" : "-", "method" : "GET", "path" : "/", "code" : "200", "size" : "44", "time" : ISODate("2011-11-27T07:56:27Z") }{ "_id" : ObjectId("4ed1ed3a340765ce73000002"), "host" : "127.0.0.1", "user" : "-", "method" : "GET", "path" : "/", "code" : "200", "size" : "44", "time" : ISODate("2011-11-27T07:56:34Z") }{ "_id" : ObjectId("4ed1ed3a340765ce73000003"), "host" : "127.0.0.1", "user" : "-", "method" : "GET", "path" : "/", "code" : "200", "size" : "44", "time" : ISODate("2011-11-27T07:56:34Z") }
来源: blog.treasure-data.com
翻译: http://blog.nosqlfan.com/html/3521.html
日志 配置 位置 文件 不同 插件 方式 来源 存储 测试 系统 成功 使用方法 例子 原理 只有 可以通过 命令 地方 工具 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州大一互联网络科技有限公司 互联网科技媒体 西安互联网科技公司 国外互联网科技网站 互联网科技类展会 广州优美互联网科技 随着互联网科技发展 阿大互联网科技有限公司 移动互联网年度科技创新 互联网科技大奖都有哪些公司 国大互联网教育科技有限公司工作 科技类公司包括互联网吗 云南省自由互联网科技有限公司 江苏互联网科技小贷 山东大美朱楼互联网科技有限公司 互联网科技企业商标注意事项 广州智享互联网科技 绵阳真晨互联网科技有限公司 互联网的黑科技实验室 互联网 科技节活动 微视频大赛 新华互联网科技学院 科技服务与互联网 苏州互联网科技贷款公司 济南和联互联网科技有限公司 语蝶互联网科技有限公司 未来五年的互联网科技 国大互联网教育科技有限公司工作 工业互联网展湾科技股份有限公司 从那以后互联网科技有限公司 数字科技和互联网金融哪个好
0