将数据从 Splunk 引入 Azure 数据资源管理器

重要

此连接器可用于 Microsoft Fabric 中的实时智能。 使用本文中的说明时,请注意以下例外情况:

Splunk Enterprise 是一个软件平台,可用于同时从多个源引入数据。 Splunk 索引器可处理数据,并默认将其存储在主索引或指定的自定义索引中。 在 Splunk 中搜索使用索引数据来创建指标、仪表板和警报。 Azure 数据资源管理器是一项快速且高度可缩放的数据探索服务,适用于日志和遥测数据。

本文介绍如何使用 Azure 数据资源管理器 Splunk 加载项将数据从 Splunk 发送到群集中的表。 创建表和数据映射,直接 Splunk 将数据发送到表中,然后验证结果。

以下方案最适合将数据引入 Azure 数据资源管理器:

  • 大容量数据:Azure 数据资源管理器旨在高效处理大量数据。 如果组织生成大量需要实时分析的数据,Azure 数据资源管理器是一个合适的选择。
  • 时序数据:Azure 数据资源管理器擅长处理时序数据,例如日志、遥测数据和传感器读数。 它将数据组织在基于时间的分区中,从而轻松执行基于时间的分析和聚合。
  • 实时分析:如果组织需要从流入的数据中获取实时见解,Azure 数据资源管理器的近实时功能可能很有用。

先决条件

创建表和映射对象

获得群集和数据库后,创建一个架构与 Splunk 数据匹配的表。 还可以创建将传入数据转换为目标表架构的映射对象。

在以下示例中,你将创建一个名为 WeatherAlert 表,该表具有四个列:Timestamp、Temperature、Humidity 和 Weather。 此外,您还可以创建一个名为 WeatherAlert_Json_Mapping 的映射,从传入的 JSON 中提取属性(如 path 所示),并将这些属性输出到指定的 column。

在 Web UI 查询编辑器中运行以下命令以创建表和映射:

  1. 创建表:

    .create table WeatherAlert (Timestamp: datetime, Temperature: string, Humidity: string, Weather: string)
    
  2. WeatherAlert验证表是否已创建且为空:

    WeatherAlert
    | count
    
  3. 创建映射对象:

    .create table WeatherAlert ingestion json mapping "WeatherAlert_Json_Mapping"
        ```[{ "column" : "Timestamp", "datatype" : "datetime", "Properties":{"Path":"$.timestamp"}},
            { "column" : "Temperature", "datatype" : "string", "Properties":{"Path":"$.temperature"}},
            { "column" : "Humidity", "datatype" : "string", "Properties":{"Path":"$.humidity"}},
            { "column" : "Weather", "datatype" : "string", "Properties":{"Path":"$.weather_condition"}}
          ]```
    
  4. 使用先决条件中的服务主体来授予使用数据库的权限。

    .add database YOUR_DATABASE_NAME admins  ('aadapp=YOUR_APP_ID;YOUR_TENANT_ID') 'Entra App'
    

安装 Splunk Azure 数据资源管理器加载项

Splunk 加载项与 Azure 数据资源管理器通信,并将数据发送到指定的表。

  1. 下载 Azure 数据资源管理器加载项。

  2. 以管理员身份登录到 Splunk 实例。

  3. 转到“应用”“管理应用”>。

  4. 选择从文件安装应用,然后选择你已下载的Azure 数据资源管理器 加载项文件。

  5. 按照提示完成安装。

  6. 选择“立即重启”。

  7. 通过转到 仪表板>警报操作 并查找 Azure 数据资源管理器 加载项,验证该加载项是否已安装。

    “警报操作”页面的屏幕截图,其中显示了 Azure 数据资源管理器加载项。

在 Splunk 中创建新索引

在 Splunk 中创建一个索引,该索引指定要发送到Azure 数据资源管理器的数据的条件。

  1. 以管理员身份登录到 Splunk 实例。
  2. 转到 设置>索引。
  3. 指定索引的名称,并为要发送到Azure 数据资源管理器的数据配置条件。
  4. 根据需要配置剩余属性,然后保存索引。

配置 Splunk 加载项以将数据发送到 Azure 数据资源管理器

  1. 以管理员身份登录到 Splunk 实例。

  2. 使用之前创建的索引转到仪表板并搜索。 例如,如果创建了名为 WeatherAlerts 的索引,则搜索 index="WeatherAlerts"。

  3. 选择“另存为”>“提醒”。

  4. 根据警报的需要,指定名称、间隔和条件。

    “创建警报”对话框的屏幕截图,其中显示了 Azure 数据资源管理器加载项设置。

  5. 在触发器操作下,选择添加操作>发送到 Microsoft Azure 数据资源管理器。

    “创建警报”对话框的屏幕截图,其中显示了 Azure 数据资源管理器加载项触发器操作。

  6. 配置连接详细信息,如下所示:

    设置 说明
    群集引入 URL 指定 Azure 数据资源管理器群集的引入 URL。 例如 https://ingest-<mycluster>.<myregion>.kusto.chinacloudapi.cn。
    客户端 ID 指定前面创建的 Microsoft Entra 应用程序的客户端 ID。
    客户端机密 指定前面创建的 Microsoft Entra 应用程序的客户端密码。
    租户 ID 指定之前创建的 Microsoft Entra 应用程序的租户 ID。
    Database 指定要将数据发送到的数据库的名称。
    表 指定要将数据发送到的表的名称。
    映射 指定前面创建的映射对象的名称。
    删除额外字段 选择此选项可从发送到群集的数据中删除任何空字段。
    持久模式 选择此选项可在引入期间启用持久模式。 设置为 true 时,引入吞吐量将受到影响。

    “创建警报”对话框的屏幕截图,其中显示了 Azure 数据资源管理器加载项连接设置。

  7. 选择“保存”以保存警报。

  8. 转到“警报”页,验证警报是否显示在警报列表中。

    “创建警报”页面的屏幕截图,其中显示了 Azure 数据资源管理器加载项。

验证数据是否已引入 Azure 数据资源管理器

触发警报后,数据将发送到Azure 数据资源管理器表。 可以通过在 Web UI 查询编辑器中运行查询来验证数据是否已引入。

  1. 运行以下查询以验证数据是否引入到表中:

    WeatherAlert
    | count
    
  2. 运行以下查询以查看数据:

    WeatherAlert
    | take 100
    

    KQL 查询编辑器的屏幕截图,其中显示了从表中获取 100 条记录的查询结果。