前回単独のサーバ内でapacheログをMongoDBに放り込むとこまでやりました。
が、なんとせっかくブログ用に記録していた作業ログが消えました!なんてこった!
しょうがない。気を取り直して次へ行っちゃいますね。
より実戦に近づいて、リモートのサーバから転送されたapacheログを受け取ってMongoDBに収集していきます。受信サーバと送信サーバの2台でやります。
ところでふと疑問に思ったのですが、fluentdとtd-agentというものの位置付けがなんなんのかちょっと調べてみたところ、fluentdの安定版のパッケージがtd-agentということだそう。
詳しくはわからないけど、fluentdだと新しい拡張がガンガン入ってくるから運用が難しいってこと??最新プラグインとか独自拡張とかする予定がなければtd-agentの方が導入しやすいっていうイメージでいいのかな。
今回もどちらのサーバともCentOS 6.5でやっていきます。
受信側サーバの設定
受信側サーバの設定を行います。転送されてきたapacheログをmongoDBにつっこみます。
1 |
$ sudo vim /etc/td-agent/td-agent.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<source> type forward </source> <match apache.access> type mongo host localhost port 27017 database fluentd_recieved collection apache_access capped capped_size 1024m flush_interval 10s </match> |
設定ファイルをリロード。
1 |
$ sudo service td-agent reload |
送信側
続いて送信側の設定。host, portあたりは各々の環境に合わせて。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<source> type tail path /var/log/httpd/access_log tag apache.access pos_file /var/log/td-agent/httpd-access_log.pos format apache2 </source> <match apache.access> type copy <store> type file path /var/log/td-agent/httpd/access.log time_slice_format %Y%m%d time_slice_wait 10m compress gzip </store> <store> type forward send_timeout 60s recover_wait 10s heartbeat_interval 1s <server> host 111.111.111.11 port 24224 </server> </store> </match> |
設定ファイルをリロード
1 |
$ sudo service td-agent reload |
ログ収集対象のサーバにブラウザでアクセスするもmongoDBにデータが吐かれない。ログを確認するとまたもやPermission denied
1 2 3 |
... Permission denied - /var/log/httpd/access_log ... |
/var/log/httpdディレクトリの権限を変更して再挑戦。
あれ?やっぱり吐かれない。ログも何も出てない。
どうやら受信側サーバでtd-agentを正しく起動した状態にしてから、送信側でtd-agentを起動しないと転送先が認識出来ないからダメらしい。
ひとまず両サーバを再起動したらログが吐かれた!
1 2 3 4 5 6 7 |
> show dbs fluentd_recieved 2.077GB > use fluentd_recieved > db.apache_access.find() { "_id" : ObjectId("535b6c1c3caf7b179b000014"), "host" : "123.198.24.212", "user" : null, "method" : "GET", "path" : "/wp-content/uploads/2013/09/computer-300x225.jpg", "code" : 200, "size" : 22081, "referer" : "http://harada-atsushi.info/", "agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:28.0) Gecko/20100101 Firefox/28.0", "time" : ISODate("2014-04-26T07:48:41Z") } |
うむ。
The following two tabs change content below.

原田 敦
日本CAWのエンジニア。もふもふ部の部長。得意分野はRuby on Railsを使った小規模WEBアプリケーションを高速で開発すること。週末の楽しみは一人お菓子パーティー。三度の飯より小動物をもふもふするのが好きです。

最新記事 by 原田 敦 (全て見る)
- Rails Engineでブログ機能追加するgemを作る - 2015年3月15日
- WEBエンジニア一人だけでサービスを作りきる方法-夫婦のための自動ごはん予定お知らせサービス「GoHaaan」制作でやったこと - 2015年3月7日
- CentOS6でMariaDBのDynamic Columnsを試してみた - 2015年2月28日