将数据从 Splunk 通用转发器引入 Azure 数据资源管理器

重要

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

Splunk 通用转发器Splunk Enterprise 软件的轻型版本,可用于同时从多个源引入数据。 它旨在从各种源收集日志数据和计算机数据并将其转发到中央 Splunk Enterprise 服务器或 Splunk 云部署。 Splunk 通用转发器充当简化数据收集和转发过程的代理,从而使其成为 Splunk 部署中的重要组件。 Azure 数据资源管理器是一项快速且高度可缩放的数据探索服务,适用于日志和遥测数据。

在本文中,你将了解如何使用 Kusto Splunk 通用转发器连接器将数据发送到群集中的表。 你将首选创建表和数据映射,然后指示 Splunk 将数据发送到表中,最后验证结果。

先决条件

创建 Azure 数据资源管理器表

创建一个表来接收来自 Splunk 通用转发器的数据,然后授予服务主体对此表的访问权限。

在以下步骤中,你将创建名为 SplunkUFLogs 且包含单个列(RawText)的表。 这是因为 Splunk 通用转发器会默认以原始文本格式发送数据。 以下命令可以在 Web UI 查询编辑器中运行。

  1. 创建表:

    .create table SplunkUFLogs (RawText: string)
    
  2. 验证表 SplunkUFLogs 是否已创建且为空:

    SplunkUFLogs
    | count
    
  3. 使用先决条件中的服务主体授予使用包含表的数据库的权限。

    .add database YOUR_DATABASE_NAME admins ('aadapp=YOUR_APP_ID;YOUR_TENANT_ID') 'Entra service principal: Splunk UF'
    

配置 Splunk 通用转发器

下载 Splunk 通用转发器时,将会打开向导来配置转发器。

  1. 在向导中,设置接收索引器以指向托管 Kusto Splunk 通用转发器连接器的系统。 输入 127.0.0.1 作为主机名或 IP,输入 9997 作为端口。 将目标索引器留空。

    有关详细信息,请参阅为 Splunk Enterprise 启用接收器

  2. 转到安装 Splunk 通用转发器的文件夹,然后转到 /etc/system/local 文件夹。 创建或修改 inputs.conf 文件,以支持转发器读取日志:

    [default]
    index = default
    disabled = false
    
    [monitor://C:\Program Files\Splunk\var\log\splunk\modinput_eventgen.log*]
    sourcetype = modinput_eventgen
    

    有关详细信息,请参阅《使用 inputs.conf 监视文件和目录》。

  3. 转到安装 Splunk 通用转发器的文件夹,然后转到 /etc/system/local 文件夹。 创建或修改 outputs.conf 文件以确定日志的目标位置,它是托管 Kusto Splunk 通用转发器连接器的系统主机名和端口:

    [tcpout]
    defaultGroup = default-autolb-group
    sendCookedData = false
    
    [tcpout:default-autolb-group]
    server = 127.0.0.1:9997
    
    [tcpout-server://127.0.0.1:9997]
    

    有关详细信息,请参阅《使用 outputs.conf 配置转发

  4. 重启 Splunk 通用转发器。

配置 Kusto Splunk 通用连接器

要配置 Kusto Splunk 通用连接器,以将日志发送到 Azure 数据资源管理器表,请执行以下操作:

  1. GitHub 存储库下载或克隆连接器。

  2. 转到连接器的基本目录:

    cd .\SplunkADXForwarder\
    
  3. 编辑 config.yml 以包含以下属性:

    ingest_url: <ingest_url>
    client_id: <ms_entra_app_client_id>
    client_secret: <ms_entra_app_client_secret>
    authority: <ms_entra_authority>
    database_name: <database_name>
    table_name: <table_name>
    table_mapping_name: <table_mapping_name>
    data_format: csv
    
    字段 说明
    ingest_url Azure 数据资源管理器群集的引入 URL。 可以在 Azure 门户中群集“概述”选项卡中的“数据引入 URI”下找到它。 它应采用格式 https://ingest-<clusterName>.<region>.kusto.chinacloudapi.cn
    client_id 在“先决条件”部分中创建的 Microsoft Entra 应用程序注册的客户端 ID
    client_secret 在“先决条件”部分中创建的 Microsoft Entra 应用程序注册的客户端密码
    authority 保存在“先决条件”部分中创建的 Microsoft Entra 应用程序注册的租户 ID
    database_name Azure 数据资源管理器数据库的名称。
    table_name Azure 数据资源管理器目标表的名称。
    table_mapping_name 表的引入数据映射的名称。 如果没有映射,可以从配置文件中省略此属性。 稍后始终可以将数据分析为各个列。
    data_format 传入数据的预期数据格式。 传入数据采用原始文本格式,因此建议的格式是 csv,默认情况下,这会将原始文本映射到零索引。
  4. 生成 Docker 映像:

    docker build -t splunk-forwarder-listener
    
  5. 运行 Docker 容器:

    docker run -p 9997:9997 splunk-forwarder-listener
    

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

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

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

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

    SplunkUFLogs
    | take 100