用于创建 Microsoft Sentinel 自定义连接器的资源

Microsoft Sentinel 提供各种适用于 Azure 服务和外部解决方案的内置连接器,还支持从某些来源引入数据,无需使用专用连接器。

如果你无法使用任何可用的现有解决方案将数据源连接至 Microsoft Sentinel,请考虑创建自己的数据源连接器。

如需支持的连接器完整列表,请参阅 Microsoft Sentinel:连接器总览(CEF、Syslog、直接、代理、自定义等)博客文章。

自定义连接器方法对比

下表对本文介绍的每种创建自定义连接器的方法的基本详细信息进行对比。 如需每种方法的更多详细信息,请选择表中的链接。

方法说明 功能 无服务器 复杂性
无代码连接器平台 (CCP)
最适合技术水平较低的用户使用配置文件而不是通过高级开发来创建 SaaS 连接器。
支持所有通过代码提供的功能。 低;简单、无代码的开发
Log Analytics 代理
最适合从本地和 IaaS 源收集文件
仅限文件收集
Logstash
最适合用于本地和 IaaS 源、任何有可用插件的源,以及已熟悉 Logstash 的组织
可用的插件以及自定义插件,功能可提供极大的灵活性。 否;需要 VM 或 VM 群集才能运行 低;支持许多使用插件的方案
逻辑应用程序
高成本;避免大量数据
最适合用于低数据量的云源
无代码编程可实现有限的灵活性,不支持实现算法。

没有任何可用操作已支持你的需求时,创建自定义操作可能会增加复杂性。
低;简单、无代码的开发
PowerShell
最适合用于建立原型和定期文件上传
直接支持文件收集。

可以使用 PowerShell 来收集更多的源,但需要编码脚本以及将脚本配置为服务。
Log Analytics API
最适合用于实现集成的 ISV,以及用于独特的收集需求
支持所有通过代码提供的功能。 取决于实现
Azure Functions
最适合用于大数据量的云源,以及用于独特的收集需求
支持所有通过代码提供的功能。 高;需要编程知识

提示

有关将逻辑应用和 Azure Functions 用于同一连接器的比较,请参阅:

与无代码连接器平台连接

无代码连接器平台 (CCP) 提供了可供客户和合作伙伴使用的配置文件,然后部署到自己的工作区,或作为 Microsoft Sentinel 解决方案库的解决方案。

使用 CCP 创建的连接器完全是 SaaS,对服务安装没有任何要求,还包括运行状况监视和 Microsoft Sentinel 的全面支持。

有关详细信息,请参阅为 Microsoft Sentinel 创建无代码连接器

使用 Log Analytics 代理进行连接

如果数据源在文件中交付事件,我们建议你使用 Azure Monitor Log Analytics 代理创建自定义连接器。

使用 Logstash 进行连接

如果熟悉 Logstash,你可将 Logstash 与适用于 Microsoft Sentinel 的 Logstash 输出插件结合使用,以创建自定义连接器。

利用 Microsoft Sentinel Logstash 输出插件,你可使用任何 Logstash 输入和筛选插件,并将 Microsoft Sentinel 配置为 Logstash 管道的输出。 Logstash 有一个大型插件库,其中的插件支持从各种源(例如,事件中心、Apache Kafka、文件、数据库和云服务)进行输入。 使用筛选插件可以分析事件、筛选不必要的事件、混淆值,等等。

如需使用 Logstash 作为自定义连接器的示例,请参阅:

如需实用 Logstash 插件的示例,请参阅:

提示

利用 Logstash,你还可以使用群集进行大规模数据收集。 有关详细信息,请参阅大规模使用负载平衡的 Logstash VM

使用逻辑应用进行连接

使用 Azure 逻辑应用创建适用于 Microsoft Sentinel 的无服务器自定义连接器。

注意

使用逻辑应用创建无服务器的连接器可能很方便,但数据量较大时,将逻辑应用用于连接器的成本可能很高。

建议仅将此方法用于低数据量的数据源,或者用于扩充数据上传。

  1. 使用以下触发器之一启动逻辑应用:

    触发器 说明
    重复性任务 例如,编制逻辑应用的计划,定期从特定文件、数据库或外部 API 检索数据。
    有关详细信息,请参阅在 Azure 逻辑应用中创建、计划和运行重复性任务与工作流
    按需触发 按需运行逻辑应用,以进行手动数据收集和测试。
    有关详细信息,请参阅使用 HTTPS 终结点调用、触发或嵌套逻辑应用
    HTTP/S 终结点 建议用于流式处理,并在源系统可以启动数据传输的情况下使用。
    有关详细信息,请参阅通过 HTTP 或 HTTPS 调用服务终结点
  2. 使用任何可读取信息的逻辑应用连接器获取事件。 例如:

    提示

    用于 REST API、SQL Server 和文件系统的自定义连接器还支持从本地数据源检索数据。 有关详细信息,请参阅安装本地数据网关文档。

  3. 准备要检索的信息。

    例如,使用分析 JSON 操作可以访问 JSON 内容中的属性,因此在为逻辑应用指定输入时,能够从动态内容列表中选择这些属性。

    有关详细信息,请参阅在 Azure 逻辑应用中执行数据操作

  4. 将数据写入 Log Analytics。

    有关详细信息,请参阅Azure Log Analytics 数据收集器文档。

有关如何使用逻辑应用为 Microsoft Sentinel 创建自定义连接器的示例,请参阅:

使用 PowerShell 连接

利用 Upload-AzMonitorLog PowerShell 脚本,可以使用 PowerShell 通过命令行将事件或上下文信息流式传输到 Microsoft Sentinel。 这种流式处理可在数据源与 Microsoft Sentinel 之间有效创建自定义连接器。

例如,以下脚本将 CSV 文件上传到 Microsoft Sentinel:

Import-Csv .\testcsv.csv
| .\Upload-AzMonitorLog.ps1
-WorkspaceId '69f7ec3e-cae3-458d-b4ea-6975385-6e426'
-WorkspaceKey $WSKey
-LogTypeName 'MyNewCSV'
-AddComputerName
-AdditionalDataTaggingName "MyAdditionalField"
-AdditionalDataTaggingValue "Foo"

Upload-AzMonitorLog PowerShell 脚本使用下列参数:

参数 说明
WorkspaceId 要在其中存储数据的 Microsoft Sentinel 工作区的 ID。 查找工作区 ID 和密钥
WorkspaceKey 要在其中存储数据的 Microsoft Sentinel 工作区的主密钥或辅助密钥。 查找工作区 ID 和密钥
LogTypeName 要在其中存储数据的自定义日志表的名称。 后缀 _CL 会自动添加到表名末尾。
AddComputerName 存在此参数时,脚本会将当前计算机名称添加到每条日志记录中名为 Computer 的字段。
TaggedAzureResourceId 存在此参数时,脚本会将所有已上传的日志记录与指定的 Azure 资源关联。

此项关联使上传的日志记录支持资源上下文查询,并遵循以资源为中心、基于角色的访问控制。
AdditionalDataTaggingName 存在此参数时,脚本会在每条日志记录中添加另一个字段,该字段具有配置的名称,并包含你为 AdditionalDataTaggingValue 参数配置的值。

在这种情况下,AdditionalDataTaggingValue 不能为空。
AdditionalDataTaggingValue 存在此参数时,脚本会在每条日志记录中添加另一个字段,该字段包含配置的值,并具有你为 AdditionalDataTaggingName 参数配置的字段名。

如果 AdditionalDataTaggingName 参数为空,但配置了值,则默认字段名为 DataTagging。

查找工作区 ID 和密钥

在 Microsoft Sentinel 中查找 WorkspaceID 和 WorkspaceKey 参数的详细信息 :

  1. 在 Microsoft Sentinel 中,从左侧选择“设置”,然后选择“工作区设置”选项卡 。

  2. 在“开始使用 Log Analytics”>“1 连接数据源”下,选择“Windows 和 Linux 代理管理”。

  3. 在“Windows 服务器”选项卡上,找到你的工作区 ID、主密钥和辅助密钥。

使用 Log Analytics API 进行连接

通过使用 Log Analytics 数据收集器 API 直接调用 RESTful 终结点,可以将事件流式传输到 Microsoft Sentinel。

直接调用 RESTful 终结点需要较多的编程,但更加灵活。

有关详细信息,请参阅 Log Analytics 数据收集器 API,尤其是下列示例:

使用 Azure Functions 进行连接

将 Azure Functions 与 RESTful API 和各种编码语言(例如,PowerShell)结合使用,以创建无服务器的自定义连接器。

如需这种方法的示例,请参阅:

后续步骤

利用下列任何过程,使用已引入到 Microsoft Sentinel 的数据来保护环境:

此外,了解一个创建自定义连接器以监视 Zoom 的示例:使用 Microsoft Sentinel 监视 Zoom