Azure Load Balancerと Azure Application Gateway のアクセスログを比較してみる

はじめに

くどうです。

Azureにはアクセスを負荷分散する方法として、Load BalancerとApplication Gatewayが用意されています。 しかし、それぞれレイヤー4とレイヤー7で挙動が異なりHTTPdへのアクセスログが異なります。 そこで、今回はアクセスログについて比較していきたいと思います。

用意した環境はCentOS上にApacheをデフォルトの状態(yum install httpd)したものです。

Load Balancer

実際にログを確認してみます。

Load Balancerからの死活監視(プローブ)は「Load Balancer Agent」と表示されます。 通常の外部からのアクセスもIPアドレスなども問題なく表示されています。

ただし、Load Balancerからの死活監視のログが邪魔ですね。 /etc/httpd/conf/httpd.conf を以下のように設定し排除します。

これで出力されなくなります。

Application Gateway

実際にログを確認してみます。

アクセス元は、すべてApplication Gatewayの内部アドレスになっていることが分かります。 これでは、アクセスログの解析には役立ちません。

これを解決する方法として、X-Forwarded-ForとX-Forwarded-Protoをログに残します。 これはAWS ELBとも同じです。

/etc/httpd/conf/httpd.conf を編集しています。

実際にログを確認してみます。

末尾の方でX-Forwarded-ForとX-Forwarded-Protoが取得できていることが確認できます。 これで問題なく解析が行えるかと思います。

まとめ

アクセスを負荷分散するLoad BalancerとApplication Gatewayですが、それぞれ出力されるアクセスログも異なるため気を付けましょう。 また、対処する方法も異なるので気を付けましょう。これらはAzureに限ったことではありません。 X-Forwarded-ForとX-Forwarded-Protoが利用されるケースが多いので覚えておくとよいと思います。

ではでは

Diagnosticsのログフォーマットが変わってた。だから・・・注意してね。

はじめに

くどうです。

ちょっと、Azureで仮想マシンのDiagnosticsのログ眺めてたら気づいたのでメモ。 今のところLinuxのログについてのみです。

フォーマット比較

LinuxCpuVer2v0だけです。それしか見れなかった。

古い方 新しい方

何が変わったか ・カラムDeploymentIdが増えてる ・RowKeyのフォーマットが変わった

何時変わったのか わかりません(w

これによって何が影響するのか ・独自にログを参照し、監視など行っている場合見れなくなる可能性がある

おわりに

実は本家のポータルからLinux系(CentOS、Redhat、Debian、Ubuntuなどなど)のグラフも表示されないし、アラートも飛ばなくなってるヽ(`Д´)ノ ウワァァァン たぶん監視できる項目とか増やしアップデートを行ったために整合性取れなくなってるんだと思うけど、Azureのアラートは便利なので早く直ること期待。 やっぱZabbixとかで独自に監視している人が多いのかなぁ

ではでは