使用 K2Bridge 開放原始碼連接器將數據從 Kibana 中的 Azure 數據總管可視化
K2Bridge (Kibana-Kusto Bridge) 可讓您使用 Azure 數據總管作為數據源,並將 Kibana 中的數據可視化。 K2Bridge 是開放 原始碼的容器化應用程式。 它可作為 Kibana 實例與 Azure 數據總管叢集之間的 Proxy。 本文說明如何使用 K2Bridge 來建立該連線。
K2Bridge 會將Kibana查詢轉譯為 Kusto 查詢語言 (KQL),並將 Azure 數據總管結果傳回 Kibana。
K2Bridge 支援 Kibana 的 [ 探索]、[ 可視化 ] 和 [儀錶板 ] 索引標籤。
使用 [ 探索] 索引標籤,您可以:
- 搜尋和探索數據。
- 篩選結果。
- 在結果方格中新增或移除欄位。
- 檢視記錄內容。
- 儲存和共用搜尋。
使用 [ 可視化] 索引標籤,您可以:
- 建立視覺效果,例如:條形圖、餅圖、數據表、熱度圖等等。
- 儲存視覺效果
您可以使用 [ 儀錶板] 索引標籤:
- 使用新的或已儲存的視覺效果建立面板。
- 儲存儀錶板。
下圖顯示 K2Bridge 系結至 Azure 數據總管的 Kibana 實例。 Kibana 中的用戶體驗不會變更。
必要條件
您必須先備妥下列專案,才能在 Kibana 中將 Azure 數據總管的數據可視化:
- 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 和秘密。 建議您使用具有查看器許可權的服務主體,並禁止您使用較高層級的許可權。 若要指派許可權,請參閱管理 Azure 入口網站 中的資料庫許可權,或使用管理命令來管理資料庫安全性角色。
如果您選擇使用系統指派的身分識別,則必須取得代理程式集區受控識別 ClientID (位於產生的 “[MC_xxxx]” 資源群組中)
在 Azure Kubernetes Service 上執行 K2Bridge (AKS)
根據預設,K2Bridge 的 Helm 圖表會參考位於 Microsoft Container Registry (MCR) 中的公開可用映像。 MCR 不需要任何認證。
下載必要的 Helm 圖表。
將 Elasticsearch 相依性新增至 Helm。 因為 K2Bridge 使用小型的內部 Elasticsearch 實例,因此需要相依性。 實例會服務元數據相關的要求,例如索引模式查詢和已儲存的查詢。 此內部實例不會儲存任何商務數據。 您可以將 實例視為實作詳細數據。
若要將 Elasticsearch 相依性新增至 Helm,請執行下列命令:
helm repo add elastic https://helm.elastic.co helm repo update
若要從 GitHub 存放庫的圖表目錄取得 K2Bridge 圖表:
從 GitHub 複製存放庫。
移至 K2Bridges 根存放庫目錄。
執行此命令:
helm dependency update charts/k2bridge
部署 K2Bridge。
將變數設定為您環境的正確值。
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。
選擇性地啟用Application Insights 遙測。 如果您第一次使用Application Insights, 請建立Application Insights 資源。 將檢測金鑰 複製到變數。
APPLICATION_INSIGHTS_KEY=[INSTRUMENTATION_KEY] COLLECT_TELEMETRY=true
安裝 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]
在 [ 組態] 中,您可以找到一組完整的組態選項。
上一個命令的輸出會建議下一個 Helm 命令來部署 Kibana。 選擇性地執行此指令:
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
使用埠轉送來存取localhost上的Kibana。
kubectl port-forward service/kibana-kibana 5601 --namespace k2bridge
前往 以連線到 http://127.0.0.1:5601Kibana。
向使用者公開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。
設定索引模式來存取您的數據。
在新 Kibana 實例中:
- 開啟 Kibana。
- 流覽至 [ 管理]。
- 選取 [索引模式]。
- 建立索引模式。 索引的名稱必須完全符合數據表名稱或函式名稱,而不需星號 。。 您可以從清單中複製相關行。
注意
若要在其他 Kubernetes 提供者上執行 K2Bridge,請變更 values.yaml 中的 Elasticsearch storageClassName 值,以符合提供者建議的值。
探索資料
當 Azure 數據總管設定為 Kibana 的數據源時,您可以使用 Kibana 來探索數據。
在 Kibana 中,選取 [ 探索] 索引標籤。
從索引模式清單中,選取定義要探索之數據源的索引模式。 在這裡,索引模式是 Azure 數據總管數據表。
如果您的資料具有時間篩選欄位,您可以指定時間範圍。 在 [探索] 頁面右上方,選取時間篩選。 根據預設,頁面會顯示過去 15 分鐘的數據。
結果數據表會顯示前 500 筆記錄。 您可以展開檔,以 JSON 或資料表格式檢查欄位數據。
您可以選取 功能變數名稱旁的 [新增 ],將特定資料行新增至結果數據表。 根據預設,如果時間欄位存在,結果數據表會包含 _source數據行 和 Time 數據行。
在查詢欄中,您可以依下列方式搜尋資料:
- 輸入搜尋字詞。
- 使用 Lucene 查詢語法。 例如:
- 搜尋「錯誤」,以尋找包含此值的所有記錄。
- 搜尋「狀態:200」,以取得狀態值為 200 的所有記錄。
- 使用邏輯運算元 AND、 OR 和 NOT。
- 使用星號 • 和問號 (?) 通配符。 例如,查詢 「destination_city: L*」 會比對目的地城市值以 「L」 或 「l」 開頭的記錄。 (K2Bridge 不區分大小寫。
注意
僅支援 kibana 的 Lucene 查詢語法。 請勿使用代表 Kibana 查詢語言的 KQL 選項。
提示
在 [搜尋] 中,您可以找到更多搜尋規則和邏輯。
若要篩選搜尋結果,請使用 [可用的欄位 ] 清單。 欄位清單是您可以看到的位置:
- 欄位的前五個值。
- 包含欄位的記錄數目。
- 包含每個值的記錄百分比。
提示
使用放大鏡來尋找具有特定值的所有記錄。
您也可以使用放大鏡來篩選結果,並查看結果數據表中每個記錄的結果數據表格式檢視。
選取 [儲存] 或 [共用] 以保留您的搜尋。
將資料視覺化
使用 Kibana 視覺效果來取得 Azure 數據總管數據的快速檢視。
從 [探索] 索引標籤建立視覺效果
若要建立垂直列視覺效果,請在 [ 探索 ] 索引標籤中,找出 [ 可用的欄位 ] 側邊列。
選取功能變數名稱,然後按兩下 [ 可視化]。
[可視化] 索引標籤隨即開啟,並顯示視覺效果。 若要編輯視覺效果的數據和計量,另 請參閱從 [可視化] 索引標籤建立視覺效果。
從 [可視化] 索引卷標建立視覺效果
選取 [可視化] 索引卷標,然後按兩下 [建立視覺效果]。
在 [ 新增視覺效果] 視窗中,選取視覺效果類型。
視覺效果產生之後,您可以編輯計量,並新增至一個貯體。
注意
K2Bridge 支援一個貯體匯總。 某些匯總支持搜尋選項。 使用 Lucene 語法,而不是代表 Kibana 查詢語言語法的 KQL 選項。
重要
- 支援下列視覺效果:
Vertical bar
、Area chart
、、Line chart
、Horizontal bar
、、Pie chart
、Gauge
、Heat map
Data table
、Goal chart
和Metric chart
。 - 支援下列計量:
Average
、Count
、Median
Max
、、、Min
、Percentiles
、Standard deviation
、、Sum
Top hits
和Unique count
。 - 不支援計量
Percentiles ranks
。 - 使用貯體匯總是選擇性的,您可以可視化數據,而不需要貯體匯總。
- 支援下列貯體:
No bucket aggregation
、Date histogram
、、Filters
Range
、、Date range
、Histogram
和Terms
。 - 不支援貯體
IPv4 range
和Significant terms
。
建立儀表板
您可以使用 Kibana 視覺效果建立儀錶板,以摘要、比較和對比 Azure 數據總管數據的概覽檢視。
若要建立儀錶板,請選取 [儀錶板 ] 索引卷標,然後按兩下 [ 建立新的儀錶板]。
新的儀錶板會以編輯模式開啟。
若要新增視覺效果面板,請按兩下 [ 新建]。
若要新增您已建立的視覺效果,請按兩下 [新增現有的 ],然後選取視覺效果。
若要排列面板、依優先順序組織面板、調整面板大小等等,請按兩下 [ 編輯],然後使用下列選項:
- 若要移動面板,請按住面板標頭,然後拖曳至新的位置。
- 若要調整面板大小,請按兩下重設大小控制件,然後拖曳至新的維度。