K2Bridge オープンソース コネクタを使用して Kibana で Azure Data Explorer のデータを視覚化するVisualize data from Azure Data Explorer in Kibana with the K2Bridge open-source connector

K2Bridge (Kibana-Kusto Bridge) では、データソースとして Azure Data Explorer を使用し、Kibana でそのデータを視覚化することができます。K2Bridge (Kibana-Kusto Bridge) lets you use Azure Data Explorer as a data source and visualize that data in Kibana. K2Bridge はオープンソースのコンテナー化されたアプリケーションです。K2Bridge is an open-source, containerized application. Kibana インスタンスと Azure Data Explorer クラスター間のプロキシとして機能します。It acts as a proxy between a Kibana instance and an Azure Data Explorer cluster. この記事では、K2Bridge を使用してその接続を作成する方法について説明します。This article describes how to use K2Bridge to create that connection.

K2Bridge では、Kibana クエリが Kusto Query Language (KQL) に変換されて、Azure Data Explorer の結果が Kibana に送り返されます。K2Bridge translates Kibana queries to Kusto Query Language (KQL) and sends the Azure Data Explorer results back to Kibana.

K2Bridge を介した Azure Data Explorer との Kibana 接続

K2Bridge は Kibana の [Discover](検出) タブをサポートしており、このタブで次のことができます。K2Bridge supports Kibana's Discover tab, where you can:

  • データの検索と探索。Search and explore the data.
  • 結果のフィルター処理。Filter results.
  • 結果グリッドでのフィールドの追加または削除。Add or remove fields in the results grid.
  • レコードの内容の表示。View record content.
  • 検索の保存と共有。Save and share searches.

次の図は、K2Bridge によって Azure Data Explorer にバインドされた Kibana インスタンスを示しています。The following image shows a Kibana instance bound to Azure Data Explorer by K2Bridge. Kibana のユーザー エクスペリエンスは変更されません。The user experience in Kibana is unchanged.

Azure Data Explorer にバインドされた Kibana ページKibana page bound to Azure Data Explorer

前提条件Prerequisites

Kibana で Azure Data Explorer のデータを視覚化するには、事前に次の準備をしておく必要があります。Before you can visualize data from Azure Data Explorer in Kibana, have the following ready:

Azure Kubernetes Service (AKS) で K2Bridge を実行するRun K2Bridge on Azure Kubernetes Service (AKS)

既定では、K2Bridges の Helm チャートでは、Microsoft の Container Registry (MCR) にある公開されているイメージが参照されます。By default, the Helm chart of K2Bridge references a publicly available image located in Microsoft Container Registry (MCR). MCR は資格情報を必要としません。MCR doesn't require any credentials.

  1. 必要な Helm チャートをダウンロードします。Download the required Helm charts.

  2. Elasticsearch 依存関係を Helm に追加します。Add the Elasticsearch dependency to Helm. K2Bridge は内部 Elasticsearch のスモール インスタンスを使用するため、依存関係が必要です。The dependency is required because K2Bridge uses a small internal Elasticsearch instance. インスタンスは、インデックス パターン クエリや保存されたクエリなどの、メタデータ関連の要求を処理します。The instance services metadata-related requests like index-patterns queries and saved queries. この内部インスタンスは、ビジネス データを保存しません。This internal instance saves no business data. このインスタンスは実装の詳細情報であると考えることができます。You can consider the instance to be an implementation detail.

    1. Elasticsearch 依存関係を Helm に追加するには、次のコマンドを実行します。To add the Elasticsearch dependency to Helm, run these commands:

      helm repo add elastic https://helm.elastic.co
      helm repo update
      
    2. K2Bridge チャートを GitHub リポジトリの charts ディレクトリから取得するには、以下を実行します。To get the K2Bridge chart from the charts directory of the GitHub repository:

      1. GitHub からリポジトリを複製します。Clone the repository from GitHub.

      2. K2Bridges ルート リポジトリ ディレクトリに移動します。Go to the K2Bridges root repository directory.

      3. 次のコマンドを実行します。Run this command:

        helm dependency update charts/k2bridge
        
  3. K2Bridge をデプロイします。Deploy K2Bridge.

    1. 環境に合わせて変数に正しい値を設定します。Set the variables to the correct values for your environment.

      ADX_URL=[YOUR_ADX_CLUSTER_URL] #For example, https://mycluster.westeurope.kusto.windows.net
      ADX_DATABASE=[YOUR_ADX_DATABASE_NAME]
      ADX_CLIENT_ID=[SERVICE_PRINCIPAL_CLIENT_ID]
      ADX_CLIENT_SECRET=[SERVICE_PRINCIPAL_CLIENT_SECRET]
      ADX_TENANT_ID=[SERVICE_PRINCIPAL_TENANT_ID]
      
    2. 必要に応じて、Application Insights テレメトリを有効にします。Optionally, enable Application Insights telemetry. Application Insights を初めて使用する場合は、Application Insights リソースを作成します。If you're using Application Insights for the first time, create an Application Insights resource. 変数にインストルメンテーション キーをコピーします。Copy the instrumentation key to a variable.

      APPLICATION_INSIGHTS_KEY=[INSTRUMENTATION_KEY]
      COLLECT_TELEMETRY=true
      
    3. K2Bridge チャートをインストールします。Install the K2Bridge chart.

      helm install k2bridge charts/k2bridge -n k2bridge --set image.repository=$REPOSITORY_NAME/$CONTAINER_NAME --set settings.adxClusterUrl="$ADX_URL" --set settings.adxDefaultDatabaseName="$ADX_DATABASE" --set settings.aadClientId="$ADX_CLIENT_ID" --set settings.aadClientSecret="$ADX_CLIENT_SECRET" --set settings.aadTenantId="$ADX_TENANT_ID" [--set image.tag=latest] [--set privateRegistry="$IMAGE_PULL_SECRET_NAME"] [--set settings.collectTelemetry=$COLLECT_TELEMETRY]
      

      構成」では、構成オプションの完全なセットを見つけることができます。In Configuration, you can find the complete set of configuration options.

    4. 前のコマンドの出力では、Kibana をデプロイする次の Helm コマンドが提案されます。The previous command's output suggests the next Helm command to deploy Kibana. 必要に応じて、次のコマンドを実行します。Optionally, run this command:

      helm install kibana elastic/kibana -n k2bridge --set image=docker.elastic.co/kibana/kibana-oss --set imageTag=6.8.5 --set elasticsearchHosts=http://k2bridge:8080
      
    5. ポート フォワーディングを使用して、localhost 上の Kibana にアクセスします。Use port forwarding to access Kibana on localhost.

      kubectl port-forward service/kibana-kibana 5601 --namespace k2bridge
      
    6. http://127.0.0.1:5601 に移動して、Kibana に接続します。Connect to Kibana by going to http://127.0.0.1:5601.

    7. Kibana をユーザーに公開します。Expose Kibana to users. そのためには複数の方法があります。There are multiple methods to do so. 使用する方法は、ユース ケースによって大きく異なります。The method you use largely depends on your use case.

      たとえば、サービスをロード バランサー サービスとして公開できます。For example, you can expose the service as a Load Balancer service. これを行うには、 --set service. type = LoadBalancer パラメーターを 以前の Kibana Helm インストール コマンドに追加します。To do so, add the --set service.type=LoadBalancer parameter to the earlier Kibana Helm install command.

      その後、次のコマンドを実行します。Then run this command:

      kubectl get service -w -n k2bridge
      

      出力は次のようになります。The output should look like this:

      NAME            TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
      kibana-kibana   LoadBalancer   xx.xx.xx.xx    <pending>     5601:30128/TCP   4m24s
      

      生成され表示された EXTERNAL-IP 値を使用できます。You can then use the generated EXTERNAL-IP value that appears. これを使用して Kibana にアクセスするには、ブラウザーを開き、<EXTERNAL-IP>:5601 に移動しますUse it to access Kibana by opening a browser and going to <EXTERNAL-IP>:5601.

  4. データにアクセスするためのインデックス パターンを構成します。Configure index patterns to access your data.

    新しい Kibana インスタンスで次のようにします。In a new Kibana instance:

    1. Kibana を開きます。Open Kibana.
    2. [Management](管理) を参照します。Browse to Management .
    3. [Index Patterns](インデックス パターン) を選択します。Select Index Patterns .
    4. インデックス パターンを作成します。Create an index pattern. インデックスの名前は、テーブル名または関数名と完全に一致している必要があります。アスタリスク (*) は使用できません。The name of the index must exactly match the table name or function name without an asterisk (*). リストから関連する行をコピーできます。You can copy the relevant line from the list.

注意

K2Bridge を他の Kubernetes プロバイダーで実行するには、Elasticsearch の values.yaml の storageClassName 値を、プロバイダーによって提案されたものに合うように変更します。To run K2Bridge on other Kubernetes providers, change the Elasticsearch storageClassName value in values.yaml to match the one suggested by the provider.

データの視覚化Visualize data

Azure Data Explorer が Kibana のデータ ソースとして構成されている場合は、Kibana を使用してデータを探索できます。When Azure Data Explorer is configured as a data source for Kibana, you can use Kibana to explore the data.

  1. Kibana の一番左側のメニューで、 [Discover](検出) タブを選択します。In Kibana, on the leftmost menu, select the Discover tab.

  2. 一番左側のドロップダウン リスト ボックスから、インデックス パターンを選択します。From the leftmost drop-down list box, select an index pattern. このパターンにより、探索するデータソースを定義します。The pattern defines the data source you want to explore. この場合、インデックス パターンは Azure Data Explorer テーブルです。In this case, the index pattern is an Azure Data Explorer table.

    インデックス パターンの選択

  3. データに時間フィルター フィールドがある場合は、時間の範囲を指定できます。If your data has a time-filter field, you can specify the time range. [Discover](検出) ページの右上で、時間フィルターを選択します。At the upper right of the Discover page, select a time filter. 既定では、このページには過去 15 分間のデータが表示されます。By default, the page shows data for the last 15 minutes.

    時間フィルターの選択

  4. 結果テーブルには、最初の 500 レコードが表示されます。The results table shows the first 500 records. ドキュメントを展開して、JSON 形式またはテーブル形式のいずれかで、そのフィールド データを調べることができます。You can expand a document to examine its field data in either JSON or table format.

    展開されたレコード

  5. 既定では、結果テーブルには _source 列が含まれています。By default, the results table includes the _source column. また、時間フィールドが存在する場合は、 Time 列も含まれます。It also includes the Time column if the time field exists. 一番左側のペインでフィールド名の横にある [add](追加) を選択することで、結果テーブルに特定の列を追加できます。You can add specific columns to the results table by selecting add next to the field name in the leftmost pane.

    [add](追加) ボタンが強調表示されている特定の列

  6. クエリ バーでは、次の方法でデータを検索できます。In the query bar, you can search the data by:

    • 検索用語の入力。Entering a search term.
    • Lucene クエリ構文の使用。Using the Lucene query syntax. 次に例を示します。For example:
      • "error" を検索して、この値を含むすべてのレコードを検索します。Search for "error" to find all records that contain this value.
      • "status: 200" を検索して、状態値が 200 のすべてのレコードを取得します。Search for "status: 200" to get all records with a status value of 200.
    • 論理演算子 ANDOR 、および NOT を使用します。Using the logical operators AND , OR , and NOT .
    • アスタリスク (*) と疑問符 (?) のワイルドカード文字を使用します。Using the asterisk (*) and question mark (?) wildcard characters. たとえば、クエリ "destination_city:L*" は、destination-city 値が "L" または "l" で始まるレコードと一致します。For example, the query "destination_city: L*" matches records where the destination-city value starts with "L" or "l". (K2Bridge では大文字と小文字は区別されません。)(K2Bridge isn't case-sensitive.)

    Running a query

    ヒント

    検索」では、さらに多くの検索ルールとロジックを見つけることができます。In Searching, you can find more search rules and logic.

  7. 検索結果をフィルター処理するには、ページの一番右側のペインにあるフィールド リストを使用します。To filter your search results, use the field list on the rightmost pane of the page. フィールド リストには、次の項目が表示されます。The field list is where you can see:

    • フィールドの上位 5 つの値。The top five values for the field.
    • フィールドが含まれているレコードの数。The number of records that contain the field.
    • 各値を含むレコードの割合。The percentage of records that contain each value.

    ヒント

    虫眼鏡を使用して、特定の値を持つすべてのレコードを検索します。Use the magnifying glass to find all records that have a specific value.

    虫眼鏡が強調表示されているフィールド リスト

    また虫眼鏡を使用して結果をフィルター処理し、結果テーブル内の各レコードの結果テーブル形式ビューを表示することもできます。You can also use the magnifying glass to filter results and see the results table-format view of each record in the results table.

    虫眼鏡が強調表示されているテーブル リスト

  8. 検索の [Save](保存) または [Share](共有) を選択します。Select either Save or Share for your search.

    検索を保存または共有するための強調表示されたボタン