Azure Monitor ログでのクエリ パック

クエリ パックは、Azure Monitor のログ クエリのコンテナーとして機能します。 これを使用して、ログ クエリを保存し、ワークスペースや Log Analytics の他のコンテキストで共有できます。

アクセス許可

Azure portal で表示しているときにクエリ パックのアクセス許可を設定できます。 クエリ パックを使うには、次のアクセス許可が必要です。

  • 閲覧者: ユーザーは、クエリ パック内のすべてのクエリを表示して実行できます。

  • 共同作成者: ユーザーは既存のクエリを変更し、クエリ パックに新しいクエリを追加できます。

    重要

    ユーザーがクエリ パックを作成する必要がある場合は、リソース グループ レベルでユーザー Log Analytics 共同作成者を割り当てます。

クエリ パックの表示

[Log Analytics クエリ パック] メニューから、Azure portal クエリ パックを表示および管理できます。 クエリ パックを選択して、そのアクセス許可を表示および編集します。 この記事では、API を使用してクエリ パックを作成する方法について説明します。

クエリ パックを示すスクリーンショット。

既定のクエリ パック

最初のクエリを保存すると、Azure Monitor により、LogAnalyticsDefaultResources というリソース グループの各サブスクリプションに DefaultQueryPack というクエリ パックが自動的に作成されます。 このクエリ パックに対するクエリを保存するか、要件に応じて別のクエリ パックを作成できます。

複数のクエリ パックの使用

クエリを保存して再利用するには、ほとんどのユーザーにとって既定のクエリ パックで十分です。 たとえば、異なる Log Analytics セッションに異なるクエリのセットを読み込み、クエリのコレクションごとに異なるアクセス許可を付与する場合など、組織内のユーザー用に複数のクエリ パックを作成する場合があります。

新しいクエリ パックを作成するときに、ビジネス ニーズに基づいてクエリを分類するタグを追加できます。 たとえば、クエリ パックにタグを付け、組織内の特定の部門に関連付けたり、含まれているクエリが対処する問題の重大度に関連付けたりすることができます。 タグを使用することにより、さまざまなユーザーのセットやさまざまな状況に合わせて、さまざまなクエリのセットを作成できます。

Log Analytics ワークスペースにクエリ パックを追加するには:

  1. Log Analytics を開き、右上隅にある [クエリ] を選びます。
  2. [クエリ] ダイアログの左上隅にある [クエリ パック] の横の [クエリ パックの選択] または [0 個選択済み] をクリックします。
  3. ワークスペースに追加するクエリ パックを選びます。

Log Analytics の [クエリ パックの選択] ページを示すスクリーンショット。そこで Log Analytics ワークスペースにクエリ パックを追加できます。

重要

Log Analytics ワークスペースには最大 5 個のクエリ パックを追加できます。

クエリ パックを作成する

REST API を使って、または Azure portal の [Log Analytics クエリ パック] ペインから、クエリ パックを作成できます。 ポータルで [Log Analytics クエリ パック] ペインを開くには、[すべてのサービス]>[その他] を選択します。

Note

クエリ パックに保存されたクエリは、カスタマー マネージド キーを使って暗号化されていません。 クエリを保存する場合は、代わりに [レガシ クエリとして保存] を選び、カスタマー マネージド キーを使って保護します。

トークンを作成する

API 要求の認証にはトークンが必要です。 トークンを取得するには複数の方法があります。 1 つの方法は、armclient を使用することです。

まず、次のコマンドを使用して Azure にサインインします。

armclient login

次に、次のコマンドを使用してトークンを作成します。 トークンはクリップボードに自動的にコピーされるので、別のツールに貼り付けることができます。

armclient token

ペイロードの作成

要求のペイロードは、1 つ以上のクエリとクエリ パックの保存場所を定義する JSON です。 クエリ パックの名前は、次のセクションで説明する API 要求で指定します。

{
    "location": "eastus",
    "properties":
    {
        "displayName": "Query name that will be displayed in the UI",
        "description": "Query description that will be displayed in the UI",
        "body": "<<query text, standard KQL code>>",
        "related": {
            "categories": [
                "workloads"
            ],
            "resourceTypes": [
                "microsoft.insights/components"
            ],
            "solutions": [
                "logmanagement"
            ]
        },
        "tags": {
            "Tag1": [
                "Value1",
                "Value2"
            ]
        }
    }
}

クエリ パック内の各クエリには、次のプロパティがあります。

プロパティ 説明
displayName Log Analytics に表示される各クエリの表示名。
description Log Analytics に表示される各クエリの説明。
body Kusto 照会言語で記述されているクエリ。
related クエリの関連カテゴリ、リソースの種類、およびソリューション。 クエリを見つけやすくするために、ユーザーが Log Analytics でグループ化とフィルター処理に使用します。 各クエリには、最大 10 個の種類を使用することができます。 使用可能な値は、https://api.loganalytics.io/v1/metadata?select=resourceTypes、ソリューション、カテゴリから取得します。
tags ユーザーが Log Analytics での並べ替えとフィルター処理に使用する別のタグ。 各タグは、クエリをグループ化およびフィルター処理するときに、カテゴリ、リソースの種類、およびソリューションに追加されます。

要求を作成する

REST API を使用して新しいクエリ パックを作成するには、次の要求を使用します。 この要求では、ベアラー トークン承認を使用する必要があります。 コンテンツ タイプは application/json である必要があります。

POST https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.Insights/querypacks/my-query-pack?api-version=2019-09-01

curl、Insomnia、Bruno などの REST API 要求を送信できるツールを使用し、前のセクションで説明したペイロードを使用することで要求を送信します。 クエリ ID が生成され、ペイロードに返されます。

クエリ パックを更新する

クエリ パックを更新するには、更新されたペイロードで次の要求を送信します。 このコマンドには、クエリ パック ID が必要です。

POST https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.Insights/querypacks/my-query-pack/queries/query-id/?api-version=2019-09-01

次のステップ

Log Analytics でユーザーがクエリ パックを操作する方法については、「Azure Monitor Log Analytics でのクエリの使用」を参照してください。