教程:配置 Log Analytics 工作区

本教程介绍如何执行下列操作:

  • 为审核和登录日志配置 Log Analytics 工作区
  • 使用 Kusto 查询语言 (KQL) 运行查询
  • 使用快速启动模板创建自定义工作簿
  • 将查询添加到现有工作簿模板

先决条件

若要使用 Log Analytics 分析活动日志,需要以下角色和要求:

通过以下文章熟悉相关知识:

配置 Log Analytics

提示

本文中的步骤可能因开始使用的门户而略有不同。

此过程概述了如何为审核和登录日志配置 Log Analytics 工作区。 若要配置 Log Analytics 工作区,需要创建工作区,然后配置诊断设置。

创建工作区

  1. 至少以安全管理员Log Analytics 参与者的身份登录到 Azure 门户

  2. 浏览到“Log Analytics 工作区”。

  3. 选择创建

    “Log Analytics 工作区”页中的“添加”按钮的屏幕截图。

  4. 在“创建 Log Analytics 工作区”页上,执行以下步骤:

    1. 选择订阅。

    2. 选一个择资源组。

    3. 为工作区命名。

    4. 选择区域。

    “创建新 Log Analytics 工作区”的详细信息页面的屏幕截图。

  5. 选择“查看 + 创建” 。

  6. 选择“创建”并等待部署。 可能需要刷新页面才能看到新的工作区。

配置诊断设置

若要配置诊断设置,需要切换到 Microsoft Entra 管理中心,将标识日志信息发送到新工作区。

  1. 至少以安全管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到“标识”>“监视和运行状况”>“诊断设置”。

  3. 选择“添加诊断设置”。

    “添加诊断设置”选项的屏幕截图。

  4. 在“诊断设置”页上,执行以下步骤:

    1. 为该诊断设置提供一个名称。

    2. 在“日志”下,选择“AuditLogs”和“SigninLogs”

    3. 在“目标详细信息”下,选择“发送到 Log Analytics”,然后选择新的 Log Analytics 工作区 。

    4. 选择“保存”。

    “选择诊断设置”选项的屏幕截图。

现在可以使用 Log Analytics 中的 Kusto 查询语言 (KQL) 对日志进行查询。 可能需要等待约 15 分钟才会填充日志。

在 Log Analytics 中运行查询

此过程显示了如何使用 Kusto 查询语言 (KQL) 运行查询。

运行查询

  1. 至少以报告读取者身份登录到 Microsoft Entra 管理中心

  2. 浏览到“标识”>“监视和运行状况”>“Log Analytics”。

  3. 在“搜索”文本框中,键入查询,然后选择“运行”

KQL 查询示例

从输入数据中随机选取 10 个条目:

  • SigninLogs | take 10

查看条件访问成功的登录:

  • SigninLogs | where ConditionalAccessStatus == "success" | project UserDisplayName, ConditionalAccessStatus

成功计数:

  • SigninLogs | where ConditionalAccessStatus == "success" | project UserDisplayName, ConditionalAccessStatus | count

用户按天累计的成功登录次数:

  • SigninLogs | where ConditionalAccessStatus == "success" | summarize SuccessfulSign-ins = count() by UserDisplayName, bin(TimeGenerated, 1d)

查看用户在特定时间段内执行特定操作的次数:

  • AuditLogs | where TimeGenerated > ago(30d) | where OperationName contains "Add member to role" | summarize count() by OperationName, Identity

根据操作名称透视结果:

  • AuditLogs | where TimeGenerated > ago(30d) | where OperationName contains "Add member to role" | project OperationName, Identity | evaluate pivot(OperationName)

使用内部联接合并审核和登录日志:

  • AuditLogs |where OperationName contains "Add User" |extend UserPrincipalName = tostring(TargetResources[0].userPrincipalName) | |project TimeGenerated, UserPrincipalName |join kind = inner (SigninLogs) on UserPrincipalName |summarize arg_min(TimeGenerated, *) by UserPrincipalName |extend SigninDate = TimeGenerated

按客户端应用类型查看登录数:

  • SigninLogs | summarize count() by ClientAppUsed

按天对登录进行计数:

  • SigninLogs | summarize NumberOfEntries=count() by bin(TimeGenerated, 1d)

随机选取 5 个条目,并在结果中投射出你希望看到的列:

  • SigninLogs | take 5 | project ClientAppUsed, Identity, ConditionalAccessStatus, Status, TimeGenerated

选取以降序排列的前 5 个条目,并投射出你希望看到的列:

  • SigninLogs | take 5 | project ClientAppUsed, Identity, ConditionalAccessStatus, Status, TimeGenerated

通过将这些值合并到其他两列来创建新的列:

  • SigninLogs | limit 10 | extend RiskUser = strcat(RiskDetail, "-", Identity) | project RiskUser, ClientAppUsed

创建自定义工作簿

此过程显示了如何使用快速启动模板创建新的工作簿。

  1. 至少以安全管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到“标识”>“监视和运行状况”>“工作簿”。

  3. 在“快速入门”部分中,选择“空”

    “快速入门”部分中空白工作簿的屏幕截图。

  4. 在“添加”菜单中,选择“添加文本”。

    “添加文本”菜单选项的屏幕截图。

  5. 在文本框中,输入 # Client apps used in the past week,然后选择“完成编辑”

    屏幕截图显示文本和“完成编辑”按钮。

  6. 在文本窗口下方,打开“添加”菜单,然后选择“添加查询”

    “添加查询”菜单选项的屏幕截图。

  7. 在查询文本框中,输入:SigninLogs | where TimeGenerated > ago(7d) | project TimeGenerated, UserDisplayName, ClientAppUsed | summarize count() by ClientAppUsed

  8. 选择“运行查询”。

    屏幕截图显示“运行查询”按钮。

  9. 在工具栏中,从“可视化”菜单中选择“饼图”

    显示“饼图”菜单选项的屏幕截图。

  10. 选择页面顶部的“完成编辑”

  11. 选择“保存”图标以保存你的工作簿

  12. 在出现的对话框中,输入标题,选择资源组,然后选择“应用”

将查询添加到工作簿模板

此过程显示了如何将查询添加到现有工作簿模板。 该示例基于一个查询,该查询显示条件访问成功与失败的分布情况。

  1. 至少以报告读取者身份登录到 Microsoft Entra 管理中心

  2. 浏览到“标识”>“监视和运行状况”>“工作簿”。

  3. 在“条件访问”部分中,选择“条件访问见解和报表”

    屏幕截图显示“条件访问见解”和“报表”选项。

  4. 在工具栏中,选择“编辑”

    屏幕截图显示“编辑”按钮。

  5. 在工具栏中,选择“编辑”按钮旁边的三个点,然后选择“添加”,“添加查询”

    添加工作簿查询

  6. 在查询文本框中,输入:SigninLogs | where TimeGenerated > ago(20d) | where ConditionalAccessPolicies != "[]" | summarize dcount(UserDisplayName) by bin(TimeGenerated, 1d), ConditionalAccessStatus

  7. 选择“运行查询”。

    屏幕截图显示用于运行该查询的“运行查询”按钮。

  8. 在“时间范围”菜单中,选择“在查询中设置”

  9. 在“可视化效果”菜单中,选择“条形图”

  10. 选择高级设置

    时间范围、可视化工具和高级设置选项的屏幕截图。

  11. 在“图表标题”字段中,输入 Conditional Access status over the last 20 days 并选择“完成编辑”

    设置图表标题

条件访问成功和失败图表会显示租户的颜色编码快照。

后续步骤