使用 K2Bridge 開放原始碼連接器將資料從 Kibana 中的 Azure Data Explorer視覺化

K2Bridge (Kibana-Kusto Bridge) 可讓您使用 Azure Data Explorer作為資料來源,並將Kibana中的資料視覺化。 K2Bridge 是 開放原始碼的容器化應用程式。 它可作為 Kibana 實例與 Azure Data Explorer 叢集之間的 Proxy。 本文說明如何使用 K2Bridge 來建立該連線。

K2Bridge 會將 Kibana 查詢轉譯為Kusto 查詢語言 (KQL) ,並將 Azure Data Explorer結果傳回 Kibana。

透過 K2Bridge 與 Azure Data Explorer的 Kibana 連線。

K2Bridge 支援 Kibana 的 [探索]、[ 視覺化 ] 和 [ 儀表板 ] 索引標籤。

使用 [ 探索] 索引 標籤,您可以:

  • 搜尋並探索資料。
  • 篩選結果。
  • 在結果方格中新增或移除欄位。
  • 檢視記錄內容。
  • 儲存和共用搜尋。

使用 [ 視覺化] 索引標籤,您可以:

  • 建立視覺效果,例如:橫條圖、圓形圖、資料表、熱度圖等等。
  • 儲存視覺效果

使用 [儀表板] 索引卷 標,您可以:

  • 使用新的或已儲存的視覺效果來建立面板。
  • 儲存儀表板。

下圖顯示 K2Bridge 系結至 Azure Data Explorer的 Kibana 實例。 Kibana 中的使用者體驗不會變更。

系結至 Azure Data Explorer的 Kibana 頁面。

必要條件

在 Kibana 中將資料從 Azure Data Explorer視覺化之前,請先備妥下列各項:

  • Azure 訂用帳戶。 建立 Azure 免費帳戶
  • Azure Data Explorer叢集和資料庫。 您將需要叢集的 URL 和資料庫名稱。
  • Helm v3,Kubernetes套件管理員。
  • Azure Kubernetes Service (AKS) 叢集或任何其他 Kubernetes 叢集。 使用 1.21.2 版或更新版本,至少有三個Azure Kubernetes Service節點。 1.21.2 版已經過測試和驗證。 如果您需要 AKS 叢集,請參閱如何使用Azure CLI或使用Azure 入口網站來部署 AKS 叢集。
  • 授權在 Azure Data Explorer中檢視資料的Microsoft Entra服務主體,包括用戶端識別碼和用戶端密碼。 或者,您可以使用 系統指派的受控識別

如果您選擇使用Microsoft Entra服務主體,則必須建立Microsoft Entra服務主體。 針對安裝,您將需要 ClientID 和秘密。 建議您使用具有檢視器許可權的服務主體,並不建議您使用較高層級的許可權。 若要指派許可權,請參閱管理Azure 入口網站中的資料庫許可權,或使用管理命令來管理資料庫安全性角色

如果您選擇使用系統指派的身分識別,您必須取得位於所產生 「[MC_xxxx]」資源) 群組中的代理程式組件區受控識別ClientID (

在 AKS Azure Kubernetes Service () 上執行 K2Bridge

根據預設,K2Bridge 的 Helm 圖表會參考位於 Microsoft Container Registry (MCR) 的公開可用映射。 MCR 不需要任何認證。

  1. 下載必要的 Helm 圖表。

  2. 將 Elasticsearch 相依性新增至 Helm。 需要相依性,因為 K2Bridge 使用小型的內部 Elasticsearch 實例。 實例服務中繼資料相關的要求,例如索引模式查詢和已儲存的查詢。 這個內部實例不會儲存任何商務資料。 您可以將 實例視為實作詳細資料。

    1. 若要將 Elasticsearch 相依性新增至 Helm,請執行下列命令:

      helm repo add elastic https://helm.elastic.co
      helm repo update
      
    2. 若要從 GitHub 存放庫的圖表目錄取得 K2Bridge 圖表:

      1. GitHub複製存放庫。

      2. 移至 K2Bridges 根存放庫目錄。

      3. 執行此命令:

        helm dependency update charts/k2bridge
        
  3. 部署 K2Bridge。

    1. 將變數設定為環境的正確值。

      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]
      

      注意

      使用受控識別時,ADX_CLIENT_ID值是受控識別的用戶端識別碼,位於產生的 「[MC_xxxx]」 資源群組中。 如需詳細資訊,請參閱 資源群組MC_。 只有在您使用Microsoft Entra服務主體時,才需要ADX_SECRET_ID。

    2. 選擇性地啟用 Application Insights 遙測。 如果您第一次使用 Application Insights,請建立 Application Insights 資源將檢測金鑰複製到 變數。

      APPLICATION_INSIGHTS_KEY=[INSTRUMENTATION_KEY]
      COLLECT_TELEMETRY=true
      
    3. 安裝 K2Bridge 圖表。 只有 Kibana 7.10 版本才支援視覺效果和儀表板。 最新的影像標籤包括:6.8_latest和7.16_latest,分別支援 Kibana 6.8 和 Kibana 7.10。 '7.16_latest' 的影像支援 Kibana OSS 7.10.2,而其內部 Elasticsearch 實例是 7.16.2。

      如果使用Microsoft Entra服務主體:

      helm install k2bridge charts/k2bridge -n k2bridge --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=6.8_latest/7.16_latest] 
      [--set image.repository=$REPOSITORY_NAME/$CONTAINER_NAME] 
      [--set privateRegistry="$IMAGE_PULL_SECRET_NAME"] [--set settings.collectTelemetry=$COLLECT_TELEMETRY]
      

      或者,如果使用受控識別:

      helm install k2bridge charts/k2bridge -n k2bridge --set settings.adxClusterUrl="$ADX_URL" --set settings.adxDefaultDatabaseName="$ADX_DATABASE" --set       settings.aadClientId="$ADX_CLIENT_ID" --set settings.useManagedIdentity=true --set settings.aadTenantId="$ADX_TENANT_ID" [--set image.tag=7.16_latest] [--set  settings.collectTelemetry=$COLLECT_TELEMETRY]
      

      在 [ 組態] 中,您可以找到一組完整的組態選項。

    4. 上一個命令的輸出會建議下一個 Helm 命令來部署 Kibana。 選擇性地執行此命令:

      helm install kibana elastic/kibana -n k2bridge --set image=docker.elastic.co/kibana/kibana-oss --set imageTag=7.10.2 --set elasticsearchHosts=http://k2bridge:8080
      
    5. 使用埠轉送來存取 localhost 上的 Kibana。

      kubectl port-forward service/kibana-kibana 5601 --namespace k2bridge
      
    6. 移至 以連線到 http://127.0.0.1:5601 Kibana。

    7. 向使用者公開 Kibana。 有許多方法可以這麼做。 您使用的方法主要取決於您的使用案例。

      例如,您可以將服務公開為Load Balancer服務。 若要這樣做,請將 --set service.type=LoadBalancer 參數新增至 先前的 Kibana Helm install 命令

      然後執行此命令:

      kubectl get service -w -n k2bridge
      

      輸出看起來應該會像下面這樣:

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

      然後,您可以使用出現的產生的 EXTERNAL-IP 值。 藉由開啟瀏覽器並移至 < EXTERNAL-IP > :5601,使用它來存取 Kibana。

  4. 設定索引模式以存取您的資料。

    在新 Kibana 實例中:

    1. 開啟 Kibana。
    2. 流覽至 [管理]。
    3. 選取 [索引模式]。
    4. 建立索引模式。 索引的名稱必須與資料表名稱或函式名稱完全相符,而不需星號 (*) 。 您可以從清單中複製相關行。

注意

若要在其他 Kubernetes 提供者上執行 K2Bridge,請變更 values.yaml 中的 Elasticsearch storageClassName 值,以符合提供者建議的值。

探索資料

當 Azure Data Explorer設定為 Kibana 的資料來源時,您可以使用 Kibana 來探索資料。

Kibana 中 [探索] 索引標籤的螢幕擷取畫面。

  1. 在 Kibana 中,選取 [ 探索] 索引卷 標。

  2. 從索引模式清單中,選取定義要探索之資料來源的索引模式。 在這裡,索引模式是 Azure Data Explorer 資料表。

    資料來源模式清單的螢幕擷取畫面。

  3. 如果您的資料具有時間篩選欄位,您可以指定時間範圍。 在 [ 探索] 頁面右上方,選取時間篩選準則。 根據預設,頁面會顯示過去 15 分鐘的資料。

    選取時間篩選準則的螢幕擷取畫面。

  4. 結果資料表會顯示前 500 筆記錄。 您可以展開檔,以 JSON 或資料表格式檢查欄位資料。

    [探索] 索引標籤中展開記錄的螢幕擷取畫面。

  5. 您可以選取功能變數名稱旁的 [新增], 將特定資料行新增至結果資料表。 根據預設,結果資料表會包含 _source 資料行,如果時間欄位存在, 則為 Time 資料行。

    新增資料行的螢幕擷取畫面。

  6. 在查詢列中,您可以透過下列方式搜尋資料:

    • 輸入搜尋字詞。
    • 使用 Lucene 查詢語法。 例如:
      • 搜尋「錯誤」以尋找包含此值的所有記錄。
      • 搜尋「狀態:200」,以取得狀態值為 200 的所有記錄。
    • 使用邏輯運算子 ANDORNOT
    • 使用星號 (*) 和問號 (?) 萬用字元。 例如,查詢 「destination_city: L*」 會比對目的地城市值開頭為 「L」 或 「l」 的記錄。 (K2Bridge 不區分大小寫。)

    執行查詢的螢幕擷取畫面。

注意

僅支援 kibana 的 Lucene 查詢語法。 請勿使用 KQL 選項,這代表 Kibana 查詢語言。

提示

[搜尋] 中,您可以找到更多搜尋規則和邏輯。

  1. 若要篩選搜尋結果,請使用 [可用] 欄位 清單。 欄位清單是您可以看到的位置:

    • 欄位的前五個值。
    • 包含欄位的記錄數目。
    • 包含每個值的記錄百分比。

    提示

    使用放大鏡來尋找具有特定值的所有記錄。

    醒目提示放大鏡的欄位清單螢幕擷取畫面。

    您也可以使用放大鏡來篩選結果,並查看結果資料表中每個記錄的結果資料表格式檢視。

    已醒目提示放大鏡的資料表清單螢幕擷取畫面。

  2. 選取 [ 儲存 ] 或 [ 共用 ] 以保留您的搜尋。

    如何在 Kibana 中儲存搜尋的螢幕擷取畫面。

視覺化資料

使用 Kibana 視覺效果來快速檢視 Azure Data Explorer資料。

從 [探索] 索引標籤建立視覺效果

  1. 若要建立垂直列視覺效果,請在 [ 探索 ] 索引標籤中,找出 [可用的欄位 ] 側邊列。

    在 [探索] 索引標籤的可用欄位中選取欄位的螢幕擷取畫面。

  2. 選取功能變數名稱,然後按一下 [ 視覺化]。

    建立視覺效果並選取欄位的螢幕擷取畫面。

  3. [ 視覺化] 索引標籤隨即開啟,並顯示視覺效果。 若要編輯視覺效果的資料和計量,請參閱 從 [視覺化] 索引標籤建立視覺效果。

    在 [視覺化] 索引標籤中編輯視覺效果的螢幕擷取畫面。

從 [視覺化] 索引標籤建立視覺效果

  1. 選取 [ 視覺化] 索引標籤,然後按一下 [ 建立視覺效果]。

    選取 [視覺化] 索引標籤的螢幕擷取畫面。

  2. 在 [ 新增視覺效果] 視窗中,選取視覺效果類型。

    選取視覺效果類型的螢幕擷取畫面。

  3. 視覺效果產生之後,您可以編輯計量,並新增最多一個貯體。

    編輯計量的螢幕擷取畫面。

注意

K2Bridge 支援一個貯體匯總。 某些匯總支援搜尋選項。 使用 Lucene 語法,而非代表 Kibana 查詢語言語法的 KQL 選項。

重要

  • 支援下列視覺效果: Vertical bar 、、 Area chartLine chartHorizontal barPie chartHeat mapData tableGaugeGoal chart 和 。 Metric chart
  • 支援下列計量: AverageCountMaxMedianMinPercentilesStandard deviationSum 、、 Top hitsUnique count
  • 不支援計量 Percentiles ranks
  • 使用貯體匯總是選擇性的,您可以在沒有貯體匯總的情況下將資料視覺化。
  • 支援下列貯體: No bucket aggregation 、、 Date histogramRangeFilters 、、 Date rangeHistogramTerms
  • 不支援貯體 IPv4 rangeSignificant terms

建立儀表板

您可以使用 Kibana 視覺效果建立儀表板,以摘要、比較和對比 Azure Data Explorer資料的概覽檢視。

  1. 若要建立儀表板,請選取 [ 儀表板] 索引卷 標,然後按一下 [ 建立新的儀表板]。

    選取 [儀表板] 索引標籤的螢幕擷取畫面。

    新的儀表板會在編輯模式中開啟。

  2. 若要新增視覺效果面板,請按一下 [ 新建]。

    將現有視覺效果新增至儀表板的螢幕擷取畫面。

  3. 若要新增您已建立的視覺效果,請按一下 [ 新增現有的 ],然後選取視覺效果。

  4. 若要排列面板、依優先順序組織面板、調整面板大小等等,請按一下 [ 編輯],然後使用下列選項:

    • 若要移動面板,請按一下並按住面板標頭,然後拖曳至新的位置。
    • 若要調整面板大小,請按一下調整大小控制項,然後拖曳至新的維度。

    具有 Azure Data Explorer資料的視覺效果儀表板螢幕擷取畫面。