ELASTIC LOAD BALANCERS(ELB)経由を使った場合のリクエスト元を取得する
Apacheのログフォーマットの形式についてもあまり知らなかったからログフォーマットの学習もかねてみた。
特にログフォーマットとか気にせずロードバランサー経由でも アクセス元のIPを表示したい場合は以下の参考にしたURLでも紹介している ELB配下のEC2アクセスログについてあれこれの最初に書かれている以下のコードを書けば良い。
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined ↓ #このように変更 LogFormat "%h %l %u %t %D \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D %{X-Forwarded-For}i %{X-Forwarded-Proto}i" combined
上記のように変更するとそれぞれのパラメータは以下のようになる。 Apache モジュール mod_log_configを参照するともっと理解できる思う
リクエストURL : http://example.com/index.php
- %h ・・・ ELBのIPが表示される
- %l ・・・ 「-」
- %u ・・・ 「-」
- %t ・・・ [15/Dec/2012:20:25:40 +0900]
- %D ・・・リクエストを処理するのにかかった時間、マイクロ秒単位
- %r ・・・ GET /index.php?=PHP~~(文字列) HTTP/1.1
- %s ・・・ ステータス(例200) ( 最後のステータスは %>s )
- %b ・・・ 「レスポンスのバイト数(例2130)」
- %{Referer}i ・・・リクエストURL(例 : http://example.com/)
- %{User-Agent}i ・・・ユーザーエージェント(例 : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/522.21 (KHTML, like Gecko) Chrome/23.0.1111.90)
- %{X-Forwarded-For}i ・・・ アクセス元IP(例 : 111.11.111.11)
- %{X-Forwarded-Proto}i ・・・ プロトコル(例 : http)