设为首页收藏本站
开启辅助访问

创星网络[分享知识 传递快乐]

 找回密码
 立即注册

QQ登录

只需一步,快速开始

用新浪微博登录

只需一步,快速搞定

搜索

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

2012-8-8 11:56| 发布者: cryinglily| 查看: 344| 评论: 0|原作者: luinstein

摘要: Fluentd是一个日志收集系统,它的特点在于其各部分均是可定制化的,你可以通过简单的配置,将日志收集到不同的地方。 目前开源社区已经贡献了下面一些存储插件:MongoDB, Redis, CouchDB,Amazon S3, Amazon SQS, Scr ...
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插件,你也可以用命令
  1. gem install fluent-plugin-mongo
复制代码
来进行安装
配置
如果你是使用上面的deb/rpm包安装的Fluentd,那么配置文件位置在:/etc/td-agent/td-agent.conf,否则其位置应该在:/etc/fluentd/fluentd.conf
首先我们编辑配置文件中的source来设置日志来源
  1. <source>
  2.   type tail
  3.   format apache
  4.   path /var/log/apache2/access_log
  5.   tag mongo.apache
  6. </source>
复制代码

其中:
  • type tail: tail方式是 Fluentd 内置的输入方式,其原理是不停地从源文件中获取新的日志。
  • format apache: 指定使用 Fluentd 内置的 Apache 日志解析器。
  • path /var/log/apache2/access_log: 指定日志文件位置。
  • tag mongo.apache: 指定tag,tag被用来对不同的日志进行分类
下面再来编辑输出配置,配置日志收集后存储到MongoDB中
  1. <match mongo.**>
  2.   # plugin type
  3.   type mongo

  4.   # mongodb db + collection
  5.   database apache
  6.   collection access

  7.   # mongodb host + port
  8.   host localhost
  9.   port 27017

  10.   # interval
  11.   flush_interval 10s
  12. </match>
复制代码

match标签后面可以跟正则表达式以匹配我们指定的tag,只有匹配成功的tag对应的日志才会运用里面的配置。配置中的其它项都比较好理解,看注释就可以了,其中flush_interval是用来控制多长时间将日志写入MongoDB一次。
测试用ab工具对Apache进行访问,以产生相应的访问日志以供收集
  1. $ ab -n 100 -c 10 http://localhost/
复制代码

然后我们在MongoDB中就能看到收集到的日志了
  1. $ mongo
  2. > use apache
  3. > db.access.find()
  4. { "_id" : ObjectId("4ed1ed3a340765ce73000001"), "host" : "127.0.0.1", "user" : "-", "method" : "GET", "path" : "/", "code" : "200", "size" : "44", "time" : ISODate("2011-11-27T07:56:27Z") }
  5. { "_id" : ObjectId("4ed1ed3a340765ce73000002"), "host" : "127.0.0.1", "user" : "-", "method" : "GET", "path" : "/", "code" : "200", "size" : "44", "time" : ISODate("2011-11-27T07:56:34Z") }
  6. { "_id" : ObjectId("4ed1ed3a340765ce73000003"), "host" : "127.0.0.1", "user" : "-", "method" : "GET", "path" : "/", "code" : "200", "size" : "44", "time" : ISODate("2011-11-27T07:56:34Z") }
复制代码

from:http://blog.nosqlfan.com/html/3521.html


鲜花

握手

雷人

路过

鸡蛋

相关分类

QQ|Archiver|手机版|小黑屋|创星网络 ( 苏ICP备11027519号|网站地图  

GMT+8, 2025-2-23 10:18 , Processed in 0.054227 second(s), 18 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

返回顶部