使用 Fluent Bit 将数据引入到 Azure 数据资源管理器
Fluent Bit 是一种开源代理,用于从各种源收集日志、指标和跟踪。 使用它可以在将事件数据发送到存储之前对事件数据进行筛选、修改和聚合。 Azure 数据资源管理器是一项快速且高度可缩放的数据探索服务,适用于日志和遥测数据。 本文指导你完成使用 Fluent Bit 将数据发送到 Azure 数据资源管理器的过程。
本文将指导如何进行以下操作:
有关数据连接器的完整列表,请参阅数据连接器概述。
先决条件
- Fluent Bit。
- Azure 数据资源管理器群集和数据库。 创建群集和数据库。
创建 Azure 数据资源管理器表来存储日志
Fluent Bit 以 JSON 格式将日志随以下三个属性转发到 Azure 数据资源管理器:log
(dynamic)、tag
(string) 和 timestamp
(datetime)。
可以创建一个表,其中包含上述每个属性的列。 或者,如果你有结构化日志,则可以创建一个表,其中包含映射到自定义列的日志属性。 若要了解详细信息,请选择相关选项卡。
若要为来自 Fluent Bit 的传入日志创建表,请执行以下操作:
选择要在其中创建表的数据库。
运行以下 .create table 命令:
.create table FluentBitLogs (log:dynamic, tag:string, timestamp:datetime)
Azure 数据资源管理器会自动将传入的 JSON 属性映射到正确的列中。
注册有权引入数据的 Azure AD 应用
对于需要在未创建用户的情况下访问 Azure 数据资源管理器的应用程序,将使用 Azure Active Directory (Azure AD) 应用程序身份验证。 若要使用 Fluent Bit 引入数据,需要创建并注册一个 Azure AD 服务主体,然后授权此主体将数据引入到 Azure 数据资源管理器表。
保存应用程序(客户端)ID、目录(租户)ID 以及客户端密码值,以便在后面的步骤中使用。
运行以下命令(请将
<MyDatabase>
替换为数据库的名称):.add database MyDatabase ingestors ('aadapp=<Application (client) ID>;<Directory (tenant) ID>' 'Fluent Bit application)
此命令授予应用程序将数据引入到表的权限。 有关详细信息,请参阅基于角色的访问控制。
配置 Fluent Bit 以将日志发送到表
若要配置 Fluent Bit 以将日志发送到 Azure 数据资源管理器表,请创建经典模式或 YAML 模式配置文件,其中包含以下输出属性:
字段 | 说明 |
---|---|
Name | azure_kusto |
匹配 | 一种模式,用于针对传入记录的标记进行匹配。 它区分大小写,并且支持星号 (* ) 字符作为通配符。 |
Tenant_Id | 注册有权引入数据的 Azure AD 应用中的目录(租户)ID。 |
Client_Id | 注册有权引入数据的 Azure AD 应用中的应用程序(客户端)ID。 |
Client_Secret | 注册有权引入数据的 Azure AD 应用中的客户端密码值。 |
Ingestion_Endpoint | 使用在 Azure 门户中的群集概述下找到的“数据引入 URI”。 |
Database_Name | 包含日志表的数据库的名称。 |
Table_Name | 创建 Azure 数据资源管理器表中的表的名称。 |
Ingestion_Mapping_Reference | 创建 Azure 数据资源管理器表中的引入映射的名称。 如果未创建引入映射,请从配置文件中删除该属性。 |
若要查看示例配置文件,请选择相关选项卡:
[SERVICE]
Daemon Off
Flush 1
Log_Level trace
HTTP_Server On
HTTP_Listen 0.0.0.0
HTTP_Port 2020
Health_Check On
[INPUT]
Name tail
Path /var/log/containers/*.log
Tag kube.*
Mem_Buf_Limit 1MB
Skip_Long_Lines On
Refresh_Interval 10
[OUTPUT]
Name azure_kusto
Match *
Tenant_Id azure-tenant-id
Client_Id azure-client-id
Client_Secret azure-client-secret
Ingestion_Endpoint azure-data-explorer-ingestion-endpoint
Database_Name azure-data-explorer-database-name
Table_Name azure-data-explorer-table-name
验证数据是否已引入 Azure 数据资源管理器
配置完成后,日志应到达 Azure 数据资源管理器表。
若要验证是否已引入日志,请运行以下查询:
FluentBitLogs | count
若要查看日志数据示例,请运行以下查询:
FluentBitLogs | take 100