Grafana で Azure Data Explorer のデータを視覚化する
[アーティクル] 11/23/2024
16 人の共同作成者
フィードバック
この記事の内容
Grafana は、データのクエリと視覚化を行い、視覚化に基づいてダッシュボードを作成して共有できる分析プラットフォームです。 Grafana には、Azure Data Explorer plug-in が用意されています。これにより、Azure Data Explorer に接続して、Azure Data Explorer からデータを視覚化できます。 このプラグインは、 Azure Managed Grafana とセルフホステッド Grafana の両方で動作します。
この記事では、クラスターを Grafana のデータ ソースとして構成し Azure Managed Grafana とセルフホステッド Grafana の Grafana でデータを 表示する方法について説明します。 この記事の例に従うには、StormEvents サンプル データを 。 StormEvents サンプル データセットには、 環境情報センター の気象関連データが含まれています。
前提条件
Azure Data Explorer をデータ ソースとして構成するには、Grafana 環境の手順に従います。
ビューアー ロールにマネージド ID を追加する
Managed Grafana では、新しいワークスペースごとにシステム割り当てマネージド ID が既定で作成されます。 これを使用して、Azure Data Explorer クラスターにアクセスできます。
Azure portal で、Azure Data Explorer クラスターに移動します。
Overview セクションで、StormEvents サンプル データを含むデータベースを選択します。
Permissions >Add >Viewer を選択します。
検索ボックスに、Managed Grafana ワークスペース名を入力します。
検索結果で、ワークスペース名と一致する結果を選択し、 選択 を選択します。
Azure Data Explorer を Grafana データ ソースとして設定する
マネージド Grafana ワークスペースには、Azure Data Explorer プラグインがプレインストールされています。
Azure portal で、Managed Grafana ワークスペースに移動します。
Overview で、Endpoint リンクを選択して Grafana UI を開きます。
Grafana の左側のメニューで、歯車アイコンを選択します。 次に、[データ ソース を選択します。
Azure Data Explorer データソース を選択します。
Connection の詳細 に、Azure Data Explorer クラスターの URL を入力します。
[Save & Test]\(保存してテスト\) を選択します。
サービス プリンシパルの作成
サービス プリンシパルは、Azure ポータルで作成するか Azure CLI コマンドライン エクスペリエンスを使用して作成できます。 サービス プリンシパルを作成した後、後の手順で使用する 4 つの接続プロパティの値を取得します。
Azure portal
Azure ポータルのドキュメント の指示に従います。 次の特定の情報を使用します。
「アプリケーションをロールに割り当てる 」で、Azure Data Explorer クラスターに閲覧者 ロールを割り当てます。
サインインの Get 値 セクションで、手順で説明する 3 つのプロパティの値をコピーします: Directory ID (テナント ID)、 アプリケーション ID 、および Password 。
Azure Portal で、 [サブスクリプション] を選びます。 次に、サービス プリンシパルを作成したサブスクリプションの ID をコピーします。
Azure CLI
サービス プリンシパルを作成するには、次のコマンドを使用します。 適切なスコープを設定し、ロールの種類として reader
を設定します。
az ad sp create-for-rbac --name "https://{UrlToYourDashboard}:{PortNumber}" --role "reader" \
--scopes /subscriptions/{SubID}/resourceGroups/{ResourceGroupName}
詳細については、「 Azure CLI を使用して Azure サービス プリンシパルを作成する を参照してください。
このコマンドは、次の例のような結果セットを返します。 appId
、password
、およびtenant
プロパティの値をコピーします。
{
"appId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"displayName": "{UrlToYourDashboard}:{PortNumber}",
"name": "https://{UrlToYourDashboard}:{PortNumber}",
"password": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"tenant": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
サブスクリプションの一覧を取得します。
az account list --output table
適切なサブスクリプション ID をコピーします。
サービス プリンシパルをビューアー ロールに追加する
これでサービス プリンシパルが作成されたので、それを Azure Data Explorer データベースの Viewer ロールに追加します。 この作業は、Azure portal の [アクセス許可] で実行することも、[クエリ] で管理コマンドを使用して実行することもできます。
Azure portal: アクセス許可
Azure portal で、Azure Data Explorer クラスターに移動します。
Overview セクションで、StormEvents サンプル データを含むデータベースを選択します。
[アクセス許可] >[追加] の順に選択します。
[データベースのアクセス許可の追加 で、Viewer ロールを選択し、プリンシパルの選択 を選択します。
作成したサービス プリンシパルを検索します。 プリンシパルを選択し、 選択 を選択します。
[保存] を選択します。
管理コマンド: クエリ
Azure portal で、Azure Data Explorer クラスターに移動し、 Query を選択します。
クエリ ウィンドウで次のコマンドを実行します。 Azure portal または Azure CLI からアプリケーション ID とテナント ID を使用します。
.add database {TestDatabase} viewers ('aadapp={ApplicationID};{TenantID}')
このコマンドは結果セットを返します。 次の例では、最初の行はデータベース内の既存のユーザー用です。 2 番目の行は、先ほど追加したサービス プリンシパル用です。
プロパティを指定し、接続をテストする
Viewer ロールにサービス プリンシパルが割り当てられているので、Grafana のインスタンスでプロパティを指定し、Azure Data Explorer への接続をテストします。
Grafana の左側のメニューで、歯車アイコンを選択します。 次に、[データ ソース を選択します。
[データ ソースの追加] を選択します。
[ Data Sources / New ] ページで、データ ソースの名前を入力し、Azure Data Explorer データソース 種類を選択 。
Settings >Connection の詳細 に、https://{ClusterName}.{Region}.kusto.windows.net
の形式でクラスターの名前を入力します。 Azure portal または Azure CLI から他の値を入力します。 ガイドとして、次のマッピング情報を使用します。
Grafana のユーザー インターフェイス
Azure portal
Azure CLI
サブスクリプション ID
サブスクリプション ID
SubscriptionId
テナント ID
ディレクトリ ID
tenant
クライアント ID
アプリケーション ID
appId
クライアント シークレット
パスワード
password
[Save & Test]\(保存してテスト\) を選択します。
テストが成功した場合は、次のセクションに進みます。 問題がある場合は、Grafana で指定した値を確認し、前の手順を確認します。
クエリの最適化
クエリの最適化には、次の 2 つの機能を使用できます。
最適化を実行するには、[データ ソース] > [設定] > [Query Optimizations]\(クエリ最適化\) で、必要な変更を行います。
ダッシュボードまたはビジュアルが 1 人以上のユーザーによって複数回レンダリングされると、Grafana は既定で少なくとも 1 つのクエリを Azure Data Explorer に送信します。 Query の結果キャッシュを有効にして ダッシュボードのレンダリングパフォーマンスを向上させ、Azure Data Explorer クラスターの負荷を軽減します。
Azure Data Explorer は、指定された時間範囲内で、結果キャッシュを使用して前の結果を取得し、不要なクエリを実行しません。 この機能は、複数のユーザーが同じダッシュボードを使用している場合に、リソースの負荷を軽減し、パフォーマンスを向上させるために特に有効です。
結果キャッシュのレンダリングを有効にするには、 Query の最適化 ペインで次の操作を行います。
動的キャッシュを使用する をオフにします。
[Cache Max Age]\(最大キャッシュ時間\) に、キャッシュされた結果を使用する時間を分単位で入力します。
弱い整合性を有効にする
クラスターは、強い整合性を使用して構成されます。 この既定の構成では、クエリ結果がクラスター内のすべての変更で最新の状態であることを保証します。
弱い整合性を有効にすると、クラスターの変更後にクエリ結果のラグが 1 ~ 2 分になることがあります。 ただし、一貫性が弱い場合は、ビジュアルのレンダリング時間が長引く可能性があります。 即時整合性が重要ではなく、パフォーマンスが限界である場合は、弱い整合性を有効にしてパフォーマンスを向上させます。 詳細については、「 Query の整合性 」を参照してください。
弱い整合性を有効にするには、 Query の最適化 ウィンドウで、 Data 整合性 >Weak を選択します。
データの視覚化
Grafana のデータ ソースとして Azure Data Explorer の構成が完了しました。 次に、データを視覚化します。
次の基本的な例では、クエリ ビルダー モードとクエリ エディターの生モードの両方を使用します。 データセットに対して実行する他のクエリの例など Azure Data Explorer のクエリ 書き込みクエリを表示することをお勧めします。
Grafana の左側のメニューで、プラス アイコンを選択します。 次に、[ダッシュボード] を選択します。
[Add]\(追加\) タブの [Graph]\(グラフ\) を選択します。
グラフ ペインで、 Panel Title >Edit を選択します。
ウィンドウの下部にある Data Source を選択し、構成したデータ ソースを選択します。
クエリ ビルダーモード
クエリ ビルダー モードを使用してクエリを定義します。
データ ソースの下にある Database を選択し、ドロップダウン リストからデータベースを選択します。
From を選択し、ドロップダウン リストからテーブルを選択します。
テーブルが定義されたので、データをフィルター処理します。
場所 (フィルター) の右側にある+ を選択して、テーブル内の 1 つ以上の列を選択します。
フィルターごとに、該当する演算子を使用して値を定義します。 この選択は、Kusto 照会言語で where 演算子 を使用する場合と似ています。
表に表示する値を選択します。
Value 列の右側にある+ を選択して ペインに表示される値列を選択します。
値の列ごとに、集計の種類を設定します。
1 つ以上の値列を設定できます。 この選択は、summarize 演算子 を使用することと同じです。
Group by (summarize) の右側にある+ を選択して、値をグループに配置するために使用する 1 つ以上の列を選択します。 この選択は、 summarize
演算子のグループ式と同じです。
[クエリの実行] を選択します。
ヒント
クエリ ビルダーで設定を終了すると、Kusto 照会言語クエリが作成されます。 このクエリは、グラフィカル クエリ エディターを使用して構築したロジックを示します。
編集 KQL を選択して未加工モードに移行します。 Kusto 照会言語の柔軟性と能力を使用してクエリを編集します。
raw モード
raw モードを使用してクエリを編集します。
クエリ ウィンドウで、次のクエリを貼り付け、 Run を選択します。 このクエリでは、サンプル データセットの 1 日ごとのイベント数がバケット化されます。
StormEvents
| summarize event_count=count() by bin(StartTime, 1d)
このグラフは、過去 6 時間のデータにスコープ (既定) があるため、結果は表示されません。 上部のメニューで、[Last 6 hours]\(過去 6 時間\) を選択します。
StormEvents サンプル データセットに含まれる年である 2007 を対象とするカスタム範囲を指定します。 次に、[適用] を選択します。
これで、日単位でバケット処理された 2007 年のデータがグラフに表示されます。
上部のメニューで、保存アイコン [ ] を選択します。
クエリ ビルダー モードに切り替えるには、[Switch to builder]\(ビルダーに切り替え\) を選択します。 Grafana は、クエリ ビルダーで使用可能なロジックにクエリを変換します。 クエリ ビルダーのロジックは制限されているため、クエリに加えた手動の変更が失われる可能性があります。
アラートを作成する
Home ダッシュボード で、Alerting >Notification チャネル を選択して新しい通知チャネルを作成します。
[新しい通知チャネル] 名前を入力し [保存] 選択 。
ダッシュボードで、ドロップダウン リストから Edit を選択します。
アラート ベル アイコンを選択して、アラート ウィンドウを開きます。 アラートの作成 を選択し、アラートのプロパティを完了します。
ダッシュボードの保存 アイコンを選択して、変更を保存します。
関連するコンテンツ