設定適用於 Power BI 的 Azure Log Analytics

Power BI 與 Azure Log Analytics 整合,可讓系統管理員和 進階版 工作區擁有者設定其 Power BI 訂用帳戶的 Log Analytics 連線。 本文說明 Log Analytics 與 Power BI 之間的整合如何運作,以及如何為您的環境進行設定。

讓 Azure Log Analytics 適用於 Power BI 有兩個元素:

  • 在 Azure 入口網站 中設定您的 Azure 訂用帳戶。
  • 在 Power BI 管理員 入口網站中啟用 Power BI 的 Log Analytics。

下列各節會引導您完成兩者的步驟。

Screenshot of the Azure connections tab open in the settings pane.

必要條件

您必須先在 Azure 入口網站 中建立Log Analytics工作區才能從Power BI 設定Log Analytics整合。 您也必須在 Azure 中授與許可權,Power BI 服務 才能寫入記錄。 確切的需求如下:

  • Azure 訂用帳戶的參與者存取權。
  • 在您將收集 Power BI 記錄數據的 Azure 訂用帳戶中註冊 'microsoft.insights' 資源提供者。
  • 在 Power BI 中設定 Log Analytics 整合的使用者必須位於 Log Analytics 工作區的 Log Analytics 參與者角色中。 如需無法提供擁有者角色的因應措施,請參閱常見問題。

啟用 『microsoft.insights』 資源提供者

Log Analytics 需要在 Azure 訂用帳戶層級啟用 'microsoft.insights' 資源提供者。 下列步驟會引導您完成此程式。

  1. 登入 Azure 入口網站,選取您想要與Log Analytics搭配使用的訂用帳戶,其中包含Log Analytics工作區。 在 [設定] 區段中,選取 [資源提供者],如下圖所示。

    Screenshot of the settings menu options, resource providers is selected.

  2. 在 [資源提供者] 底下搜尋 microsoft.insights。 然後選取 [ 註冊]。

    Screenshot of resource providers in the main pane with Microsoft.insights is registered.

設定權限

  1. 請確定設定Log Analytics整合的使用者具有 Log Analytics工作區的Log Analytics 參與者 角色。 當您在 Azure 入口網站 中選取訂用帳戶的訪問控制 (IAM),然後從面板中的頂端選取 [角色指派] 時,目前的用戶必須看到一個專案:設定 Log Analytics 的使用者 Log Analytics 參與者

    Screenshot of the Access control pane with role highlighted.

完成這些步驟之後,Azure Log Analytics 組態部分就會完成。 下一節說明如何在Power BI 管理員入口網站中繼續並完成設定。

允許從 管理員 入口網站進行工作區層級記錄

Power BI 系統管理員必須完成下列步驟,才能啟用適用於 Power BI 的 Azure Log Analytics 進階版 工作區。 此設定可讓 Power BI 進階版 工作區系統管理員在符合必要條件時,將其工作區記錄傳送至 Azure Log Analytics。

  1. Power BI 管理員 入口網站中,移至 [租使用者 設定 > 稽核和使用方式設定],然後展開工作區系統管理員的 Azure Log Analytics 連線。 若要允許工作區管理員啟用Log Analytics,請將滑桿設定為 [已啟用],並在 [套用至] 下指定所需的安全組,如下圖所示。

    Screenshot of tenant settings in the Admin portal. Azure log analytics connections for workspace administrators is expanded and enabled.

在 進階版 工作區中設定記錄

  1. 進階版 工作區中,工作區管理員可以啟用Log Analytics。 若要這樣做,請移至 設定,如下圖所示。

    Screenshot of the settings pane in a Premium workspace.

  2. [設定] 窗格中,選取 [Azure 連線],然後展開 [Log Analytics],如下圖所示。

    Screenshot of the Azure connections tab open in the settings pane, Log Analytics is expanded.

  3. 選取 Azure 訂用帳戶[資源群組],然後選取上一節中設定的 Log Analytics 工作區。 然後,選擇 [儲存]。 成功完成時,展開 的租用戶層級Log Analytics 區段看起來應該類似下圖。

    Screenshot of the Azure connections tab open in the settings pane showing sample information.

中斷 Azure Log Analytics 的連線

您可以中斷與 Azure Log Analytics 的連線,以停止將記錄傳送至 Azure。 若要中斷連線,請在Power BI工作區 設定 中,移至Log Analytics設定。 選取 [ 從 Azure 中斷連線]。 然後選擇 [ 儲存 ] 以中斷連線。

Screenshot of the disconnect warning on the settings pane.

注意

當您中斷 Power BI 工作區與 Azure Log Analytics 的連線時,不會刪除記錄。 您的數據會維持不變,並遵循您在那裡設定的記憶體和保留原則。

使用方式情節

Azure Log Analytics 和 Power BI 有許多方法可協助您解決組織的實際挑戰。 請考量下列各項:

  • 依容量、工作區、報表或用戶識別高或不尋常的 Analysis Services 引擎活動期間。
  • 分析查詢效能和趨勢,包括外部 DirectQuery 作業。
  • 分析語意模型重新整理持續時間、重疊和處理步驟。
  • 使用 進階版 XMLA 端點分析傳送的自訂作業。

請在 Power BI 社群 中傳送意見反應,以瞭解您使用記錄的方式,以及其如何協助貴組織。

錯誤狀況和解決方式

下表提供一組常見的錯誤、觸發錯誤的事件或組態,以及建議的解決方案。

觸發條件 類型 訊息
您沒有寫入 Log Analytics 工作區的許可權 錯誤 - 無法繼續 您需要此 Log Analytics 工作區的寫入許可權,才能將它連線到 Power BI。 請連絡您組織中管理 Azure 訂用帳戶的人員,以修正此問題。
您沒有寫入 Log Analytics 工作區帳戶的許可權 錯誤 - 無法繼續 您需要此 Log Analytics 工作區的寫入許可權,才能將它連線到 Power BI。
您無法存取任何 Azure 訂用帳戶 錯誤 - 無法繼續 您無法存取任何 Azure 訂用帳戶。 要求管理組織中 Azure 訂用帳戶的人員授與您參與者存取權或更高許可權的人員。
您無法存取該訂用帳戶內的任何 Azure Log Analytics 工作區 錯誤 - 無法繼續 您無法存取 Azure Log Analytics 工作區。 要求管理組織中 Azure 訂用帳戶的人員,將您新增至 Log Analytics 擁有者或參與者角色。
嘗試連線時停用工作區層級Log Analytics 資訊 要求租用戶系統管理員授與工作區管理員連線 Log Analytics 工作區的許可權。
嘗試中斷連線時停用工作區層級的Log Analytics 資訊 您的租用戶系統管理員撤銷了工作區系統管理員連線自己的 Azure Log Analytics 工作區的許可權。 如果您中斷連線,就無法連線到另一個連線。

事件和架構

啟用 Azure Log Analytics 之後,它會開始記錄下列 事件類別目錄。 如需這些事件的詳細資訊,請參閱 Analysis Services 追蹤事件

  • AggregateTableRewriteQuery
  • Command
  • 鎖死
  • DirectQuery
  • 探索
  • 錯誤
  • ProgressReport
  • 查詢
  • 會話初始化
  • VertiPaqSEQuery
  • 通知

下表描述 架構

屬性 現有的 Azure Analysis Services 屬性 描述
TimeGenerated 產生記錄檔時的時間戳 (UTC)。
OperationName EventClass_s 與記錄檔記錄相關聯的作業。
CorrelationId 相關事件的標識碼。 可用來識別多個數據表之間的相互關聯事件。
PowerBIWorkspaceId 包含所操作成品之工作區的唯一標識碼。
進階版 CapacityId 裝載所操作成品之 進階版 容量的唯一標識符。
ApplicationContext ApplicationContext_s 提供執行要求之應用程式詳細數據的唯一標識碼屬性包。 例如,報表標識碼。
ApplicationName ApplicationName_s 包含建立與伺服器連接之用戶端應用程式的名稱。 此資料行會填入應用程式所傳遞的值,而不是程序顯示的名稱。
ArtifactId 記錄數據之資源的唯一標識碼。
ArtifactKind 記錄作業的成品類型,例如語意模型。
CpuTimeMs CPUTime_s 事件所使用的 CPU 時間量(以毫秒為單位)。
ArtifactName DatabaseName_s 記錄這項作業的Power BI成品名稱。
LogAnalyticsCategory 唯一 事件的類別,例如 Audit/Security/Request。
DatasetMode 語意模型的模式。 Import、DirectQuery 或 Composite。
DurationMs Duration_s 作業所花費的時間量(以毫秒為單位)。
使用者 User_s 與執行中作業相關聯的使用者。 在伺服器上必須模擬使用者身分識別時使用。
執行使用者 EffectiveUsername_s 執行作業的使用者。
OperationDetailName EventSubclass_s 作業的詳細數據。
XmlaObjectPath ObjectPath_s 對象路徑。 以逗號分隔的父代清單,從物件的父系開始。
PowerBIWorkspaceName 包含成品的Power BI工作區名稱。
StatusCode Error_s 作業的狀態代碼。 它涵蓋成功和失敗。
ProgressCounter ProgressTotal_s 進度計數器。
XmlaProperties RequestProperties_s XMLA 要求的屬性。
XmlaSessionId SPID_s Analysis Services 會話標識符。
等級 Severity_s 包含所記錄作業的嚴重性層級。 成功、資訊、警告或錯誤。
身分識別 使用者和宣告的相關信息。
狀態 作業的狀態。
EventText TextData_s 包含與作業相關聯的詳細資訊資訊,例如DAX查詢。
CustomerTenantId 客戶的Power BI租用戶標識碼。
XmlaRequestId RootActivityId_g 要求的唯一標識碼。
ReplicaId 複本識別碼,可讓您在啟用查詢相應放大 (QSO)識別複本。 讀寫複本一律具有 ReplicaId='AAA',而只讀複本的 ReplicaId 會從 'AAB' 開始。 對於啟用非 QSO 的語意模型,ReplicaId 一律為 'AAA'

範例 Log Analytics KQL 查詢

當您搭配 Power BI 使用 Azure Log Analytics 時,下列範例查詢集合可能會很有説明。 它們可以直接在 Azure 入口網站 或 API 中執行,以查詢最新的數據,通常大約 5-10 分鐘。

// log count per day for last 30d
PowerBIDatasetsWorkspace
| where TimeGenerated > ago(30d)
| summarize count() by format_datetime(TimeGenerated, 'yyyy-MM-dd')


// average query duration by day for last 30d
PowerBIDatasetsWorkspace
| where TimeGenerated > ago(30d)
| where OperationName == 'QueryEnd'
| summarize avg(DurationMs) by format_datetime(TimeGenerated, 'yyyy-MM-dd')


//query duration percentiles for a single day in 1 hour bins
PowerBIDatasetsWorkspace
| where TimeGenerated >= todatetime('2021-04-28') and TimeGenerated <= todatetime('2021-04-29')
| where OperationName == 'QueryEnd'
| summarize percentiles(DurationMs, 0.5, 0.9) by bin(TimeGenerated, 1h)


// refresh durations by workspace and semantic model for last 30d
PowerBIDatasetsWorkspace
| where TimeGenerated > ago(30d)
| where OperationName == 'CommandEnd'
| where ExecutingUser contains 'Power BI Service'
| where EventText contains 'refresh'
| project PowerBIWorkspaceName, DatasetName = ArtifactName, DurationMs

// query count, distinctUsers, avgCPU, avgDuration by workspace for last 30d
PowerBIDatasetsWorkspace  
| where TimeGenerated > ago(30d)
| where OperationName == "QueryEnd" 
| summarize QueryCount=count()
    , Users = dcount(ExecutingUser)
    , AvgCPU = avg(CpuTimeMs)
    , AvgDuration = avg(DurationMs)
by PowerBIWorkspaceId

Power BI 報表範例

使用 GitHub 上的開放原始碼 Power BI 報表範本 ,探索並取得 Azure Log Analytics Power BI 數據的深入解析。

下列文章可協助您深入瞭解 Power BI 及其與 Azure Log Analytics 的整合。