使用 K2Bridge 開放原始碼連接器將數據從 Kibana 中的 Azure 數據總管可視化

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

K2Bridge 會將Kibana查詢轉譯為 Kusto 查詢語言 (KQL),並將 Azure 數據總管結果傳回 Kibana。

Kibana 與 Azure 資料總管透過 K2Bridge 建立連線。

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

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

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

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

  • 建立視覺效果,例如:條形圖、餅圖、數據表、熱度圖等等。
  • 儲存視覺效果

透過儀表板索引標籤,您可以:

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

下圖顯示由 K2Bridge 連接到 Azure 資料總管的 Kibana 執行個體。 Kibana 中的用戶體驗不會變更。

已繫結至 Azure 資料總管的 Kibana 頁面。

必要條件

在您可以在 Kibana 中將 Azure Data Explorer 的資料視覺化之前,請先備妥下列項目:

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

如果你選擇使用 Microsoft Entra 服務主體,你需要建立一個 Microsoft Entra 服務主體。 安裝時,你需要 ClientID 和一個 Secret。 我們建議使用具有檢視者權限的服務主體,並不建議您使用較高層級的權限。 若要指派許可權,請參閱管理 Azure 入口網站 中的資料庫許可權,或使用管理命令來管理資料庫安全性角色

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

在 Azure Kubernetes Service 上執行 K2Bridge (AKS)

根據預設,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 是該管理身份的用戶端 ID,位於產生 [_MC_xxxx_] 的資源群組中。 如需詳細資訊,請參閱 MC_資源群組ADX_CLIENT_SECRET 只有在您使用 Microsoft Entra 服務主體時才需要。

    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. 上一個指令的輸出顯示了接下來可用來部署 Kibana 的 Helm 指令。 選擇性地執行此指令:

      helm install kibana elastic/kibana --version 7.17.3 -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 安裝 命令

      然後執行此命令:

      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 數據總管設定為 Kibana 的數據源時,您可以使用 Kibana 來探索數據。

Kibana 中 [探索] 索引卷標的螢幕快照。

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

  2. 從索引模式清單中,選取定義要探索之數據源的索引模式。 在這裡,索引模式是 Azure 數據總管數據表。

    數據源模式清單的螢幕快照。

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

    選取時間篩選的螢幕快照。

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

    [探索] 索引標籤中展開記錄的螢幕快照。

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

    新增數據行的螢幕快照。

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

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

    執行查詢的螢幕快照。

附註

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

提示

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

  1. 若要篩選搜尋結果,請使用 [可用的欄位 ] 清單。 欄位清單中會顯示:

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

    提示

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

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

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

    表格清單中放大鏡被反白標示的螢幕快照。

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

    如何在Kibana中儲存搜尋的螢幕快照。

將資料視覺化

使用 Kibana 視覺效果來取得 Azure 數據總管數據的快速檢視。

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

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

    在 [探索] 索引標籤中選取可用欄位的螢幕快照。

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

    建立視覺效果並選取欄位的螢幕快照。

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

    在 [可視化] 索引卷標中編輯視覺效果的螢幕快照。

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

  1. 選取 視覺化 索引標籤,然後按一下 建立視覺化

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

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

    選取視覺效果類型的螢幕快照。

  3. 視覺化建立後,您可以編輯指標,並最多新增一個 bucket。

    編輯計量的螢幕快照。

附註

K2Bridge 支援單一值區彙總。 某些匯總支持搜尋選項。 使用 Lucene 語法,而不是代表 Kibana 查詢語言語法的 KQL 選項。

重要

  • 支援下列視覺效果:Vertical barArea chart、、Line chartHorizontal bar、、Pie chartGaugeData tableHeat mapGoal chartMetric chart
  • 支援下列計量:AverageCountMaxMedian、、、MinPercentilesStandard deviation、、 SumTop hitsUnique count
  • 不支援計量 Percentiles ranks
  • 分桶彙總是可選用的,您不使用分桶彙總也可以將資料視覺化。
  • 支援下列儲存貯體:No bucket aggregationDate histogramFiltersRangeDate rangeHistogram,以及 Terms
  • 不支援儲存貯體 IPv4 rangeSignificant terms

建立儀表板

您可以使用 Kibana 視覺效果建立儀錶板,以摘要、比較和對比 Azure 數據總管數據的概覽檢視。

  1. 若要建立儀錶板,請選取 儀錶板 索引標籤,然後按一下 建立新儀錶板

    選取 [儀錶板] 索引標籤的螢幕快照。

    新增的儀表板會以編輯模式開啟。

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

    將現有視覺效果新增至儀錶板的螢幕快照。

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

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

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

    具有 Azure 數據總管數據視覺效果的儀錶板螢幕快照。