目次
- 1.はじめに
- 2.Azure Application Gateway のログの種類
- 3.ファイアウォールログの出力方法
- 4.Log Analytics Workspaceで検知状況を確認
- 5.ダッシュボードで表示する
- 6.おわりに
1. はじめに
今回は Log Analytics を利用して Azure WAF で検知状況を確認する方法をご紹介します。
Azure Application Gateway WAF v2 での WAF のログがベースになりますので Azure CDN や FrontDoor を利用した WAF のログでは結果が異なる場合があることをご承知おきください。
2.Azure Application Gateway のログの種類
Azure Application Gateway で確認できるログは以下のようなものがあります。
ログ名 | 説明 |
アクティビティログ | 操作ログが記録されます。 このログを確認することでいつ、誰が、どんな操作を行ったか把握することができます。 WafCharm をご利用のお客様であれば WafCharm による操作をこのログから確認することもできます。 |
アクセスログ | クライアント IP やメソッド、 URI 等クライアントからのアクセスに関する内容となります。 |
パフォーマンスログ | 対象のインスタンスで処理されたリクエストの総数やスループット等のリソースのパフォーマンス情報が確認できます。 |
ファイアウォールログ | 今回の対象となるログです。 Azure WAF で設定したルールとのマッチ状況が記録されるログとなります。 |
公式情報
Azure Web アプリケーション ファイアウォールのリソース ログ
3.ファイアウォールログの出力方法
公式情報の「Azure Portal を使用したログの有効化」を実施します。
3.1 リソースグループに「Log Analytics Workspace」を新規追加します。
その際に対象の Log Analytics の情報を入力します。


3.2 対象の Application Gateway を開きます

3.3 メニューから「診断設定」を選択します。さらに「診断設定を追加する」を選択します。

3.4 名前を入力し必要なログにチェックをして、「Log Analytics への送信」を選択して、
3.1で作成した Log Analytics ワークスペースを選択し、保存すれば完了です。

4.Log Analytics Workspaceで検知状況を確認
作成した Log Analytics Workspace を開きログを選択するとクエリを入力することができます。

特に条件を指定せずにファイアウォールログを取得するには以下のクエリを実行します。
実際のクエリ
AzureDiagnostics | where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayFirewallLog"

上の画像上部に「過去24時間」と書かれた部分がありますが、ここをクリックして編集することでデータの範囲を指定できます。
ファイアウォールログを使用したクエリのサンプルは以下の公式情報も確認してください。
公式情報
Log Analytics を使用して Application Gateway Web アプリケーション ファイアウォール (WAF) のログを調べる
5.ダッシュボードで表示する
確認のたびにクエリを実施せずとも結果を表示する方法もあります。
ダッシュボード機能を利用して、クエリの実行結果を常に表示する方法です。
ただログを表示するだけでなくグラフ化することも可能です。
まずは実際に作成したダッシュボードを見てみましょう。

検知したルールの割合と検知した回数の推移をグラフにしました。また、ファイアウォールログも情報を絞った形で表示しました。検知数が急激に増えたタイミングもグラフだと把握がしやすいため、日々の監視に適しています。
クエリの結果をダッシュボードで利用するにはクエリ入力欄の上部の項目から「ダッシュボードにピン留め」を選択して、対象のダッシュボードを選べば完了です。

ダッシュボードは画面左の項目を開き「ダッシュボード」を選択することで確認できます。

更新は手動でも実施が可能なため最新の情報を常に確認できます。
グラフ毎に「タイルデータのカスタマイズ」から期間を変更することも可能です。

必要な情報を必要な期間取得することが即座に可能なため、非常に便利です。
今回の例は ファイアウォールログの例ですが、サーバの負荷状況なども併せて表示することでシステムの全てを視覚的に把握できるのではないでしょうか。
6.おわりに
Azure では Log Analytics を使うことで様々な情報を一元的に管理できて便利です。
Azure WAF を導入した際は是非利用してみてください。