你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用容器见解收集 Syslog
容器见解提供从 Azure Kubernetes 服务 (AKS) 群集中的 Linux 节点收集 Syslog 事件的功能。 这包括从控制平面组件(如 kubelet)收集日志的功能。 客户也可以使用 Syslog 监视安全和运行状况事件,方法通常是将 syslog 引入到 Microsoft Sentinel 等 SIEM 系统中。
先决条件
- 需要在群集上启用托管标识身份验证。 若要启用,请参阅将 AKS 群集迁移到托管标识身份验证。 注意:启用托管标识将创建一个名为
MSCI-<WorkspaceRegion>-<ClusterName>
的新数据收集规则 (DCR) - 端口 28330 应在主机节点上可用。
- Azure 组件的最低版本
- Azure CLI:Azure CLI 所需的最低版本为 2.45.0(指向发行说明的链接)。 如需升级说明,请参阅如何更新 Azure CLI。
- Azure CLI AKS-Preview 扩展:AKS-Preview Azure CLI 扩展所需的最低版本为 0.5.125(指向发行说明的链接)。 如需升级指南,请参阅如何更新扩展。
- Linux 映像版本:AKS 节点 Linux 映像的最低版本为 2022.11.01。 如需升级帮助,请参阅升级 Azure Kubernetes 服务 (AKS) 节点映像。
如何启用 Syslog
通过 Azure 门户
导航到你的群集。 打开群集的“见解”选项卡。 打开“监视器设置”面板。 单击“编辑收集设置”,然后选中“启用 Syslog 收集”框
使用 Azure CLI 命令
创建新的 AKS 群集时,在 Azure CLI 中使用以下命令启用 syslog 收集。
az aks create -g syslog-rg -n new-cluster --enable-managed-identity --node-count 1 --enable-addons monitoring --enable-msi-auth-for-monitoring --enable-syslog --generate-ssh-key
在 Azure CLI 中使用以下命令在现有 AKS 集群上启用 syslog 收集。
az aks enable-addons -a monitoring --enable-msi-auth-for-monitoring --enable-syslog -g syslog-rg -n existing-cluster
使用 ARM 模板
还可以使用 ARM 模板启用 syslog 收集
下载 GitHub 内容文件中的模板并将其另存为 existingClusterOnboarding.json。
下载 GitHub 内容文件中的参数文件并将其另存为 existingClusterParam.json。
编辑参数文件中的值:
aksResourceId
:使用 AKS 群集的“AKS 概述”页中的值。aksResourceLocation
:使用 AKS 群集的“AKS 概述”页中的值。workspaceResourceId
:使用 Log Analytics 工作区的资源 ID。resourceTagValues
:将为群集的现有容器见解扩展数据收集规则 (DCR) 指定的现有标记值与 DCR 的名称进行匹配。 名称为 MSCI-<clusterName>-<clusterRegion>,此资源是在 AKS 群集资源组中创建的。 如果这是首次加入,则可以设置任意标记值。enableSyslog
:设置为“True”syslogLevels
:由要收集的 syslog 级别组成的数组。 默认收集所有级别。syslogFacilities
:由要收集的 syslog 设施组成的数组。 默认收集所有设施
注意
Syslog 级别和设施自定义目前只通过 ARM 模板提供。
部署模板
使用部署资源管理器模板的任意有效方法,用参数文件部署模板。 有关不同方法的示例,请参阅部署示例模板。
使用 Azure PowerShell 部署
New-AzResourceGroupDeployment -Name OnboardCluster -ResourceGroupName <ResourceGroupName> -TemplateFile .\existingClusterOnboarding.json -TemplateParameterFile .\existingClusterParam.json
配置更改可能需要几分钟才能完成。 完成后,以下示例所示的消息包含此结果:
provisioningState : Succeeded
使用 Azure CLI 进行部署
az login
az account set --subscription "Subscription Name"
az deployment group create --resource-group <ResourceGroupName> --template-file ./existingClusterOnboarding.json --parameters @./existingClusterParam.json
配置更改可能需要几分钟才能完成。 完成后,以下示例所示的消息包含此结果:
provisioningState : Succeeded
如何访问 Syslog 数据
使用内置工作簿进行访问
若要快速获取 syslog 数据的快照,客户可以使用内置 Syslog 工作簿。 可通过两种方式访问内置工作簿。
选项 1 - 容器见解中的“报表”选项卡。 导航到你的群集。 打开群集的“见解”选项卡。 打开“报表”选项卡并查找 Syslog 工作簿。
选项 2 - AKS“导航到你的群集”中的“工作簿”选项卡。 打开群集的“工作簿”选项卡,并查找 Syslog 工作簿。
使用 Grafana 仪表板进行访问
客户可以使用 Grafana 的 Syslog 仪表板来大致了解其 Syslog 数据。 对于创建新的 Azure 托管 Grafana 实例的客户,此仪表板将默认可用。 具有现有实例或运行自己的实例的客户可以从 Grafana 市场导入 Syslog 仪表板。
注意
你需要对包含 Azure 托管 Grafana 实例的订阅具有“监视读取者”角色才能从容器见解访问 syslog。
使用日志查询进行访问
Syslog 数据存储在 Log Analytics 工作区上的 Syslog 表中。 可以在 Log Analytics 中创建自己的日志查询来分析此数据或使用任何预生成的查询。
可通过“Monitor”菜单中的“日志”菜单打开 Log Analytics 来访问所有群集的 Syslog 数据,也可通过 AKS 群集的菜单打开它,以便仅访问该群集的 Syslog 数据。
示例查询
下表提供了检索 Syslog 记录的不同日志查询示例。
查询 | 说明 |
---|---|
Syslog |
所有 Syslog |
Syslog | where SeverityLevel == "error" |
严重级别为“错误”的所有 Syslog 记录 |
Syslog | summarize AggregatedValue = count() by Computer |
按计算机计算的 Syslog 记录数目 |
Syslog | summarize AggregatedValue = count() by Facility |
按设施计算的 Syslog 记录数目 |
Syslog | where ProcessName == "kubelet" |
kubelet 进程中的所有 Syslog 记录 |
Syslog | where ProcessName == "kubelet" and SeverityLevel == "error" |
kubelet 进程中的 Syslog 记录以及错误 |
编辑 Syslog 收集设置
若要修改 Syslog 收集配置,请修改启用时创建的数据收集规则 (DCR)。
在 Azure 门户的“Monitor”菜单中,选择“数据收集规则”。
选择 DCR,然后选择“查看数据源”。 选择 Linux Syslog 数据源以查看 Syslog 集合详细信息。
注意
启用 syslog 时,会自动创建 DCR。 DCR 遵循命名约定 MSCI-<WorkspaceRegion>-<ClusterName>
。
为要收集的每个设施选择最低日志级别。
后续步骤
设置后,客户可以开始将 Syslog 数据发送到所选的工具
了解详细信息
在此处共享此功能的反馈:https://forms.office.com/r/BBvCjjDLTS