将Apache的访问日志通过Fluentd存入MongoDB的方法

使用Fluentd(td-agent)将Apache的访问日志动态地注册到MongoDB中。
Web应用和日志汇总服务器采用两台配置。

发送方服务器:输出Apache访问日志的服务器。

接收方服务器:
用于汇总日志的MongoDB服务器。

准备发信端服务器

安装td-agent

添加URL以便使用yum进行安装。
然后使用yum进行安装。

sudo vi /etc/yum.repos.d/td.repo
[treasuredata]name=TreasureDatabaseurl=http://packages.treasure-data.com/redhat/$basearchgpgcheck=0
sudo yum install -y td-agent

td-agent的配置

重写td-agent.conf文件。
※原有内容可以全部清除并进行替换。

vi /etc/td-agent/td-agent.conf
<source>  type tail  format apache  path /var/log/httpd/httpd_access_log  tag mongo.apache</source><match mongo.apache>  type forward  flush_interval 10s  <server>    host ホスト名    port 24224  </server></match>```

#受信サーバー準備
##fluentdのインストール
gemからfluentdをインストールする。
※受信サーバーにはruby1.9以上が入っていることが前提。

“`
使用以下命令安装所需的软件包:
gem install fluentd
gem install bson_ext
gem install fluent-plugin-mongo
“`

安装MongoDB

只需一种选项,以下是中文原生的释义:
需要添加URL来通过yum进行安装。
然后使用yum进行安装。

vi /etc/yum.repos.d/10gen.repo
[10gen]name=10gen Repositorybaseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64gpgcheck=0enabled=1
yum install mongo-10gen-server mongo-10gen

开始日志收集

启动MongoDB

在接收方服务器上启动mongoDB。

/etc/init.d/mongod start

在接收方服务器上启动Fluentd。

fluentd -c /etc/fluentd/fluent.conf -vv -o /var/log/fluentd/fluentd.log &

在发信服务器上启动td-agent。

sudo /etc/init.d/td-agent start

确认动作

在发送端服务器上手动记录访问日志。

sudo vi /var/log/httpd/httpd_access_log
127.0.0.1 - - [10/Jun/2013:20:30:39 +0900] "GET /favicon.ico HTTP/1.1" 404 288 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36"127.0.0.1 - - [10/Jun/2013:20:46:07 +0900] "GET / HTTP/1.1" 403 5044 "-" "Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0"127.0.0.1 - - [10/Jun/2013:20:46:07 +0900] "GET /favicon.ico HTTP/1.1" 404 288 "-" "Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0"

查看MongoDB内容的随信方服务器。

mongo httpd
>db.accesslog.count()
3
>db.accesslog.find

当能够确认MongoDB的访问日志内容时,设置就完成了。

额外的内容

当访问日志没有被接收方服务器注册时。

查看td-agent日志。

tail -f -n 100 /var/log/td-agent/td-agent.log

用这个方法来检查错误并进行相应的处理。

bannerAds