本教程介绍如何使用 Azure 门户在工作区 数据收集规则(DCR) 中配置示例转换。 Azure Monitor 中的转换允许先筛选或修改传入数据,然后再将其发送到其目标。 工作区转换为尚未使用 DCR 的工作流提供 引入时转换 的支持。
工作区转换 DCR
工作区转换 DCR 是附加到工作区的特殊 DCR。 它允许将引入时 KQL 转换应用到支持的表,即使数据是从诊断设置或其他非 DCR 流发送的。 可以在同一 DCR 中定义多个转换规则(每个表一个)。 了解详细信息。
注释
本教程使用 Azure 门户配置工作区转换。 有关使用 Azure 资源管理器模板和 REST API 的同一教程,请参阅 教程:使用资源管理器模板将工作区数据收集规则中的转换添加到 Azure Monitor。
本教程介绍如何:
- 为 AKS 控制平面表创建引入时转换规则。
- 筛选掉干扰或低值控制平面事件(例如 ListPods、GetConfigMap)。
- 验证筛选和监视引入卷。
先决条件
要完成本教程,需要:
- Log Analytics 工作区,你在其中至少拥有参与者权限。
- 在工作区中创建 DCR 对象的权限 。
- 将、
AKSAuditAdmin
和/或AKSControlPlane
日志发送到AKSAudit
工作区的诊断设置。 - 这些表中的一些现有控制平面日志条目。
- 尚未链接现有工作区 DCR(如果首次通过门户应用转换)
概述
Azure Kubernetes 服务(AKS)发出多种控制平面日志,可帮助监视、审核和排查群集活动问题。 这些日志(例如 AKSAudit
, AKSAuditAdmin
并 AKSControlPlane
捕获各种事件,包括用户作、系统活动和高特权管理作)。
虽然这些日志对于安全性和符合性非常有用,但它们可以快速成为大量且昂贵的存储,尤其是在频繁读取作或自动化脚本的群集中。 其中许多事件(例如 ListPods、GetConfigMap)很少用于查询、仪表板或警报,并且可以安全地筛选出来以减少引入成本。
引入时转换 允许在 Log Analytics 工作区中存储传入日志数据之前有选择地筛选或调整传入日志数据。 这有助于降低干扰、优化存储成本,并仅保留对团队有意义的事件。
为引入启用控制平面日志
在应用引入时转换之前,请确保具有 诊断设置 ,指示 AKS 群集将相关的控制平面日志发送到 Log Analytics 工作区。 此设置允许转换引擎从 AKSAudit、AKSAuditAdmin 和 AKSControlPlane 等表接收和处理数据。
仅当尚未收集这些日志时,才需要执行此步骤。 如果工作区已收到 AKS 控制平面日志,则可以跳到下一部分。
在 Azure 门户中,转到 AKS 群集。
在“ 监视”下,选择“ 诊断设置”。
单击“ + 添加诊断设置”。
输入诊断设置的名称,例如
AKSControlPlaneLogs
。在 “目标详细信息”下,选择:
- 发送到 Log Analytics 工作区
- 选择要在其中配置转换的同一工作区
在 “日志类别”下,选中以下框:
- KubernetesAudit
- KubernetesAuditAdmin
- KubernetesControlPlane
单击“ 保存”。
向表添加转换
在 Azure 门户中,转到 Log Analytics 工作区,然后在左侧菜单中选择 “表 ”。
在列表中找到
AKSAudit
并单击“ 创建转换”。如果这是你的第一个工作区转换,系统会提示你创建新的工作区转换 DCR。 为其命名,然后单击“ 完成 ”和“ 下一步”。
选择 “下一步 ”以查看表中的示例数据。 定义转换时,结果将应用于示例数据。 这样,就可以在将结果应用到实际数据之前对其进行评估。 选择 转换编辑器 以定义转换。
在转换编辑器中:
source | where OperationName !in~ ("ListPods", "GetConfigMap", "GetDeployment")
-
source
表示传入日志数据。 - 该
where
语句会删除常见的低值作并保留其他事件。
可以修改此 KQL 以按其他字段(例如
ResourceGroupName
,Identity
)StatusCode
进行筛选。-
运行预览版,验证行是否按预期删除。
选择 “应用 ”以保存转换,然后选择“ 下一步 ”以查看配置。 选择“ 创建 ”以使用新转换更新 DCR。
验证转换
等待 30 分钟,规则生效。
在 日志中,运行前后的比较:
AKSAudit | summarize count() by OperationName AKSAuditAdmin \| summarize count() by OperationName AKSControlPlane \| summarize count() by EventType
验证卷删除,并且是否仍显示密钥作。
潜在成本
将数据引入工作区和处理转换的 Azure Monitor 费用。 如果规则删除 >传入数据的 50%,则可能会收取 处理费用 。 不过,如果在工作区上启用了 Microsoft Sentinel,则会免除转换处理费用。
Troubleshooting
转换语法错误:将在应用前在向导预览中显示。
IntelliSense 中缺少新列:转换后最多可能需要 24 小时才能更新架构更改。
动态列问题:在对动态字段执行作之前使用
parse_json()
。监视工作区运行状况和引入指标,以确保卷按预期下降。