WindowsServer ばかり触れる機会のあるマルオです。
さて、AWS で ロードバランサーを使用していると、ウェブサーバーのアクセスログのアクセスもとIPアドレスはロードバランサーのIPアドレスが出力されてしまいます。
そこで x-forwarded-for というHTTPヘッダ使用して、ウェブサーバー設定を変更して本当のアクセス元IPを取得できるように設定変更します。
障害切り分けをする際に「誰がアクセスしていたか」が分からないと困るもんです。
– – – – – – – – – – – – – – – – – – – –
X-Forwarded-For 有効化
適用したい環境
・WindowsServer2012R2
・IIS 8.5
・ClassicLoadBalancer (HTTPS/HTTP)
IIS 8.5より前のバージョン は Advanced Logging というモジュールが必要だそうですが、今回は IIS 8.5 なので、Enhanced Logging という機能で実現できるそうです。
作業開始
[IISコンソール] > [Logging]
x-fowarded-for フィールド作成
次の値を入力します。
——-
Filed Name: X-Forwarded-For
Source Type: Request Header
Source: X-Forwarded-For
結果確認
IISログ:C:inetpublogsLogFilesW3SVC1
フィールドの最後にIPアドレス表示が確認できました!これで誰がアクセスしたのかが明確にすることができるので一安心です。
最後に
WindowsServerのログを UNIX の tail の用に動的表示させるのに次のコマンドを使用してみます。
> Get-Content -Path <LogFilesPath/LogFileName> -Tail 10 -Wait
「-Tial 10」は表示行数なので適宜変更しましょう。これは便利だ。。
おわり