将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
用这个方法来检查错误并进行相应的处理。