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

重要

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

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

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

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

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

先决条件

创建表和映射对象

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

在以下示例中,你将创建一个名为 WeatherAlert 表,该表具有四个列:TimestampTemperatureHumidityWeather。 你还将创建一个名为 WeatherAlert_Json_Mapping 的新映射。该映射根据 path 的指定从传入的 json 中提取属性,然后将这些属性输出到指定的 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. 在“触发器操作”下,选择“添加操作”>“发送到 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 条记录的查询结果。