实时文章采集(测试用ab对Apache进行访问日志收集(组图)!)

优采云 发布时间: 2021-10-27 22:15

  实时文章采集(测试用ab对Apache进行访问日志收集(组图)!)

  Fluentd 是一个日志采集系统。它的特点是它的零件是可定制的。您可以通过简单的配置将日志采集到不同的地方。

  目前开源社区贡献了以下存储插件:MongoDB、Redis、CouchDB、Amazon S3、Amazon SQS、Scribe、0MQ、AMQP、Delayed、Growl等。

  本文将介绍最新版本的 Fluentd 中内置的 MongoDB 支持。主要通过一个采集Apache日志的例子来说明它的使用:

  机构图

  

  安装

  为了完成相关测试,需要安装以下组件:

  Fluentd的最新安装包已经收录了MongoDB插件,也可以使用命令

  gem install fluent-plugin-mongo

  安装

  配置

  如果使用上述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

  在:

  type tail:tail方法是Fluentd内置的输入法,其原理是不断从源文件中获取新的日志。format apache:指定使用 Fluentd 的内置 Apache 日志解析器。path /var/log/apache2/access_log:指定日志文件的位置。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标签后面可以跟一个正则表达式来匹配我们指定的标签,只有匹配成功的标签对应的日志才会使用里面的配置。配置中的其他项比较容易理解,看注释就行了,其中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") }

  来源:

  翻译:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线