次の方法で共有


クイックスタート: 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 ワークスペースを作成します。

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

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

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

    検索フィールドと Log Analytics ワークスペースが強調表示されている Azure ホーム ページのスクリーンショット。

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

    • [サブスクリプション]: Azure サブスクリプションを選択します
    • [リソース グループ]: 「demo-arg-alert-rg
    • [名前]: 「demo-arg-alert-workspace
    • リージョン: 米国西部 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 などの小文字を使うこともできます。

    ログと実行ボタンを強調表示するリソース テーブルのクエリを含む Log Analytics ワークスペースのスクリーンショット。

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

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

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

    arg("").Resources
    

アラート ルールの作成

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

新しいアラート ルールが強調表示されている Log Analytics ワークスペース ページのスクリーンショット。

範囲

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

スコープが既定値に設定されていない場合にのみ、次の手順を実行します。

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

条件

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

  • [シグナル名]: カスタム ログ検索
  • [検索クエリ]: クエリ コードを表示します
    • スコープを変更した場合は、[クエリの作成] セクションからクエリを追加する必要があります。

測定

  • 測定: テーブルの行
  • 集計の種類: カウント
  • 集計の細分性: 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 に割り当て、電子メール通知を送信するアラートを発行するアクセス許可を付与します。

  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] という名前のリソース グループへのリンクを選択します。

この記事では対象外ですが、Azure Data Explorer クラスターの場合は、システム割り当てマネージド ID に "閲覧者" ロールを追加します。 詳細については、この記事の最後にある、「Azure Data Explorer クラスターのロール割り当て」のリンクを選択します。

アラートを確認します

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

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

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

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

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

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

    発生したアラートの一覧を示す Log Analytics ワークスペースのスクリーンショット。

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

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

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

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

仮想マシンを作成した場合は、デプロイ時にコンピューターにダウンロードした秘密キーを削除します。 ファイル名には .pem 拡張子が付いています。

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