你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Syslog 从基于 Linux 的源收集数据

注意

本文引用了 CentOS,这是一个接近生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑你的使用和规划。 有关详细信息,请参阅 CentOS 生命周期结束指导

注意

有关美国政府云中的功能可用性的信息,请参阅美国政府客户的云功能可用性中的 Microsoft Sentinel 表。

Syslog 是普遍适用于 Linux 的事件日志记录协议。 可以使用内置于 Linux 设备的 Syslog 守护程序来收集指定类型的本地事件,并让它使用适用于 Linux 的 Log Analytics 代理(以前称为 OMS 代理)将这些事件发送到 Microsoft Sentinel。

本文介绍如何使用 Syslog 将数据源连接到 Microsoft Sentinel。 有关此方法支持的连接器的详细信息,请参阅数据连接器参考

了解如何使用 Azure Monitor 代理收集 Syslog,包括如何配置 Syslog 和创建 DCR。

重要

Log Analytics 代理将于 2024 年 8 月 31 日停用。 如果要在 Microsoft Sentinel 部署中使用 Log Analytics 代理,我们建议你开始计划到 AMA 的迁移。 有关详细信息,请参阅 Microsoft Sentinel 的 AMA 迁移

若要了解如何使用 Azure Monitor 代理部署 Syslog 日志,请查看用于将 CEF 和 Syslog 格式的日志流式传输到 Microsoft Sentinel 的选项

体系结构

如果在 VM 或设备上安装了 Log Analytics 代理,则安装脚本会将本地 Syslog 守护程序配置为将消息转发到 UDP 端口 25224 上的代理。 接收到消息后,代理通过 HTTPS 将它们发送到 Log Analytics 工作区,在该工作区中,它们被引入到“Microsoft Sentinel”>“日志”中的 Syslog 表。

有关详细信息,请参阅 Azure Monitor 中的 Syslog 数据源

此示意图显示从 syslog 源到 Microsoft Sentinel 工作区的数据流,其中 Log Analytics 代理直接安装在数据源设备上。

对于一些不允许在本地安装 Log Analytics 代理的设备类型,可以改为在基于 Linux 的专用日志转发器上安装代理。 必须将发起设备配置为将 Syslog 事件发送到此转发器上的 Syslog 守护程序,而不是本地守护程序。 转发器上的 Syslog 守护程序通过 UDP 将事件发送到 Log Analytics 代理。 如果此 Linux 转发器需要收集大量 Syslog 事件,则其 Syslog 守护程序会通过 TCP 向代理发送事件。 在任一情况下,代理随后会将这些事件从那里发送到 Microsoft Sentinel 中的 Log Analytics 工作区。

此示意图显示从 syslog 源到 Microsoft Sentinel 工作区的数据流,其中 Log Analytics 代理安装在单独的日志转发设备上。

注意

  • 如果你的设备支持通过 Syslog 的通用事件格式 (CEF),则会收集更完整的数据集,并在收集时对数据进行分析。 你应选择此选项,并按照从设备将 CEF 格式的日志获取到 Microsoft Sentinel 中的说明进行操作。

  • Log Analytics 支持由 rsyslog 或 syslog-ng 守护程序(其中 rsyslog 为默认守护程序)发送的消息集合。 不支持将 Red Hat Enterprise Linux (RHEL) 版本 5、CentOS 和 Oracle Linux 版本上的默认 syslog 守护程序 (sysklog) 用于 syslog 事件收集。 要从这些发行版的此版本中收集 syslog 数据,应安装并配置 rsyslog 守护程序以替换 sysklog。

配置 Syslog 集合有三个步骤:

  • 配置 Linux 设备。 这是指将安装 Log Analytics 代理的设备,无论它是产生事件的同一设备还是转发事件的日志收集器。

  • 对应于将事件发送到代理的 Syslog 守护程序的位置,配置应用程序的日志记录设置。

  • 配置 Log Analytics 代理本身。 此操作在 Microsoft Sentinel 中完成,并且配置被发送到所有已安装的代理。

先决条件

在开始之前,请从 Microsoft Sentinel 中的内容中心安装适用于 Syslog 的解决方案。 有关更多信息,请参阅发现和管理 Microsoft Sentinel 的现成内容

配置 Linux 计算机或设备

  1. 在 Microsoft Sentinel 导航菜单中,选择“数据连接器”。

  2. 从连接器库中,选择“Syslog”,然后选择“打开连接器”页面 。

    如果设备类型列在 Microsoft Sentinel 数据连接器库中,请选择设备的连接器,而不是通用 Syslog 连接器。 如果设备类型有额外或特殊说明,你将在设备的连接器页上看到这些说明以及自定义内容,如工作簿和分析规则模板。

  3. 安装 Linux 代理。 在“选择代理安装位置:”下

    计算机类型 Instructions
    对于 Azure Linux VM 1. 展开“在 Azure Linux 虚拟机上安装代理”。

    2.选择“下载并安装用于 Azure Linux 虚拟机的代理 >”链接。

    3. 在“虚拟机”边栏选项卡中,选择要安装代理的虚拟机,然后选择“连接” 。 对于要连接的每个 VM,重复此步骤。
    对于任何其他 Linux 计算机 1. 展开“在非 Azure Linux 计算机上安装代理”

    2.选择“下载并安装用于非 Azure Linux 虚拟机的代理 >”链接。

    3. 在“代理管理”边栏选项卡中,选择“Linux 服务器”选项卡,然后复制用于“下载和载入适用于 Linux 的代理”的命令并在 Linux 计算机上运行 。

    如果要保留 Linux 代理安装文件的本地副本,请选择“下载和载入代理”命令上方的“下载 Linux 代理”链接。

    注意

    请确保根据组织的安全策略配置这些设备的安全性设置。 例如,可以配置网络设置使其符合组织的网络安全策略,并更改守护程序中的端口和协议,使其符合安全要求。

使用同一台计算机转发纯 Syslog 和 CEF 消息

也可以使用现有的 CEF 日志转发器计算机从普通 Syslog 源收集和转发日志。 但是,必须执行以下步骤以避免以这两种格式将事件发送到 Microsoft Sentinel,因为这将导致事件重复。

已根据 CEF 源设置了数据收集,并已配置 Log Analytics 代理:

  1. 在以 CEF 格式发送日志的每台计算机上,必须编辑 Syslog 配置文件,以删除用于发送 CEF 消息的设施。 这样一来,在 CEF 中发送的设施也不会在 Syslog 中发送。 有关如何执行此操作的详细说明,请参阅在 Linux 代理上配置 Syslog

  2. 必须在这些计算机上运行以下命令,才能在 Microsoft Sentinel 中通过 Syslog 配置禁用代理的同步。 这可确保不会覆盖你在上一步中所做的配置更改。

    sudo -u omsagent python /opt/microsoft/omsconfig/Scripts/OMS_MetaConfigHelper.py --disable
    

配置设备的日志记录设置

许多设备类型都有自己的数据连接器,它们显示在“数据连接器”库中。 其中一些连接器需要特殊的额外说明,以便在 Microsoft Sentinel 中正确设置日志收集。 这些说明可能包含基于 Kusto 函数的分析程序的实现。

在库中列出的所有连接器都将在门户中各自的连接器页面以及 Microsoft Sentinel 数据连接器参考页面的相应部分中显示任何特定的说明。

如果 Microsoft Sentinel 中数据连接器页面上的说明指示 Kusto 函数部署为高级安全信息模型 (ASIM) 分析程序,请确保将 ASIM 分析程序部署到工作区。

使用数据连接器页中的链接部署分析程序,或按照 Microsoft Sentinel Github 存储库中的说明进行操作。

有关详细信息,请参阅高级安全信息模型 (ASIM) 分析程序

配置 Log Analytics 代理

  1. 在 Syslog 连接器边栏选项卡底部,选择“打开工作区代理配置 >”链接。

  2. 在“旧版代理程序管理”页中,添加连接器要收集的设施。 选择“添加设施”,然后从设施下拉列表中选择。

    • 添加 syslog 设备包括在其日志标头中的设施。

    • 如果要将异常 SSH 登录检测与收集的数据一起使用,请添加 auth 和 authpriv。 有关其他详细信息,请参阅以下部分

  3. 如果已添加要监视的所有设施,请清除不想收集的任何严重级别的复选框。 默认情况下,它们都被勾选。

  4. 选择“应用”。

  5. 在 VM 或设备上,请确保正在发送指定的设施。

查找数据

  1. 要在“日志”中查询 syslog 日志数据,请在查询窗口中键入 Syslog

    (使用 Syslog 机制的一些连接器可能会将数据存储在除 Syslog 外的其他表中。请参阅 Microsoft Sentinel 数据连接器参考页中的连接器部分。)

  2. 可以使用在 Azure Monitor 日志查询中使用函数中所述的查询参数来分析 Syslog 消息。 然后,可以将查询另存为新的 Log Analytics 函数,并将其用作新的数据类型。

为异常 SSH 登录检测配置 Syslog 连接器

重要

异常 SSH 登录检测目前为预览版。 请参阅 Microsoft Azure 预览版的补充使用条款,了解适用于 beta 版、预览版或其他尚未正式发布的 Azure 功能的其他法律条款。

Microsoft Sentinel 可以将机器学习 (ML) 应用到 syslog 数据,以确定安全外壳 (SSH) 登录活动的异常情况。 方案包括:

  • 不可能旅行 – 当两个成功登录事件发生在两个位置,而这两个位置无法在两个登录事件的时间范围内到达时。

  • 意外位置 – 成功登录事件发生的位置可疑。 例如,最近未出现此位置。

此检测需要 Syslog 数据连接器的特定配置:

  1. 对于上面的配置 Log Analytics 代理下的步骤 2,请确保选择 auth 和 authpriv 作为要监视的设施,并选择所有严重性。

  2. 留出足够的时间来收集 syslog 信息。 然后,导航到“Microsoft Sentinel - 日志”,复制并粘贴以下查询:

    Syslog
    | where Facility in ("authpriv","auth")
    | extend c = extract( "Accepted\\s(publickey|password|keyboard-interactive/pam)\\sfor ([^\\s]+)",1,SyslogMessage)
    | where isnotempty(c)
    | count 
    

    根据需要更改“时间范围”,并选择“运行”。

    如果生成的计数为零,请确认连接器的配置,并且被监视的计算机在你为查询指定的时间段内有成功的登录活动。

    如果生成的计数大于零,则 syslog 数据适用于异常 SSH 登录检测。 可以通过“分析”>“规则模板”>“(预览版)异常 SSH 登录检测”来启用此检测。

后续步骤

在本文中,你已了解如何将 Syslog 本地设备连接到 Microsoft Sentinel。 若要详细了解 Microsoft Sentinel,请参阅以下文章: