将数据从 Splunk 通用转发器引入 Azure 数据资源管理器
重要
此连接器可用于 Microsoft Fabric 中的实时智能。 使用本文中的说明时,请注意以下例外情况:
- 如果需要,请按照创建 KQL 数据库中的说明创建数据库。
- 如果需要,请按照创建空表中的说明创建表。
- 使用复制 URI 中的说明获取查询或引入 URI。
- 运行 KQL 查询集中的查询。
Splunk 通用转发器是 Splunk Enterprise 软件的轻型版本,可用于同时从多个源引入数据。 它旨在从各种源收集日志数据和计算机数据并将其转发到中央 Splunk Enterprise 服务器或 Splunk 云部署。 Splunk 通用转发器充当简化数据收集和转发过程的代理,从而使其成为 Splunk 部署中的重要组件。 Azure 数据资源管理器是一项快速且高度可缩放的数据探索服务,适用于日志和遥测数据。
在本文中,你将了解如何使用 Kusto Splunk 通用转发器连接器将数据发送到群集中的表。 你将首选创建表和数据映射,然后指示 Splunk 将数据发送到表中,最后验证结果。
先决条件
- 在生成日志的同一台计算机上下载的Splunk 通用转发器。
- Azure 数据资源管理器群集和数据库。 创建群集和数据库。
- 安装在运行 Kusto Splunk 通用转发器连接器的系统上的 Docker。
- Microsoft Entra 服务主体。 创建 Microsoft Entra 服务主体
创建 Azure 数据资源管理器表
创建一个表来接收来自 Splunk 通用转发器的数据,然后授予服务主体对此表的访问权限。
在以下步骤中,你将创建名为 SplunkUFLogs
且包含单个列(RawText
)的表。 这是因为 Splunk 通用转发器会默认以原始文本格式发送数据。 以下命令可以在 Web UI 查询编辑器中运行。
创建表:
.create table SplunkUFLogs (RawText: string)
验证表
SplunkUFLogs
是否已创建且为空:SplunkUFLogs | count
使用先决条件中的服务主体授予使用包含表的数据库的权限。
.add database YOUR_DATABASE_NAME admins ('aadapp=YOUR_APP_ID;YOUR_TENANT_ID') 'Entra service principal: Splunk UF'
配置 Splunk 通用转发器
下载 Splunk 通用转发器时,将会打开向导来配置转发器。
在向导中,设置接收索引器以指向托管 Kusto Splunk 通用转发器连接器的系统。 输入
127.0.0.1
作为主机名或 IP,输入9997
作为端口。 将目标索引器留空。有关详细信息,请参阅为 Splunk Enterprise 启用接收器。
转到安装 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 监视文件和目录》。
转到安装 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 配置转发。
重启 Splunk 通用转发器。
配置 Kusto Splunk 通用连接器
要配置 Kusto Splunk 通用连接器,以将日志发送到 Azure 数据资源管理器表,请执行以下操作:
从 GitHub 存储库下载或克隆连接器。
转到连接器的基本目录:
cd .\SplunkADXForwarder\
编辑 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
,默认情况下,这会将原始文本映射到零索引。生成 Docker 映像:
docker build -t splunk-forwarder-listener
运行 Docker 容器:
docker run -p 9997:9997 splunk-forwarder-listener
验证数据是否已引入 Azure 数据资源管理器
Docker 运行后,数据将发送到 Azure 数据资源管理器表。 可以通过在 Web UI 查询编辑器中运行查询来验证数据是否已引入。
运行以下查询以验证数据是否引入到表中:
SplunkUFLogs | count
运行以下查询以查看数据:
SplunkUFLogs | take 100