クイックスタート: Azure Resource Graph と Log Analytics を使用してアラートを作成する
- [アーティクル]
-
-
このクイックスタートでは、Azure Log Analytics を使用して Azure Resource Graph クエリでアラートを作成する方法について説明します。 Azure Resource Graph クエリ、Log Analytics ワークスペース、マネージド ID を使用してアラートを作成できます。 アラートの条件によって、指定した間隔で通知が送信されます。
クエリを使用して、デプロイされた Azure リソースのアラートを設定できます。 Azure Resource Graph テーブルを使用してクエリを作成するか、Azure Monitor ログの Azure Resource Graph テーブルと Log Analytics データを結合できます。
この記事の例では、同じリソース グループにリソースを作成し、"米国西部 3" などの同じリージョンを使用します。 この記事の例では、クエリを実行し、単一の Azure テナントに Azure リソースのアラートを作成します。 Azure Data Explorer クラスターは、この記事の範囲外です。
この記事には、次の 2 つのアラートの例が含まれています。
- Azure Resource Graph: Azure Resource Graph
Resources
テーブルを使用して、デプロイされた Azure リソースのデータを取得し、アラートを作成するクエリを作成します。
- Azure Resource Graph と Log Analytics: Azure Monitor ログ
Heartbeat
テーブルの Azure Resource Graph Resources
テーブルと Log Analytics データを使用します。 この例では、仮想マシンを使用して、クエリとアラートを設定する方法について説明します。
Note
Azure Resource Graph アラートと Log Analytics の統合はパブリック プレビュー段階です。
前提条件
- Azure アカウントをお持ちでない場合は、開始する前に無料アカウントを作成してください。
- Azure にデプロイされたリソース (仮想マシンやストレージ アカウントなど)。
- Azure Resource Graph と Log Analytics クエリの例を使用するには、Azure Monitor エージェントを使用する Azure 仮想マシンが少なくとも 1 つ必要です。
ワークスペースの作成
監視対象のサブスクリプションに Log Analytics ワークスペースを作成します。
Azure portal にサインインします。
検索フィールドに「log analytics workspaces」と入力し、[Log Analytics ワークスペース] を選択します。
Log Analytics ワークスペースを使用した場合は、[Azure サービス] から選択できます。
[作成] を選択します。
- [サブスクリプション]: Azure サブスクリプションを選択します
- [リソース グループ]: 「demo-arg-alert-rg」
- [名前]: 「demo-arg-alert-workspace」
- リージョン: 米国西部 3
- 別のリージョンを選択できますが、他のリソースには同じリージョンを使用します。
[確認および作成] を選択し、[検証に成功しました] が表示されるのを待ちます。
[作成] を選択して、デプロイを開始します。
デプロイが完了したら、[リソースに移動] を選択します。
仮想マシンの作成
Azure Resource Graph テーブルを使用する例では、仮想マシンを作成する必要はありません。
Note
既存の仮想マシンがある場合、または仮想マシンを作成する方法がわかっている場合、このセクションは省略可能です。 この例では、仮想マシンを使用して、Azure Resource Graph テーブルと Log Analytics データを使用してクエリを作成する方法について説明します。
ログ情報を取得する際、仮想マシンを Log Analytics ワークスペースに接続すると、Azure Monitor エージェントが仮想マシンにインストールされます。 仮想マシンがない場合は、この例で使用するために作成できます。 不要なコストが発生しないように、この例の作業が完了したら仮想マシンを削除してください。
次の手順は、Linux 仮想マシンの基本設定です。 仮想マシンの作成方法の詳細な手順については、この記事では取り扱いません。 組織では、仮想マシンに対して異なるセキュリティまたはネットワークの設定が必要になる場合があります。
Azure で、Ubuntu Linux 仮想マシンを作成します。
[作成] を選択します
[仮想マシンの作成] では、以下の例外を除いて既定の設定をそのまま使用できます。
基本操作
- [リソース グループ]: 「demo-arg-alert-rg」
- 仮想マシン名: demovm01 のような仮想マシン名を入力します。
- [可用性オプション]: [インフラストラクチャ冗長は必要ありません]
- サイズ: Standard_B1s
- 管理者アカウント: 資格情報を作成する必要がありますが、この例ではサインインする必要はありません。
- 認証の種類: SSH 公開キー
- ユーザー名: ユーザー名を作成します
- SSH 公開キー ソース: 新しいキーの組を生成
- キーの組の名前: 既定の名前をそのまま使用します
- [パブリック受信ポート]: [なし]
ディスク
- [VM と共に削除] が選択されていることを確認します。
ネットワーク
- パブリック IP: なし
- [VM が削除されたときに NIC を削除する] を選択します。
管理
- [自動シャットダウンを有効にする] を選択します。
- 使用しているタイム ゾーンでのシャットダウン時間を選択します。
- シャットダウン通知が必要な場合は、メール アドレスを追加します。
[監視]、 [詳細]、[タグ]
[確認および作成] 、 [作成] の順に選択します。
新しいキーの組を生成するように求められます。 [Download private key and create resource](秘密キーをダウンロードしてリソースを作成する) を選択します。 仮想マシンが完了したら、コンピューターから秘密キー ファイルを削除します。
仮想マシンがデプロイされたら、[リソースに移動] を選択します。
Note
仮想マシンを Log Analytics ワークスペースと Azure Monitor エージェントに接続する方法がわかっている場合、このセクションは省略可能です。
仮想マシンを監視するためのデータ収集ルールを設定します。
- Azure 検索フィールドで、「データ収集ルール」と入力し、[データ収集ルール] を選択します。
- [作成] を選択します。
- ルール名: demo-data-collection-rule などの名前を入力します。
- [サブスクリプション]:サブスクリプションを選択します。
- リソース グループ: demo-arg-alert-rg を選択します。
- リージョン: 米国西部 3。
- プラットフォームの種類: [すべて] を選択します。
- [次へ: リソース] を選択します。
- [リソースの追加] を選択します。
- [サブスクリプション]:サブスクリプションを選択します。
- スコープ: リソース グループと仮想マシンの名前を選択します。
- 適用を選択します。
- [次へ: 収集と配信] を選択します。
- [データ ソースの追加] を選択します。
- [データ ソースの種類]: [パフォーマンス カウンター] を選択します。
- [次へ: ターゲット] と [ターゲットの追加] を選択します。
- [ターゲットの種類]: Azure Monitor ログ。
- [サブスクリプション]:サブスクリプションを選択します。
- アカウントまたは名前空間: Log Analytics ワークスペース demo-arg-alert-workspace を選択します。
- [データ ソースの追加] を選択します。
- [確認および作成]、[作成] の順に選択します。
- デプロイが完了したら、[リソースに移動] を選択します。
仮想マシンの監視が構成されていることを確認します。
- 使用しているデータ収集ルールに移動し、[構成] を確認します。
- データ ソース: データ ソースのパフォーマンス カウンターと送信先である Azure Monitor ログが表示されます。
- [リソース]: 仮想マシン、リソース グループ、サブスクリプションが表示されます。
- Log Analytics ワークスペース [demo-arg-alert-workspace] に移動します。 [設定]>[エージェント]>[Linux サーバー] の順に選択すると、使用している Linux コンピューターが Azure Monitor Linux エージェントに接続されます。 エージェントが表示されるまで数分かかる場合があります。
- 仮想マシンに移動し、[設定]>[拡張機能とアプリケーション] の順に選択し、
AzureMonitorLinuxAgent
でプロビジョニングが成功したことを示すメッセージが表示されていることを確認します。
クエリを作成する
Log Analytics ワークスペースで、Azure リソースの数を取得する Azure Resource Graph クエリを作成します。 この例では、Azure Resource Graph Resources
テーブルを使用します。
[Log Analytics ワークスペース] ページの左側から [ログ] を選択します。 [クエリ] ウィンドウが表示されている場合は閉じます。
[新しいクエリ] で次のコードを使用します。
arg("").Resources
| count
Log Analytics のテーブル名は、Resources
や ResourceContainers
のように、各単語の最初の文字を大文字にしたキャメル ケースにする必要があります。 resources
や resourcecontainers
などの小文字を使うこともできます。
[実行] を選択します。
[結果] には、Azure サブスクリプション内のリソースの [数] が表示されます。 アラート ルールの条件に必要なため、その数をメモしておきます。 クエリを手動で実行する場合、数はユーザー ID に基づいており、発行したアラートではマネージド ID が使用されます。 手動による実行または発行したアラートの間で、数が異なる可能性があります。
クエリから数を削除します。
arg("").Resources
Log Analytics ワークスペースで、仮想マシンから最後のハートビート情報を取得する Azure Resource Graph クエリを作成します。 この例では、Azure Monitor ログ Heartbeat
テーブルの Azure Resource Graph Resources
テーブルと Log Analytics データを使用します。
[demo-arg-alert-workspace] Log Analytics ワークスペースに移動します。
[Log Analytics ワークスペース] ページの左側から [ログ] を選択します。 [クエリ] ウィンドウが表示されている場合は閉じます。
[新しいクエリ] で次のコードを使用します。
arg("").Resources
| where type == 'microsoft.compute/virtualmachines'
| project ResourceId = id, name, PowerState = tostring(properties.extended.instanceView.powerState.code)
| join (Heartbeat
| where TimeGenerated > ago(15m)
| summarize lastHeartBeat = max(TimeGenerated) by ResourceId)
on ResourceId
| project lastHeartBeat, PowerState, name, ResourceId
Log Analytics のテーブル名は、Resources
や ResourceContainers
のように、各単語の最初の文字を大文字にしたキャメル ケースにする必要があります。 resources
や resourcecontainers
などの小文字を使うこともできます。
TimeGenerated
にその他の期間を使用することができます。 たとえば、分 (15m
など) ではなく時間 (12h
、24h
、48h
など) を使用できます。
[実行] を選択します。
クエリでは、仮想マシンの最後のハートビート、電源状態、名前、リソース ID が返されるはずです。 [結果] が表示されない場合は、次の手順に進んでください。 新規の構成では、データの監視がクエリとアラートで使用できるようになるまで 30 分かかる場合があります。
アラート ルールの作成
Log Analytics ワークスペースで、[新しいアラート ルール] を選択します。 Log Analytics ワークスペースからのクエリがアラート ルールにコピーされます。 [アラート ルールの作成] には、アラートを作成するために更新する必要があるタブがいくつかあります。
範囲
スコープが demo-arg-alert-workspace という名前の Log Analytics ワークスペースに既定で定義されていることを確認します。
スコープが既定値に設定されていない場合にのみ、次の手順を実行します。
- [スコープ] タブに移動し、[スコープの選択] を選択します。
- [選択したリソース] 画面の下部で、現在のスコープを削除します。
- [スコープの選択] オプションを選択します。
- リソースの一覧から [demo-arg-alert-rg] を展開し、[demo-arg-alert-workspace] を選択します。
- [適用] を選択します。
- [次へ: 条件] を選択します。
条件
フォームには、入力するフィールドがいくつかあります。
- [シグナル名]: カスタム ログ検索
- [検索クエリ]: クエリ コードを表示します
- スコープを変更した場合は、[クエリの作成] セクションからクエリを追加する必要があります。
測定
- 測定: テーブルの行
- 集計の種類: カウント
- 集計の細分性: 5 分
アラート ロジック
- 演算子: より大きい
- [しきい値]: リソース数から返される数値より小さい数値を使用します。
- たとえば、リソース数が 50 の場合は 45 を使用します。 この値では、リソースの数がしきい値を超えるため、リソースを評価する際にアラートがトリガーされます。
- 評価の頻度: 5 分
[次へ: アクション] を選択します。
アクション
[アクション グループの作成] を選択します。
- サブスクリプション:Azure サブスクリプションを選択します。
- [リソース グループ]: 「demo-arg-alert-rg」
- リージョン: [グローバル] では、アクション グループ サービスで場所を選択できます。
- [アクション グループ名]: 「demo-arg-alert-action-group」
- [表示名]: 「demo-action」(制限は 12 文字)
[次へ: 通知] を選択します。
- [通知の種類]: [メール/SMS メッセージ/プッシュ/音声] を選択します。
- [名前]: 「email-alert」
- [電子メール] チェック ボックスをオンにし、メール アドレスを入力します。
- [OK] を選択します。
[確認および作成] を選択し、概要が正しいことを確認して、[作成] を選択します。 [アラート ルールの作成] ページの [アクション] タブに戻ります。 [アクション グループ名] には、作成したアクション グループが表示されます。 アクション グループに追加されたことを確認する電子メール通知が届きます。
[Next: Details](次へ: 詳細) を選択します。
詳細
[詳細] タブで次の情報を使用します。
- サブスクリプション:Azure サブスクリプションを選択します。
- [リソース グループ]: 「demo-arg-alert-rg」
- [重大度]: 既定値 [3 - 情報] をそのまま使用します。
- [アラート ルール名]: 「demo-arg-alert-rule」
- [アラート ルールの説明]: 「Azure リソースの数に関する電子メール アラート」
- リージョン: 米国西部 3
- [ID]: [システム割り当てマネージド ID] を選択します。
[確認および作成] を選択し、概要が正しいことを確認して、[作成] を選択します。 [Log Analytics ワークスペース] の [ログ] ページに戻ります。
ロールを割り当てる
[Log Analytics 閲覧者] をシステム割り当てマネージド ID に割り当て、電子メール通知を送信するアラートを発行するアクセス許可を付与します。
- Log Analytics ワークスペースで [監視]>[アラート] の順に選択します。 [保存されていない編集は破棄されます] メッセージが表示されたら、[OK] を選択します。
- 警告ルールを選択します。
- [demo-arg-alert-rule] を選択します。
- [設定]>[ID]>[システム割り当て] の順に選択します。
- [状態]: オン
- [オブジェクト ID]: エンタープライズ アプリケーション (サービス プリンシパル) の GUID を Microsoft Entra ID で表示します。
- アクセス許可: [Azure でのロールの割り当て] を選択します。
- サブスクリプションが選択されていることを確認します。
- [ロールの割り当ての追加] を選択します。
- [スコープ]: [サブスクリプション]
- [サブスクリプション]: 自分の Azure サブスクリプション名を選択します。
- [役割]: [Log Analytics 閲覧者]
- [保存] を選択します。
[Log Analytics 閲覧者] が [Azure でのロールの割り当て] ページに表示されるのには数分かかります。 [最新の情報に更新] を選択して、ページを更新します。
ブラウザーの [戻る] ボタンを使用して [ID] に戻り、[概要] を選択してアラート ルールに戻ります。 [demo-arg-alert-rg] という名前のリソース グループへのリンクを選択します。
この記事では対象外ですが、Azure Data Explorer クラスターの場合は、システム割り当てマネージド ID に "閲覧者" ロールを追加します。 詳細については、この記事の最後にある、「Azure Data Explorer クラスターのロール割り当て」のリンクを選択します。
Log Analytics ワークスペースで、[新しいアラート ルール] を選択します。 Log Analytics ワークスペースからのクエリがアラート ルールにコピーされます。 [アラート ルールの作成] には、更新する必要があるタブがいくつかあります。
範囲
スコープが demo-arg-alert-workspace という名前の Log Analytics ワークスペースに既定で定義されていることを確認します。
スコープが既定値に設定されていない場合にのみ、次の手順を実行します。
- [スコープ] タブに移動し、[スコープの選択] を選択します。
- [選択したリソース] 画面の下部で、現在のスコープを削除します。
- リソースの一覧から [demo-arg-alert-rg] を展開し、[demo-arg-alert-workspace] を選択します。
- [適用] を選択します。
- [次へ: 条件] を選択します。
条件
フォームには、入力するフィールドがいくつかあります。
- [シグナル名]: カスタム ログ検索
- [検索クエリ]: クエリ コードを表示します
- スコープを変更した場合は、[クエリの作成] セクションからクエリを追加する必要があります。
測定
- 測定: テーブルの行
- 集計の種類: カウント
- 集計の細分性: 5 分
アラート ロジック
- [演算子]: より小さい
- [しきい値]: 2
- 評価の頻度: 5 分
[次へ: アクション] を選択します。
アクション
[アクション グループの作成] を選択します。
- サブスクリプション:Azure サブスクリプションを選択します。
- [リソース グループ]: 「demo-arg-alert-rg」
- リージョン: [グローバル] では、アクション グループ サービスで場所を選択できます。
- [アクション グループ名]: 「demo-arg-la-alert-action-group」
- [表示名]: 「demo-argla」(制限は 12 文字)
[次へ: 通知] を選択します。
- [通知の種類] で、[メール/SMS メッセージ/プッシュ/音声] を選択します
- [名前]: 「email-alert-arg-la」
- [電子メール] チェック ボックスをオンにし、メール アドレスを入力します
- [OK] を選択します。
[確認および作成] を選択し、概要が正しいことを確認して、[作成] を選択します。 [アラート ルールの作成] ページの [アクション] タブに戻ります。 [アクション グループ名] には、作成したアクション グループが表示されます。 アクション グループに追加されたことを確認する電子メール通知が届きます。
[Next: Details](次へ: 詳細) を選択します。
詳細
[詳細] タブで次の情報を使用します。
- サブスクリプション:Azure サブスクリプションを選択します。
- [リソース グループ]: 「demo-arg-alert-rg」
- 重大度: [2 - 警告] を選択します。
- [アラート ルール名]: 「demo-arg-la-alert-rule」
- [アラート ルールの説明]: 「Azure 仮想マシンの ARG-LA クエリに関する電子メール アラート」
- リージョン: 米国西部 3
- [ID]: [システム割り当てマネージド ID] を選択します
[確認および作成] を選択し、概要が正しいことを確認して、[作成] を選択します。 [Log Analytics ワークスペース] の [ログ] ページに戻ります。
ロールを割り当てる
[Log Analytics 閲覧者] をシステム割り当てマネージド ID に割り当て、電子メール通知を送信するアラートを発行するアクセス許可を付与します。
- Log Analytics ワークスペースで [監視]>[アラート] の順に選択します。 [保存されていない編集は破棄されます] メッセージが表示されたら、[OK] を選択します。
- 警告ルールを選択します。
- [demo-arg-la-alert-rule] を選択します。
- [設定]>[ID]>[システム割り当て] の順に選択します。
- [状態]: オン
- [オブジェクト ID]: エンタープライズ アプリケーション (サービス プリンシパル) の GUID を Microsoft Entra ID で表示します。
- [アクセス許可]: [Azure でのロールの割り当て] を選択します
- サブスクリプションが選択されていることを確認します
- [ロールの割り当ての追加] を選択します。
- [スコープ]: [サブスクリプション]
- サブスクリプション: 自分の Azure サブスクリプション名を選択します
- [役割]: [Log Analytics 閲覧者]
- [保存] を選択します。
[Log Analytics 閲覧者] が [Azure でのロールの割り当て] ページに表示されるのには数分かかります。 [最新の情報に更新] を選択して、ページを更新します。
ブラウザーの [戻る] ボタンを使用して [ID] に戻り、[概要] を選択してアラート ルールに戻ります。 [demo-arg-alert-rg] という名前のリソース グループへのリンクを選択します。
この記事では対象外ですが、Azure Data Explorer クラスターの場合は、システム割り当てマネージド ID に "閲覧者" ロールを追加します。 詳細については、この記事の最後にある、「Azure Data Explorer クラスターのロール割り当て」のリンクを選択します。
アラートを確認します
役割がアラート ルールに割り当てられると、アラート メッセージの電子メールの受信が始まります。 5 分おきにアラートを送信するルールが作成されたため、最初のアラートを取得するまでには数分かかります。
また、Azure portal でアラートを表示することもできます。
リソース グループ [demo-arg-alert-rg] に移動します。
リソースの一覧で [demo-arg-alert-workspace] を選択します。
[監視]>[アラート] の順に選択します。
アラートの一覧が表示されます。
役割がアラート ルールに割り当てられると、アラート メッセージの電子メールの受信が始まります。 5 分おきにアラートを送信するルールが作成されたため、最初のアラートを取得するまでには数分かかります。
また、Azure portal でアラートを表示することもできます。
リソース グループ [demo-arg-alert-rg] に移動します。
仮想マシンを選択します。
[監視]>[アラート] の順に選択します。
アラートの一覧が表示されます。
新しい構成では、ログ情報が使用できるようになってアラートが作成されるまで、30 分かかる場合があります。 その間、仮想マシンのアラート ルールによってワークスペースの監視アラートにアラートが表示されることがあります。 仮想マシンのログ情報が使用可能になると、アラートは仮想マシンの監視アラートに表示されます。
リソースをクリーンアップする
アラートの構成を維持しながら、アラートの発生と電子メール通知の送信を停止する場合、アラート ルールを無効にすることができます。 アラート ルール [demo-arg-alert-rule] または [demo-arg-la-alert-rule] に移動し、[無効化] を選択します。
このアラートやこの例で作成したリソースが不要な場合は、次の手順でリソース グループを削除します。
- リソース グループ [demo-arg-alert-rg] に移動します。
- [リソース グループの削除] を選択します。
- 確認するリソース グループ名を入力します。
- [削除] を選択します。
仮想マシンを作成した場合は、デプロイ時にコンピューターにダウンロードした秘密キーを削除します。 ファイル名には .pem
拡張子が付いています。
関連するコンテンツ
クエリ言語、またはリソースを調べる方法の詳細については、次の記事を参照してください。