Создание собственного журнала аудита Power BI: метрики использования по всему клиенту

Tags: Power BI, PowerShell

Панель мониторинга и отчеты Power BI поставляются с метрикой использования, с помощью которой вы можете увидеть, как пользователи использовали этот контент. Существует также другая метрика использования для всего клиента, которую вы можете увидеть, если у вас есть доступ к учетной записи администратора Power BI в разделе «Панель администратора» в службе Power BI. Однако что делать, если вы хотите создать собственный подробный отчет о показателях использования по всем клиентам? Что, если вы хотите увидеть во всех рабочих пространствах, как происходило потребление отчетов и информационных панелей, кто создал отчеты, кто является его пользователями, в каком рабочем пространстве они находятся и т. д. Эта информация не легко доступна в Power BI Service. В этой записи блога мы покажем вам, как извлечь журнал аудита из Office 365, экспортировать его в текстовые файлы и создать из него отчет Power BI, или другими словами: как создать свой собственный отчет о показателях использования для клиента.

Проблема

Давайте сначала объясним, в чем проблема. Каждый отчет и панель мониторинга имеют отчет о показателях использования, который показывает, где, когда и кем был использован контент. Обычно его можно найти в верхней части панели инструментов или отчета в службе Power BI.

 

Вот пример отчета по показателям использования:

 

Недавно мы объясняли, как можно создать и настроить свою версию отчета с помощью Save as, а затем редактировать отчет. Вот пример созданного нами настраиваемого отчета о показателях использования:

 

Тем не менее, есть еще большая проблема. В этом отчете будут отображены показатели использования только в текущей рабочей области, а не в других рабочих областях. Мы должны создать этот отчет в каждой рабочей области отдельно!

Метрики использования Report и Dashboard, даже после настройки, показывают только использование контента в текущем рабочем пространстве, а не все рабочие пространства.

С другой стороны, если у вас есть доступ к учетной записи администратора Power BI, в разделе  Admin Portal вы можете найти показатели использования всех отчетов и инструментальной панели по разным клиентам:

 

Проблема этого отчета в том, что здесь не так много настроек.

Метрики использования в портале администрирования предоставляют вам метрики, относящиеся ко всему контенту в клиенте Power BI, но их нельзя настроить, и многие детали отсутствуют.

Итак, отталкиваясь от двух предыдущих пунктов, мы ищем способ получить отчет о показателях использования, который дает нам информацию обо всех действиях в клиенте Power BI. Давайте посмотрим, как это возможно.

Audit Log

Служба Power BI использует систему регистрации Office 365. В результате действия Power BI уже зарегистрированы в Office365, вам просто нужно их найти. Если у вас есть учетная запись с достаточными правами доступа к журналу аудита, вы можете перейти на Admin Portal и в раздел Audit Log:

 

Откроется поиск журнала аудита на портале Office.

 

Теперь вы можете искать действия, выбрав его в раскрывающемся списке действий,

 

Вы также можете добавить другие критерии, такие как дата начала и окончания поиска, а также пользователей для поиска. Вот пример вывода:

 

Затем этот вывод можно экспортировать для использования в качестве источника отчета Power BI. Однако вы не можете экспортировать все действия Power BI всех пользователей. Вы получите ошибку, подобную этой:

 

Экспортировать данные журнала вручную, а также частично каждый раз, нецелесообразно, нам нужно найти другой способ извлечения информации журнала аудита.

PowerShell для извлечения журнала аудита

PowerShell - это инструмент на основе выражений, который помогает автоматизировать часть работы для администраторов. PowerShell можно использовать для доступа к журналу аудита Office365. Прежде всего, вам нужно открыть PowerShell от имени администратора.

 

Затем начните со следующего сценария:

 

1

Set-ExecutionPolicy RemoteSigned

 

После нажатия Enter, выберите Y в качестве ответа;

 

Если мы собираемся получить доступ ко всему журналу аудита по клиентк, нам нужен доступ к учетной записи администратора, поэтому нам нужно запросить учетные данные. Следующий скрипт делает это:

 

1

$UserCredential = Get-Credential

 

После успешного входа в систему мы можем начать с создания сеансового подключения к office365 с использованием тех же учетных данных;

 

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

 

затем строка следующего сценария импортирует эти данные сеанса:

1

Import-PSSession $Session

Пока что у нас есть такой вывод в PowerShell:

 

Теперь, в качестве последнего шага, мы можем прочитать журнал аудита с помощью функции Search-UnifiedAuditLog. Вот пример:

Search-UnifiedAuditLog -StartDate (Get-Date).AddDays(-90) -EndDate (Get-Date) -RecordType PowerBI -ResultSize 10

Это даст вам только десять строк журнала аудита (мы ограничили размер результата до 10), как показано ниже:

 

Как вы можете видеть на этом скриншоте, у нас будет список действий в журнале с полем AuditData, которое включает в себя все, что касается действия, включая имя и идентификатор объекта, операцию, время и дату операции, а также пользователей, которые выполняли операцию и результат операции.

Теперь следующий шаг - отформатировать эти данные и экспортировать их в CSV, что является задачей, которую выполняет приведенный ниже скрипт.:

Search-UnifiedAuditLog -StartDate (Get-Date).AddDays(-90) -EndDate (Get-Date) -RecordType PowerBI -ResultSize 5000 | ConvertTo-Csv | Out-File c:\PowerBIAuditLog.csv

Это позволит экспортировать вывод 5000 записей в журнале за последние три месяца в формат CSV, как показано ниже:

 

Несколько советов об этом экспорте:

  • Период по умолчанию, в течение которого Office365 хранит журнал аудита, составляет 90 дней. Вы можете изменить его, если хотите. Вот почему мы вернулись на 90 дней в наши периоды дат.
  • Экспорт поддерживает только до 5000 транзакций журнала аудита, если у вас их больше, то вам нужно разбить его на несколько экспортов.

Отчет Power BI для журнала аудита

Теперь, когда у нас есть файл CSV для всех журналов аудита, давайте использовать его в качестве источника данных в Power BI. Откройте новый файл Power BI и начните с получения данных из CSV.

 

После выбора исходного файла нажмите Edit, чтобы перейти в окно Edit Queries.

 

Теперь давайте удалим верхнюю 1 строку, так как в этой строке нет никакой полезной информации для нас:

 

На следующем шаге перейдите на вкладку Transform и используйте первую строку в качестве заголовка -Use First Row as Header.

 

Вы получите вывод журнала, как показано ниже:

 

Как видите, есть некоторая общая информация, а затем все основные детали находятся в поле AuditData. Поле AuditData отформатировано как JSON. Давайте удалим все остальные поля и оставим только AuditData:

 

Поскольку поле имеет формат JSON, вы можете выбрать опцию Parse JSON, как показано на этом скриншоте:

 

Данные JSON будут в виде записи в каждой ячейке, и теперь вы можете расширить их до нижележащих столбцов:

 

Вот все данные журнала аудита:

 

Остальные просто визуализируют эти данные. Вот несколько примеров визуализаций, которые мы сделали в качестве отчета: этот отчет показывает всех пользователей и их операции над элементами (отчет, набор данных, панель инструментов, рабочие области)

 

А вот другая визуализация, которая показывает все объекты и операции над ними со списком пользователей.

 

Резюме

Да, вы можете создавать собственные отчеты о показателях аудита или использования по всему клиенту из всех рабочих областей. Вы можете использовать PowerShell для экспорта журнала аудита в CSV, а затем использовать его в качестве источника отчета Power BI. Конечно, этот процесс можно автоматизировать с помощью служб SSIS или Azure Data Factory. Фактически, это то, что мы надеемся добавить в следующую версию Power BI Helper. Кроме того, PowerShell может быть полезен для получения многих других сведений из службы. В одной из следующих статей мы объясним, как получить еще больше информации об объектах Power BI в вашем клиенте с помощью PowerShell.

No Comments

Add a Comment