在本教程中,将会配置 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 事件中的分步说明。
在 Microsoft Sentinel 或 Azure Monitor 中,验证 Azure Monitor 代理是否正在 VM 上运行。
在 Azure 门户中,搜索并打开“Microsoft Sentinel”或“Azure Monitor”。
如果使用的是 Microsoft Sentinel,请选择相应的工作区。
在“常规”下,选择“日志”。
关闭“查询”页,以便显示“新建查询”选项卡。
运行以下查询,其中需将计算机值替换为你的 Linux 虚拟机的名称。
Heartbeat | where Computer == "vm-linux" | take 10
验证要收集日志数据的 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 守护程序。
如果要将 Syslog 数据转发到 Azure VM,请使用以下步骤以允许在端口 514 上接收。
在 Azure 门户中,搜索并选择“虚拟机”。
选择 VM。
在“设置”下选择“网络” 。
选择“添加入站端口规则”。
输入以下值。
字段 值 目标端口范围 514 协议 TCP 或 UDP,具体取决于 Syslog 源 操作 Allow 名称 AllowSyslogInbound 使用其余字段的默认值。
选择 添加 。
连接到 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。
将基于 Linux 的设备配置为将日志发送到 VM 后,验证 Azure Monitor 代理是否将 Syslog 数据转发到工作区。
在 Azure 门户中,搜索并打开“Microsoft Sentinel”或“Azure Monitor”。
如果使用的是 Microsoft Sentinel,请选择相应的工作区。
在“常规”下,选择“日志”。
关闭“查询”页,以便显示“新建查询”选项卡。
运行以下查询,其中需将计算机值替换为你的 Linux 虚拟机的名称。
Syslog | where Computer == "vm-linux" | summarize by HostName
评估是否需要所创建的 VM 等资源。 让资源保持运行状态会耗费成本。 逐个删除不需要的资源。 或者,删除资源组以删除已创建的所有资源。