メモ: Apache HTTP Server(on AWS)接続関連のログ設定
リアルタイム性能監視まではしないけれども、後からネットワーク接続まわりのエラーをログから探すことはある、カモ……? という程度の用途のサーバで、ログの設定をどうするか。というメモです。
Webサーバのログに、エラーを出力するように設定していなければ、確認のしようがありません。
というわけで、設定します。
Apacheなら、すくなくとも次のパラメタを含むLogFormatを、httpd.confで定義します。
- 処理にかかった時間(%T)
- 完了ステータス(%X)
(参考)Apache モジュール mod_log_config http://httpd.apache.org/docs/2.2/mod/mod_log_config.html
%Xは、コネクションが張られた後に、指定時間を過ぎてタイムアウトした場合、Xを記録してくれるそうです。
次の記事を読むまで、気にしていませんでした(ログにぽつんと「X」が出ているサーバには、何度も出会ったことがありますが……これだったんですね)
- Apacheのログフォーマット「%X」 http://d.hatena.ne.jp/black-mountain-side/20090917/1253192600 ←素晴らしい記事。自分もApache読まないと…と思ってしまった(x_x;)
- HTTPクライアントが全レスポンスを受信しない時のApacheとTomcatの動作 http://dev.ariel-networks.com/Members/inoue/unhttp/
また、AWSインスタンスのサーバログに関して、クラスメソッドさんのブログに良い記事がありました。
- ELB配下のEC2アクセスログについてあれこれ http://dev.classmethod.jp/etc/elb-ec2-log-x-forwarded-for/
次の内容がよくまとまっていて、助かりました。
- ELBを介したアクセスでも、アクセス元を記録する方法
- ELBからの定期的なヘルスチェックをログ出力から除去する方法