教程:通过 Azure Monitor 代理,使用 Microsoft Sentinel 将 Syslog 数据转发到 Log Analytics 工作区
在本教程中,将会配置 Linux 虚拟机 (VM),以便使用 Azure Monitor 代理将 Syslog 数据转发到工作区。 通过执行这些步骤,可以从无法安装代理的基于 Linux 的设备(如防火墙网络设备)收集和监视数据。
将基于 Linux 的设备配置为将数据发送到 Linux VM。 VM 上的 Azure Monitor 代理将 Syslog 数据转发到 Log Analytics 工作区。 然后使用 Microsoft Sentinel 或 Azure Monitor 根据 Log Analytics 工作区中存储的数据监视设备。
在本教程中,你将了解:
- 创建数据收集规则。
- 验证 Azure Monitor 代理是否正在运行。
- 在端口 514 上启用日志接收。
- 验证 Syslog 数据是否已转发到 Log Analytics 工作区。
先决条件
若要完成本教程中的步骤,必须具备以下资源和角色:
具有活动订阅的 Azure 帐户。 创建试用帐户。
具有以下角色的 Azure 帐户,用于部署代理并创建数据收集规则。
内置角色 范围 原因 - 虚拟机参与者
- Azure Connected Machine 资源管理员- 虚拟机
- 规模集
- 已启用 Azure Arc 的服务器部署代理 任何包含 Microsoft.Resources/deployments/* 操作的角色 - 订阅
- 资源组
- 现有数据收集规则部署 Azure 资源管理器模板 监视参与者 - 订阅
- 资源组
- 现有数据收集规则创建或编辑数据收集规则 Log Analytics 工作区。
运行支持 Azure Monitor 代理的操作系统的 Linux 服务器。
生成事件日志数据的基于 Linux 的设备,如防火墙网络设备。
配置 Azure Monitor 代理以收集 Syslog 数据
请参阅使用 Azure Monitor 代理收集 Syslog 事件中的分步说明。
验证 Azure Monitor 代理是否正在运行
在 Microsoft Sentinel 或 Azure Monitor 中,验证 Azure Monitor 代理是否正在 VM 上运行。
在 Azure 门户中,搜索并打开“Microsoft Sentinel”或“Azure Monitor”。
如果使用的是 Microsoft Sentinel,请选择相应的工作区。
在“常规”下,选择“日志”。
关闭“查询”页,以便显示“新建查询”选项卡。
运行以下查询,其中需将计算机值替换为你的 Linux 虚拟机的名称。
Heartbeat | where Computer == "vm-linux" | take 10
在端口 514 上启用日志接收
验证要收集日志数据的 VM 是否允许在端口 514 TCP 或 UDP (具体取决于 Syslog 源) 上进行接收。 然后,在 VM 上配置内置的 Linux Syslog 守护程序,以侦听来自你的设备的 Syslog 消息。 完成这些步骤后,将基于 Linux 的设备配置为将日志发送到 VM。
注意
如果防火墙正在运行,则需要创建一个规则,允许远程系统访问守护程序的 syslog 侦听器:systemctl status firewalld.service
- 为 tcp 514 添加(区域/端口/协议可能因具体场景而异)
firewall-cmd --zone=public --add-port=514/tcp --permanent
- 为 udp 514 添加(区域/端口/协议可能因具体场景而异)
firewall-cmd --zone=public --add-port=514/udp --permanent
- 重启防火墙服务以确保新规则生效
systemctl restart firewalld.service
以下两部分介绍如何为 Azure VM 添加入站端口规则并配置内置的 Linux Syslog 守护程序。
允许 VM 上的入站 Syslog 流量
如果要将 Syslog 数据转发到 Azure VM,请使用以下步骤以允许在端口 514 上接收。
在 Azure 门户中,搜索并选择“虚拟机”。
选择 VM。
在“设置”下选择“网络” 。
选择“添加入站端口规则”。
输入以下值。
字段 值 目标端口范围 514 协议 TCP 或 UDP,具体取决于 Syslog 源 操作 Allow 名称 AllowSyslogInbound 使用其余字段的默认值。
选择 添加 。
配置 Linux Syslog 守护程序
连接到 Linux VM 并配置 Linux Syslog 守护程序。 例如,运行以下命令,以根据网络环境的需要调整命令:
sudo wget -O Forwarder_AMA_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Forwarder_AMA_installer.py&&sudo python3 Forwarder_AMA_installer.py
此脚本可以为 rsyslog.d 和 syslog-ng 进行更改。
注意
为了避免代理在完整磁盘方案中无法正常运行,建议将 syslog-ng
或 rsyslog
配置设置为不存储无用的日志。 完整磁盘方案会干扰已安装的 Azure Monitor 代理正常运行。
详细了解 RSyslog 或 Syslog-ng。
验证 Syslog 数据是否已转发到 Log Analytics 工作区
将基于 Linux 的设备配置为将日志发送到 VM 后,验证 Azure Monitor 代理是否将 Syslog 数据转发到工作区。
在 Azure 门户中,搜索并打开“Microsoft Sentinel”或“Azure Monitor”。
如果使用的是 Microsoft Sentinel,请选择相应的工作区。
在“常规”下,选择“日志”。
关闭“查询”页,以便显示“新建查询”选项卡。
运行以下查询,其中需将计算机值替换为你的 Linux 虚拟机的名称。
Syslog | where Computer == "vm-linux" | summarize by HostName
清理资源
评估是否需要所创建的 VM 等资源。 让资源保持运行状态会耗费成本。 逐个删除不需要的资源。 或者,删除资源组以删除已创建的所有资源。