クイックスタート: 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 データを結合できます。

この記事には、次の 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 つ必要です。

どのような問題が解決されますか?

Azure Resource Graph クエリを使用して、Azure リソースに関する情報を取得する必要があるとします。 Azure Log Analytics を使用して、特定の条件が満たされたときに通知するアラートを設定できます。

ワークスペースの作成

監視対象のサブスクリプションに Log Analytics ワークスペースを作成します。

  1. Azure portal にサインインします。

  2. 検索フィールドに「log analytics workspaces」と入力し、[Log Analytics ワークスペース] を選択します。

    Log Analytics ワークスペースを使用している場合は、[Azure サービス] から選択できます。

    Screenshot of the Azure home page that highlights search field and Log Analytics workspaces.

  3. [作成] を選択します

    • [サブスクリプション]: Azure サブスクリプションを選択します
    • [リソース グループ]: 「demo-arg-alert-rg
    • [名前]: 「demo-arg-alert-workspace
    • [リージョン]: West US3 (米国西部 3)
  4. [確認および作成] を選択し、[検証に成功しました] が表示されるのを待ちます。

  5. [作成] を選択して、デプロイを開始します。

  6. デプロイが完了したら、[リソースに移動] を選択します。

仮想マシンの作成

Azure Resource Graph テーブルを使用する例では、仮想マシンを作成する必要はありません。

クエリを作成する

Log Analytics ワークスペースで、Azure リソースの数を取得する Azure Resource Graph クエリを作成します。 この例では、Azure Resource Graph Resources テーブルを使用します。

  1. [Log Analytics ワークスペース] ページの左側から [ログ] を選択します。

    [クエリ] ウィンドウが表示されている場合は閉じます。

  2. [新しいクエリ] で次のコードを使用します。

    arg("").Resources
    | count
    

    Log Analytics のテーブル名は、ResourcesResourceContainers のように、各単語の最初の文字を大文字にしたキャメル ケースにする必要があります。 resourcesresourcecontainers などの小文字を使うこともできます。

    Screenshot of the Log Analytics workspace with a query of the Resources table that highlights logs and run button.

  3. [実行] を選択します。

    [結果] には、Azure サブスクリプション内のリソースの [数] が表示されます。 アラート ルールの条件に必要なため、その数をメモしておきます。 クエリを手動で実行する場合、数はユーザー ID に基づいており、発行したアラートではマネージド ID が使用されます。 手動による実行または発行したアラートの間で、数が異なる可能性があります。

  4. クエリから数を削除します。

    arg("").Resources
    

アラート ルールの作成

Log Analytics ワークスペースで、[新しいアラート ルール] を選択します。 Log Analytics ワークスペースからのクエリがアラート ルールにコピーされます。 [アラート ルールの作成] には、アラートを作成するために更新する必要があるタブがいくつかあります。

Screenshot of the Log Analytics workspace page that highlights new alert rule.

Scope

スコープが [demo-arg-alert-workspace] という名前の Log Analytics ワークスペースに設定されていることを確認します。

スコープを変更する必要がある場合は、次の手順を実行します。

  1. [スコープ] タブに移動し、[スコープの選択] を選択します。
  2. [選択したリソース] 画面の下部で、現在のスコープを削除します。
  3. リソースの一覧から [demo-arg-alert-rg] を展開し、[demo-arg-alert-workspace] を選択します。
  4. [適用] を選択します。
  5. [次へ: 条件] を選択します。

条件

フォームには、入力するフィールドがいくつかあります。

  • [シグナル名]: カスタム ログ検索
  • [検索クエリ]: クエリ コードを表示します。

測定

  • 測定: テーブルの行
  • 集計の種類: カウント
  • 集計の細分性: 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 リソースの数に関する電子メール アラート
  • [ID]: [システム割り当てマネージド ID] を選択します

[確認および作成] を選択し、概要が正しいことを確認して、[作成] を選択します。 [Log Analytics ワークスペース][ログ] ページに戻ります。

アクション グループに追加されたことを確認する電子メール通知が届きます。

ロールを割り当てる

[Log Analytics 閲覧者] をシステム割り当てマネージド ID に割り当て、電子メール通知を送信するアラートを発行するアクセス許可を付与します。

  1. Log Analytics ワークスペースで [監視]>[アラート] の順に選択します。

    [保存されていない編集は破棄されます] メッセージが表示されたら、[OK] を選択します。

  2. 警告ルールを選択します。

  3. [demo-arg-alert-rule] を選択します。

  4. [設定]>[ID]>[システム割り当て] の順に選択します。

    • [状態]: オン
    • [オブジェクト ID]: エンタープライズ アプリケーション (サービス プリンシパル) の GUID を Microsoft Entra ID で表示します。
    • [アクセス許可]: [Azure でのロールの割り当て] を選択します
      • 正しいサブスクリプションが選択されていることを確認します。
      • [ロールの割り当ての追加] を選択します
      • [スコープ]: [サブスクリプション]
      • [サブスクリプション]: お使いの Azure サブスクリプション名
      • [役割]: [Log Analytics 閲覧者]
  5. [保存] を選択します。

[Log Analytics 閲覧者][Azure でのロールの割り当て] ページに表示されるのには数分かかります。 [最新の情報に更新] を選択して、ページを更新します。

ブラウザーの [戻る] ボタンを使用して [ID] に戻り、[概要] を選択してアラート ルールに戻ります。 [demo-arg-alert-rg] という名前のリソース グループへのリンクを選択します。

アラートを確認します

役割がアラート ルールに割り当てられると、アラート メッセージの電子メールの受信が始まります。 5 分おきにアラートを送信するルールが作成されたため、最初のアラートを取得するまでには数分かかります。

また、Azure portal でアラートを表示することもできます。

  1. リソース グループ [demo-arg-alert-rg] に移動します。

  2. リソースの一覧で [demo-arg-alert-workspace] を選択します。

  3. [監視]>[アラート] の順に選択します。

  4. アラートの一覧が表示されます。

    Screenshot of the Log Analytics workspace that shows list of alerts that fired.

問題をどのように解決したか。

Azure リソースを監視するために Azure Resource Graph クエリと Log Analytics ワークスペースを作成しました。 また、アラートを設定してイベントを通知し、システム割り当てマネージド ID に役割を割り当てました。 アラートが作成された後、アラート ルールの条件に基づいて電子メール アラートを受信しました。

リソースをクリーンアップする

アラートの構成を維持しながら、アラートの発生と電子メール通知の送信を停止する場合、アラート ルールを無効にすることができます。 アラート ルール [demo-arg-alert-rule] または [demo-arg-la-alert-rule] に移動し、[無効化] を選択します。

このアラートやこの例で作成したリソースが不要な場合は、次の手順でリソース グループを削除します。

  1. リソース グループ [demo-arg-alert-rg] に移動します。
  2. [リソース グループの削除] を選択します。
  3. 確認するリソース グループ名を入力します。
  4. 削除を選択します。

クエリ言語、またはリソースを調べる方法の詳細については、次の記事を参照してください。