使用Fluentd + MongoDB构建实时日志收集系统
admin
2023-04-14 00:21:17
0
Fluentd是一个日志收集系统,它的特点在于其各部分均是可定制化的,你可以通过简单的配置,将日志收集到不同的地方。 目前开源社区已经贡献了下面一些存储插件:MongoDB, Redis, CouchDB,Amazon S3, Amazon SQS, Scribe, 0MQ, AMQP, Delayed, Growl 等等。 本文要介绍的是在Fluentd的最新版中已经内置的MongoDB支持。主要通过一个收集Apache日志的例子来说明其使用方法:

机制图解
使用Fluentd + MongoDB构建实时日志收集系统

安装

为了完成相关的测试,需要安装下面一些组件:
  • 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

相关内容

热门资讯

终于了解“么么棋牌究竟有挂吗?... 家人们!今天小编来为大家解答么么棋牌透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里买很...
今日重磅消息“天天九州麻将到底... 网上科普关于“天天九州麻将有没有挂”话题很是火热,小编也是针对天天九州麻将作*弊开挂的方法以及开挂对...
【第一消息】“福建天天开心到底... 有 亲,根据资深记者爆料福建天天开心是可以开挂的,确实有挂(咨询软件无需...
终于明白“闲来贵州麻将有没有挂... 终于明白“闲来贵州麻将有没有挂?”(太坑了果然有挂)您好,闲来贵州麻将这个游戏其实有挂的,确实是有挂...
最新引进“新皇豪炸/金/花究竟... 最新引进“新皇豪炸/金/花究竟有挂吗?”(详细开挂教程)您好,新皇豪炸/金/花这个游戏其实有挂的,确...
玩家攻略科普“微乐捉鸡麻将是不... 玩家攻略科普“微乐捉鸡麻将是不是有挂?”(太坑了原来有挂)您好,微乐捉鸡麻将这个游戏其实有挂的,确实...
重磅消息“马鞍山麻将到底有挂吗... 网上科普关于“马鞍山麻将有没有挂”话题很是火热,小编也是针对马鞍山麻将作*弊开挂的方法以及开挂对应的...
今日重大发现“科乐填大坑有没有... 网上科普关于“科乐填大坑有没有挂”话题很是火热,小编也是针对科乐填大坑作*弊开挂的方法以及开挂对应的...
【第一消息】“今日花牌是不是有... 家人们!今天小编来为大家解答今日花牌透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里买很...