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

使用 Azure Monitor 代理从文本文件收集日志并将其引入 Microsoft Sentinel

本文介绍如何使用 Custom Logs via AMA 连接器从 Windows 或 Linux 计算机上安装的网络或安全应用程序中快速筛选和引入文本文件格式的日志

许多应用程序将数据记录到文本文件,而不是标准日志记录服务(如 Windows 事件日志或 Syslog)。 可以使用 Azure Monitor 代理 (AMA) 从 Windows 和 Linux 计算机上的非标准格式的文本文件中收集数据。 AMA 还可以在收集数据时对其进行转换,以将其分析成不同的字段。

有关 Microsoft Sentinel 为其提供了日志收集支持解决方案的应用程序的详细信息,请参阅 Custom Logs via AMA 数据连接器 - 配置从特定应用程序到 Microsoft Sentinel 的数据引入

有关从文本文件引入自定义日志的更多一般信息,请参阅使用 Azure Monitor 代理从文本文件收集日志

重要

先决条件

在开始之前,必须配置资源并分配相应的权限,如本部分所述。

Microsoft Sentinel 先决条件

  • 安装与应用程序匹配的 Microsoft Sentinel 解决方案,并确保有权完成本文中所述的步骤。 可以在 Microsoft Sentinel 的“内容中心”中找到这些解决方案,它们均包含 Custom Logs via AMA 连接器

    有关在内容中心提供了解决方案的应用程序的列表,请参阅每个应用程序的具体说明。 如果没有适用于你的应用程序的解决方案,请安装 Custom Logs via AMA 解决方案

    有关更多信息,请参阅发现和管理 Microsoft Sentinel 的现成内容

  • 创建 Azure 帐户,并使其具有以下 Azure 基于角色的访问控制 (Azure RBAC) 角色:

    内置角色 范围 原因
    - 虚拟机参与者
    - Azure Connected Machine
       资源管理员
  • 虚拟机 (VM)
  • 虚拟机规模集
  • 已启用 Azure Arc 的服务器
  • 部署代理
    包含以下操作的任何角色:
    Microsoft.Resources/deployments/*
  • 订阅
  • 资源组
  • 现有数据收集规则
  • 部署 Azure 资源管理器模板
    监视参与者
  • 订阅
  • 资源组
  • 现有数据收集规则
  • 创建或编辑数据收集规则

日志转发器先决条件

某些自定义应用程序托管在封闭的设备上,而这些应用程序需要将日志发送到外部日志收集器/转发器。 在这种情况下,日志转发器需要满足以下先决条件:

  • 必须具有指定的 Linux VM 作为日志转发器才能收集日志。

  • 如果日志转发器不是 Azure 虚拟机,则必须在其上安装 Azure Arc Connected Machine 代理

  • 必须在 Linux 日志转发器 VM 上安装 Python 2.7 或 3。 使用 python --versionpython3 --version 命令进行检查。 如果使用 Python 3,请确保将其设置为计算机上的默认命令,或者使用“python3”命令而不是“python”命令运行脚本。

  • 日志转发器必须启用 syslog-ngrsyslog 守护程序。

  • 有关日志转发器的空间要求,请参阅 Azure Monitor 代理性能基准。 你还可以查看此博客文章,其中包括可缩放引入的设计

  • 你的日志源、安全设备和装置必须配置为将其日志消息发送到日志转发器的 syslog 守护程序,而不是发送到其本地 syslog 守护程序。

计算机安全性先决条件

根据组织的安全策略配置日志转发器计算机的安全性。 例如,根据企业网络安全策略配置网络,并根据自己的要求更改守护程序中的端口和协议。 为了改进计算机安全配置,请在 Azure 中保护 VM,或查看这些网络安全最佳做法

如果设备通过 TLS 发送日志(例如由于日志转发器位于云中),则需要配置 syslog 守护程序(rsyslogsyslog-ng)以在 TLS 中进行通信。 有关详细信息,请参阅:

配置数据连接器

Custom Logs via AMA 数据连接器的设置过程包括以下步骤:

  1. 在 Log Analytics 中创建目标表(如果在 Defender 门户中操作,则在“高级搜寻”中创建)。

    该表的名称必须以 _CL 结尾,并且只能包含以下两个字段:

    • TimeGenerated(类型为“日期/时间”):创建日志消息时的时间戳
    • RawData(类型为“字符串”):完整的日志消息
      (如果从日志转发器收集日志,而不是直接从托管应用程序的设备收集日志,请将此字段命名为 Message 而不是 RawData。)
  2. 使用以下任一方法安装 Azure Monitor 代理并创建数据收集规则 (DCR):

  3. 如果使用日志转发器收集日志,请将该计算机上的 syslog 守护程序配置为侦听来自其他源的消息,并打开所需的本地端口。 有关详细信息,请参阅配置日志转发器以接受日志

选择相应的选项卡以获取说明。

创建数据收集规则 (DCR)

若要开始,请在 Microsoft Sentinel 中打开“Custom Logs via AMA”数据连接器,然后创建数据收集规则 (DCR)

  1. 对于 Azure 门户中的 Microsoft Sentinel,在“配置”下选择“数据连接器”。
    对于 Defender 门户中的 Microsoft Sentinel,请选择“Microsoft Sentinel”>“配置”>“数据连接器”。

  2. 在“搜索”框中键入“custom”。 在结果中选择“Custom Logs via AMA”连接器

  3. 在详细信息窗格中选择“打开连接器页面”

    库中的 Custom Logs via AMA 连接器的屏幕截图。

  4. 在“配置”区域中,选择“+ 创建数据收集规则”

    显示 Custom Logs via AMA 连接器页面的屏幕截图。

  5. 在“基本信息”选项卡上

    • 键入 DCR 名称。
    • 选择订阅。
    • 选择要定位 DCR 的资源组。

    屏幕截图显示“基本信息”选项卡中的 DCR 详细信息。

  6. 选择“下一步: 资源”。

定义 VM 资源

在“资源”选项卡中,选择要从中收集日志的计算机。 它们要么是安装了你的应用程序的计算机,要么是日志转发器计算机。 如果你要查找的计算机未显示在列表中,则它可能不是安装了 Azure Connected Machine Agent 的 Azure VM。

  1. 使用可用的筛选器或搜索框来查找所需的计算机。 展开列表中的订阅以查看其资源组,展开资源组以查看其 VM。

  2. 选择要从中收集日志的计算机。 将鼠标悬停在 VM 名称上方时,旁边会显示复选框。

    显示设置 DCR 时如何选择资源的屏幕截图。

    如果选择的计算机上尚未安装 Azure Monitor 代理,创建和部署 DCR 时会安装该代理。

  3. 查看更改并选择“下一步: 收集>”

为应用程序配置 DCR

  1. 在“收集”选项卡中,从“选择设备类型(可选)”下拉框中选择你的应用程序或设备类型;如果你的应用程序或设备未列出,请将此设置保留为“自定义新表”

  2. 如果选择了列出的应用程序或设备之一,“表名称”字段中会自动填充正确的表名称。 如果选择了“自定义新表”,请在“表名称”下输入表名称。 该名称必须以 _CL 后缀结尾。

  3. 在“文件模式”字段中,输入要收集的文本日志文件的路径和文件名。 若要查找每种应用程序或设备类型的默认文件名和路径,请参阅每种应用程序类型的具体说明。 不必使用默认文件名或路径,并且可以在文件名中使用通配符。

  4. 在“转换”字段中,如果在步骤 1 中选择了自定义新表,请输入 Kusto 查询以便将所选转换应用于数据

    如果在步骤 1 中选择了列出的应用程序或设备之一,则此字段中会自动填充适当的转换。 请不要编辑其中显示的转换。 根据所选的类型,此值应为下列其中一项:

    • source(默认值 - 无转换)
    • source | project-rename Message=RawData(适用于将日志发送到转发器的设备)
  5. 查看所做的选择,然后选择“下一步: 查看 + 创建”

查看并创建规则

完成所有选项卡后,查看输入的内容并创建数据收集规则。

  1. 在“查看 + 创建”选项卡中选择“创建”。

    屏幕截图显示如何查看 DCR 的配置并创建它。

    连接器会在创建 DCR 时选择的计算机上安装 Azure Monitor 代理。

  2. 检查 Azure 门户或 Microsoft Defender 门户中的通知,查看 DCR 创建和代理安装的时间。

  3. 选择连接器页上的“刷新”以查看列表中显示的 DCR

配置日志转发器以接受日志

如果你要使用日志转发器从设备收集日志,请将日志转发器上的 syslog 守护程序配置为侦听来自其他计算机的消息,并打开所需的本地端口。

  1. 复制以下命令行:

    sudo wget -O Forwarder_AMA_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Forwarder_AMA_installer.py&&sudo python Forwarder_AMA_installer.py
    
  2. 登录到刚刚安装 AMA 的日志转发器计算机。

  3. 粘贴在上一步中复制的命令以启动 installation 脚本。
    该脚本将 rsyslogsyslog-ng 守护程序配置为使用所需的协议,并重启守护程序。 该脚本打开端口 514 以侦听 UDP 和 TCP 协议中的传入消息。 若要更改此设置,请根据计算机上运行的守护程序类型参考 syslog 守护程序配置文件:

    • Rsyslog:/etc/rsyslog.conf
    • Syslog-ng:/etc/syslog-ng/syslog-ng.conf

    如果使用 Python 3,且未将其设置为计算机上的默认命令,请用 python3 替换粘贴的命令中的 python。 请参阅日志转发器先决条件

    注意

    为了避免代理在完整磁盘方案中无法正常运行,建议将 syslog-ngrsyslog 配置设置为不存储无用的日志。 完整磁盘方案会干扰已安装的 AMA 正常运行。 有关详细信息,请参阅 RSyslogSyslog-ng

配置安全设备

有关配置安全应用程序或设备的具体说明,请参阅 Custom Logs via AMA 数据连接器 - 配置从特定应用程序到 Microsoft Sentinel 的数据引入

请联系解决方案提供商以获取详细信息,或信息不适用于你的设备的情况。