Azure Data Explorer を使用して Azure Monitor のデータのクエリを実行する
Azure Data Explorer では、Azure Data Explorer、Application Insights リソース (AI)、Log Analytics ワークスペース (LA) 間のクロスサービス クエリがサポートされています。 クロスサービス クエリの中で Azure Data Explorer クエリ ツールを使用して Log Analytics ワークスペースまたは Application Insights リソースに対してクエリを実行できます。 この記事では、クロスサービス クエリを作成し、Log Analytics ワークスペースまたは Application Insights リソースを Azure Data Explorer Web UI に追加する方法について説明します。
Azure Data Explorer のクロスサービス クエリのフローは次のとおりです。
Log Analytics ワークスペース/Application Insights リソースを Azure Data Explorer クライアント ツールに追加する
Log Analytics ワークスペースまたは Application Insights リソースを Azure Data Explorer クライアント ツールに追加して、クラスターのクロスサービス クエリを有効にします。
Log Analytics ワークスペースまたは Application Insights リソースに接続する前に、Azure Data Explorer ネイティブ クラスター (help クラスターなど) が左側のメニューに表示されることを確認します。
Azure Data Explorer UI で、[+ 追加] を選択した後、[接続] を選択します。
[接続の追加] ウィンドウで、Log Analytics (LA) ワークスペースまたは Application Insights (AI) リソースの URL と表示名を追加します。
- Log Analytics (LA) ワークスペースの場合:
https://ade.loganalytics.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>
- Application Insights (AI) リソースの場合:
https://ade.applicationinsights.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.insights/components/<ai-app-name>
Note
サブスクリプション内のすべてのデータベースを表示するには
https://ade.applicationinsights.io/subscriptions/<subscription-id>
を指定します。 この構文は、Log Analytics ワークスペース クラスターでも動作します。- Log Analytics (LA) ワークスペースの場合:
[追加] を選択します。
Note
- 次のエンドポイントは異なります。
- Azure Government-
adx.monitor.azure.us/
- Azure China-
adx.monitor.azure.cn/
- 複数の Log Analytics ワークスペース/Application Insights リソースに対する接続を追加する場合は、それぞれに異なる名前を付けます。 そうしないと、左側のウィンドウですべてが同じ名前になります。
接続が確立されると、Log Analytics ワークスペースまたは Application Insights リソースがネイティブ Azure Data Explorer クラスターと共に左側のペインに表示されます。
Note
Azure Monitor 内のデータに対して Azure Data Explorer から実行するクエリは、クロスリソース クエリの制限の対象となります。
クエリを実行する
Kusto クエリをサポートするクライアント ツールを使用してクエリを実行できます。例: Kusto Explorer、Azure Data Explorer の Web UI、Jupyter Kqlmagic、Flow、PowerQuery、PowerShell、Lens、REST API。
Note
クロスサービス クエリは、データ取得のためだけに使用されます。 詳細については、「関数のサポート」を参照してください。
ヒント
- データベースは、クロスサービス クエリで指定したリソースと同じ名前にする必要があります。 名前は大文字と小文字が区別されます。
- クロスサービス クエリでは、Application Insights リソースと Log Analytics ワークスペースの名前が正しいことを確認してください。
- 名前に特殊文字が含まれている場合は、クロスサービス クエリで URL エンコードに置き換えられます。
- 名前に KQL 識別子の名前規則を満たしていない文字が含まれている場合は、ダッシュ - 文字で置き換えられます。
Azure Data Explorer クライアント ツールからの Log Analytics ワークスペースまたは Application Insights リソースに対する直接クエリ
Azure Data Explorer クライアント ツールから Log Analytics ワークスペースまたは Application Insights リソースに対してクエリを実行できます。
左側のペインでワークスペースが選択されていることを確認します。
次のクエリを実行します。
Perf | take 10 // Demonstrate cross-service query on the Log Analytics workspace
Log Analytics ワークスペースまたは Application Insights リソースと Azure Data Explorer ネイティブ クラスターのクロス クエリ
クロス クラスター サービス クエリを実行する場合は、左側のペインで Azure Data Explorer ネイティブ クラスターが選択されていることを確認してください。 次の例では、Azure Data Explorer クラスター テーブルと Log Analytics ワークスペースを (union
を使用して) 結合する方法を示します。
次のクエリを実行します。
union StormEvents, cluster('https://ade.loganalytics.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>').database('<workspace-name>').Perf
| take 10
let CL1 = 'https://ade.loganalytics.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>';
union <ADX table>, cluster(CL1).database(<workspace-name>).<table name>
一方のテナントの Azure Data Explorer クラスターのデータを他方の Azure Monitor リソースと結合する
サービス間のクロス テナント クエリはサポートされていません。 両方のリソースにまたがるクエリを実行するためには、1 つのテナントにサインインします。
Azure Data Explorer リソースが tenant-name-a 内にあり、Log Analytics ワークスペースが tenant-name-b 内にある場合は、以下の 2 つの方法のいずれかを使用します。
Azure Data Explorer を使用すると、異なるテナントにプリンシパルのロールを追加できます。 tenant-name-b 内のユーザー ID を Azure Data Explorer クラスター上に許可されているユーザーとして追加します。 Azure Data Explorer クラスター上の 'TrustedExternalTenant' プロパティが tenant-name-b 内に含まれていることを確認します。 完全に tenant-name-b 内でクロスクエリを実行します。
Lighthouse を使用して、Azure Monitor リソースを tenant-name-a に射影します。
さまざまなテナントから Azure Data Explorer クラスターに接続する
Kusto Explorer では、ユーザー アカウントが最初に属しているテナントに自動的にサインインされます。 同じユーザー アカウントを使用して他のテナントのリソースにアクセスするには、接続文字列に tenantId
を明示的に指定する必要があります: Data Source=https://ade.applicationinsights.io/subscriptions/SubscriptionId/resourcegroups/ResourceGroupName;Initial Catalog=NetDefaultDB;AAD Federated Security=True;Authority ID=<TenantId>
関数のサポート
Azure Data Explorer クロスサービス クエリでは、Application Insights リソースと Log Analytics ワークスペース両方の関数がサポートされています。 この機能により、クロス クラスター クエリで Azure Monitor の表形式関数を直接参照できます。 次のコマンドがクロスサービス クエリでサポートされています。
.show functions
.show function
[FunctionName].show database
[DatabaseName]schema as json
制限事項
クロスサービス クエリがサポートしているのは
.show functions
だけです。 この機能により、クロス クラスター クエリで Azure Monitor、Azure Data Explorer、または Azure Resource Graph の表形式関数を直接参照できます。 次のコマンドがクロスサービス クエリでサポートされています。.show functions
.show function
[FunctionName].show database
[DatabaseName]schema as json
Private Link (プライベート エンドポイント) と IP の制限では、クロスサービス クエリをサポートしていません。
その他の構文例
Application Insights または Log Analytics ワークスペースを呼び出す場合は、以下の構文オプションを利用できます。
構文の説明 | Application Insights リソース | Log Analytics ワークスペース |
---|---|---|
このサブスクリプションで定義されているリソースのみを含むクラスター内のデータベース (クロス クラスター クエリの場合に推奨) | cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.insights/components/<ai-app-name>').database('<ai-app-name>') |
cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>').database('<workspace-name> ') |
このサブスクリプション内のすべてのアプリ/ワークスペースを含むクラスター | cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>') |
cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id> ') |
サブスクリプション内のすべてのアプリ/ワークスペースを含み、このリソース グループのメンバーであるクラスター | cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name> ') |
cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>') |
このサブスクリプションで定義されているリソースのみを含むクラスター | cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.insights/components/<ai-app-name> ') |
cluster('https://adx.monitor.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>') |
UsGov のエンドポイントの場合 | cluster('https://adx.monitor.azure.us/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>') |
|
China 21Vianet のエンドポイントの場合 | cluster('https://adx.monitor.azure.cn/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>') |