教程:通过 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 Monitor 代理以收集 Syslog 数据

请参阅使用 Azure Monitor 代理收集 Syslog 事件中的分步说明。

验证 Azure Monitor 代理是否正在运行

在 Microsoft Sentinel 或 Azure Monitor 中,验证 Azure Monitor 代理是否正在 VM 上运行。

  1. 在 Azure 门户中,搜索并打开“Microsoft Sentinel”或“Azure Monitor”。

  2. 如果使用的是 Microsoft Sentinel,请选择相应的工作区。

  3. 在“常规”下,选择“日志”。

  4. 关闭“查询”页,以便显示“新建查询”选项卡。

  5. 运行以下查询,其中需将计算机值替换为你的 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

  1. 为 tcp 514 添加(区域/端口/协议可能因具体场景而异)firewall-cmd --zone=public --add-port=514/tcp --permanent
  2. 为 udp 514 添加(区域/端口/协议可能因具体场景而异)firewall-cmd --zone=public --add-port=514/udp --permanent
  3. 重启防火墙服务以确保新规则生效 systemctl restart firewalld.service

以下两部分介绍如何为 Azure VM 添加入站端口规则并配置内置的 Linux Syslog 守护程序。

允许 VM 上的入站 Syslog 流量

如果要将 Syslog 数据转发到 Azure VM,请使用以下步骤以允许在端口 514 上接收。

  1. 在 Azure 门户中,搜索并选择“虚拟机”。

  2. 选择 VM。

  3. 在“设置”下选择“网络” 。

  4. 选择“添加入站端口规则”。

  5. 输入以下值。

    字段
    目标端口范围 514
    协议 TCP 或 UDP,具体取决于 Syslog 源
    操作 Allow
    名称 AllowSyslogInbound

    使用其余字段的默认值。

  6. 选择 添加

配置 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-ngrsyslog 配置设置为不存储无用的日志。 完整磁盘方案会干扰已安装的 Azure Monitor 代理正常运行。 详细了解 RSyslogSyslog-ng

验证 Syslog 数据是否已转发到 Log Analytics 工作区

将基于 Linux 的设备配置为将日志发送到 VM 后,验证 Azure Monitor 代理是否将 Syslog 数据转发到工作区。

  1. 在 Azure 门户中,搜索并打开“Microsoft Sentinel”或“Azure Monitor”。

  2. 如果使用的是 Microsoft Sentinel,请选择相应的工作区。

  3. 在“常规”下,选择“日志”。

  4. 关闭“查询”页,以便显示“新建查询”选项卡。

  5. 运行以下查询,其中需将计算机值替换为你的 Linux 虚拟机的名称。

    Syslog
    | where Computer == "vm-linux"
    | summarize by HostName
    

清理资源

评估是否需要所创建的 VM 等资源。 让资源保持运行状态会耗费成本。 逐个删除不需要的资源。 或者,删除资源组以删除已创建的所有资源。