教程:配置 Log Analytics 工作区
本教程介绍如何执行下列操作:
- 为审核和登录日志配置 Log Analytics 工作区
- 使用 Kusto 查询语言 (KQL) 运行查询
- 使用快速启动模板创建自定义工作簿
- 将查询添加到现有工作簿模板
先决条件
若要使用 Log Analytics 分析活动日志,需要以下角色和要求:
Log Analytics 工作区和对该工作区的访问权限
Azure Monitor 的相应角色:
- 监视查阅者
- Log Analytics 读者
- 监视参与者
- Log Analytics 参与者
Microsoft Entra ID 的相应角色:
- 报告读取者
- 安全读取者
- 全局读取者
- 安全管理员
通过以下文章熟悉相关知识:
配置 Log Analytics
提示
本文中的步骤可能因开始使用的门户而略有不同。
此过程概述了如何为审核和登录日志配置 Log Analytics 工作区。 若要配置 Log Analytics 工作区,需要创建工作区,然后配置诊断设置。
创建工作区
至少以安全管理员和 Log Analytics 参与者的身份登录到 Azure 门户。
浏览到“Log Analytics 工作区”。
选择创建。
在“创建 Log Analytics 工作区”页上,执行以下步骤:
选择订阅。
选一个择资源组。
为工作区命名。
选择区域。
选择“查看 + 创建” 。
选择“创建”并等待部署。 可能需要刷新页面才能看到新的工作区。
配置诊断设置
若要配置诊断设置,需要切换到 Microsoft Entra 管理中心,将标识日志信息发送到新工作区。
至少以安全管理员身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“监视和运行状况”>“诊断设置”。
选择“添加诊断设置”。
在“诊断设置”页上,执行以下步骤:
为该诊断设置提供一个名称。
在“日志”下,选择“AuditLogs”和“SigninLogs”。
在“目标详细信息”下,选择“发送到 Log Analytics”,然后选择新的 Log Analytics 工作区 。
选择“保存”。
现在可以使用 Log Analytics 中的 Kusto 查询语言 (KQL) 对日志进行查询。 可能需要等待约 15 分钟才会填充日志。
在 Log Analytics 中运行查询
此过程显示了如何使用 Kusto 查询语言 (KQL) 运行查询。
运行查询
至少以报告读取者身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“监视和运行状况”>“Log Analytics”。
在“搜索”文本框中,键入查询,然后选择“运行”。
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
创建自定义工作簿
此过程显示了如何使用快速启动模板创建新的工作簿。
至少以安全管理员身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“监视和运行状况”>“工作簿”。
在“快速入门”部分中,选择“空”。
在“添加”菜单中,选择“添加文本”。
在文本框中,输入
# Client apps used in the past week
,然后选择“完成编辑”。在文本窗口下方,打开“添加”菜单,然后选择“添加查询”。
在查询文本框中,输入:
SigninLogs | where TimeGenerated > ago(7d) | project TimeGenerated, UserDisplayName, ClientAppUsed | summarize count() by ClientAppUsed
选择“运行查询”。
在工具栏中,从“可视化”菜单中选择“饼图”。
选择页面顶部的“完成编辑”
选择“保存”图标以保存你的工作簿。
在出现的对话框中,输入标题,选择资源组,然后选择“应用”。
将查询添加到工作簿模板
此过程显示了如何将查询添加到现有工作簿模板。 该示例基于一个查询,该查询显示条件访问成功与失败的分布情况。
至少以报告读取者身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“监视和运行状况”>“工作簿”。
在“条件访问”部分中,选择“条件访问见解和报表”。
在工具栏中,选择“编辑”。
在工具栏中,选择“编辑”按钮旁边的三个点,然后选择“添加”,“添加查询”。
在查询文本框中,输入:
SigninLogs | where TimeGenerated > ago(20d) | where ConditionalAccessPolicies != "[]" | summarize dcount(UserDisplayName) by bin(TimeGenerated, 1d), ConditionalAccessStatus
选择“运行查询”。
在“时间范围”菜单中,选择“在查询中设置”。
在“可视化效果”菜单中,选择“条形图”。
选择高级设置。
在“图表标题”字段中,输入
Conditional Access status over the last 20 days
并选择“完成编辑”。
条件访问成功和失败图表会显示租户的颜色编码快照。