Azure アクティビティログを使ってVM作成された時にアラート発生させてみた
Azureプラットフォーム上でAzure VMを作成、起動、削除した等の作業が記録されるログとしてアクティビティログがあります。
アクティビティログで収集される内容はマイクロソフト様のサイトに記載を参照して頂きたいのですが、アクティビティログについても診断設定を使ってLog Analyticsでのデータ収集が可能です。
Log Analyticsデータ収集が可能という事は、Azure Monitorでの監視も可能なんじゃないか?という事で試してみました。
今回は、サンプルとして15分間の間に1人のユーザーがAzure VMを2台作成した場合にアラートを上げるような設定を試してみました。
アクテビティログの解説についてはこちらを参照願います。
仮想マシン起動時のアクティビティログやその監視についてはこちら。
アクティビティログをLog Analyticsへ診断設定で転送する
アクティビティログを事前に準備したLog Analyticsワークスペースへ転送する設定を行います。Log Analyticsへの転送は診断設定で行います。
1)アクティビティログのメニューで診断設定を選択します。
2)診断設定の画面が表示されますので、診断設定を追加するを選択します。
3)診断設定画面が表示されます。Azure VM作成を収集するのであれば、以下の項目にチェックをします。(今回はお試しなのですべてにチェックをつけています。)
-
-
- カテゴリの詳細:Administrative(Log)にチェック
- 宛先の詳細:Log Analyiticsへの送信にチェック
- Log Analytics ワークスペース:事前に準備したLog Analyticsワークスペースを指定
-
10分ほどすると、Log Analyticsでアクティビティログの確認ができるようになります。
Log Analyticsワークスペース作成についてはこちら。
Log Analyticsでアクティビティログを確認
Log Analyticsのワークスペースでログの確認をしてみます。
1)Azure PortalのメニューでLog Analyticsを選択します。
2)Log Analyticsでログを選択すると下記画面が表示されますので、クエリ欄に下記の通り入力し、実行をクリックします。これですべてのアクティビティログが表示されます。
AzureActivity |
アクティビティログが結果として表示される事が確認できました。
実際に、Azure VMを作成した際のログを確認すると、以下のログが出力される事が分かりました。
-
-
- ActivitySubstatusValue :Created
- OperationNameValue:MICROSOFT.COMPUTE/VIRTUALMACHINES/WRITE
-
Caller:作成者のアカウント
-
こちらの情報をもとにAzure Monitorでの監視設定を行ってみます。
Azure MonitorでLog Analyticsを使ったアクティビティログの監視設定
まず、Log Analyticsの画面で実際のクエリを作成してみます。特定のアカウントで15分以内にAzure VMが2回以上作成された場合にアラートを発生させる設定としてみました。
-
- Logの検索条件
- ActivitySubstatusValue :Created
- OperationNameValue:MICROSOFT.COMPUTE/VIRTUALMACHINES/WRITE
- 検出条件
-
Caller:同じアカウントの場合
- 検索時間:15分
- 回数:2回以上
-
- Logの検索条件
上記条件を実際にクエリとして記載するとこんな感じになりました。
AzureActivity | where ActivitySubstatusValue == “Created"
| where TimeGenerated > ago(15m)
| summarize countif(OperationNameValue == “MICROSOFT.COMPUTE/VIRTUALMACHINES/WRITE") by Caller
| where countif_ > 1
|
この条件でAzure Monitorの設定を行います。今回はLog Analyticsの画面から設定を行ってみます。
1)Log Analyticsのクエリ画面に新しいアラートルールという設定がありますので、こちらをクリックします。
2)Azure Monitorのアラートルールの作成画面に遷移します。スコープはLog Analyticsワークスペース名が設定されていますので、条件を選択し設定を行います。
3)シグナル ロジックの構成画面が表示されますので、アラートロジックと評価基準の設定を行います。今回は15分単位での設定としています。
-
- アラートロジック
- 基準;結果の数
- 演算子:次の値より大きい
- しきい値:0
- 評価基準
- 期間:15
- 頻度:15
- アラートロジック
注意点ですがしきい値は0より大きいになります。該当のクエリの結果が1行でも表示されていた場合にアラートとして検出するようにしています。
4)アクショングループの設定をクリックし、アクショングループを適時選択します。
アラート通知をSMSで行うような設定も行っております。興味がある方はぜひ一緒に見て下さい。
5)アラートルールの詳細でアラートルール名(必要に応じてその他項目)を設定し、完了したらアラートルールの作成をクリックします。
これでアラートルールの作成は終了です。
Azure VM作成をしてアクティビティログアラートを発生させる
実際にAzure VMを作成しアラート発生させてみました。
こんな感じでアラートを発生させる事が出来ました。
-
-
- 件名:Alert Notification “VM-Create" raised for “Log Analyticsワークスペース名"
- Name:VM-Create
- Severity:3
- Resource:Log Analyticsワークスペース名
- Search interval start time:時刻
- Search interval duration 15 min
- Caller :作成者アカウント名
- countif_ 2
-
今回はサンプルとして作成してみましたが、適切な情報が出力されるように改善を加えていきたい所です。