share facebook facebook2 twitter menu hatena pocket slack

2013.02.06 WED

Apacheのログ(アクセス/エラー)をS3にアーカイブ

鈴木 宏康

WRITTEN BY鈴木 宏康

以前、FluentdでWeb Storage Archiveパターンの記事で、FluentdでsyslogをS3にアーカイブする方法を
紹介しました。

今回は、Apacheの(アクセス/エラー)ログをS3にアーカイブしてみます。

○エラーログをS3にアーカイブ

これは、Apacheのエラーログをsyslogに出力することができれば、上記の方法で終了です。
syslogへの出力は設定ファイル(/etc/httpd/conf/httpd.conf)を下記のようにすることで可能です。

...
#ErrorLog logs/error_log
ErrorLog syslog
...

ApacheをリスタートするとsyslogにApacheのエラーログが下記のように出力されます。

...
Dec 23 16:55:43 ip-10-100-0-236 httpd[22042]: [error] [client xxx.xxx.xxx.xxx] Directory index forbidden by Options directive: /var/www/html/
Dec 23 16:55:43 ip-10-100-0-236 httpd[22045]: [error] [client xxx.xxx.xxx.xxx] File does not exist: /var/www/html/favicon.ico

これは、syslogの内容になるので、前述した方法でFluentdがS3にアーカイブしてくれます。

○アクセスログをS3にアーカイブ

エラーログとは異なり、アクセスログをsyslogに出力する仕組みはありません。
(パイプ等で外部プログラムを利用することで出力することは可能です)

しかし、Fluentdのtailのフォーマットには、syslog以外にApacheも標準で用意されているので、
Apacheのアクセスログは直接Fluentdがtailして、S3にアーカイブするようにします。

Fluentdの設定ファイルは、下記のようになりました。


type tail
format apache
path /var/log/httpd/access_log
pos_file /opt/suz-lab/var/lib/td-agent/pos/tail.apache.pos
tag tail.apache


type s3
aws_key_id ACCESS_KEY
aws_sec_key SECRET_KEY
s3_bucket log2.suz-lab.com
s3_endpoint s3-ap-northeast-1.amazonaws.com
path apache/
buffer_path /opt/suz-lab/var/lib/td-agent/buf/s3.apache
time_slice_format %Y/%m/%d/ip-10-100-0-236/%H
flush_interval 10m

このままではパーミッションの問題が発生したので、Apacheのログ出力先ディレクトリのパーミッションも
下記のように調整しました。

# chmod 755 /var/log/httpd/

すると、S3に次のようにアクセスログがアーカイブされるようになります。

2012-12-23T19:25:51+09:00 tail.apache {"host":"xxx.xxx.xxx.xxx","user":"-","method":"GET","path":"/","code":"403","size":"5039","referer":"-","agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.101 Safari/537.11"}
2012-12-23T19:25:51+09:00 tail.apache {"host":"xxx.xxx.xxx.xxx","user":"-","method":"GET","path":"/favicon.ico","code":"404","size":"288","referer":"-","agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.101 Safari/537.11"}
2012-12-23T19:25:52+09:00 tail.apache {"host":"xxx.xxx.xxx.xxx","user":"-","method":"GET","path":"/favicon.ico","code":"404","size":"288","referer":"-","agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.101 Safari/537.11"}

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。