日志引入是从应用程序、服务器、容器和云服务收集、转换和准备日志数据的过程,以便存储、分析和监视日志数据。 日志捕获错误、警告、使用模式和系统性能等信息。 可靠的日志引入可确保几乎实时地提供作和安全数据,以便进行故障排除和见解。 本文介绍如何将日志从 Fluentd 发送到 Azure 数据资源管理器(Kusto),包括安装、配置和验证步骤。
概述
什么是 Fluentd?
Fluentd 是一种开源数据收集器,可用于统一多个系统的日志收集和路由。 它支持 1,000 多个插件,并提供用于筛选、缓冲和转换数据的灵活选项。 可以在云原生和企业环境中使用 Fluentd 进行集中式日志聚合和转发。
什么是 Azure 数据资源管理器?
Azure 数据资源管理器(ADX)是一项快速、完全托管的分析服务,可针对大量结构化、半结构化和非结构化数据进行实时分析。 ADX 使用 Kusto 查询语言(KQL),通常用于遥测、监视、诊断和交互式数据探索。
先决条件
- 在必须引入日志的节点上安装 Ruby。 若要使用 gem 包管理器安装 fluentd 依赖项,请参阅 Ruby 安装说明
- 访问 Azure 数据资源管理器群集和数据库。
- 有权引入数据的 Azure Active Directory 应用程序。
如何开始使用 Fluentd 和 Azure 数据资源管理器
使用 RubyGems 安装 Fluentd:
gem install fluentd安装 Fluentd Kusto 插件:
gem install fluent-plugin-kusto通过创建包含以下内容的配置文件(例如),
fluent.conf。 将占位符替换为 Azure 和插件值:<match <tag-from-source-logs>> @type kusto endpoint https://<your-cluster>.<region>.kusto.chinacloudapi.cn database_name <your-database> table_name <your-table> logger_path <your-fluentd-log-file-path> # Authentication options auth_type <your-authentication-type> # AAD authentication tenant_id <your-tenant-id> client_id <your-client-id> client_secret <your-client-secret> # Managed identity authentication (optional) managed_identity_client_id <your-managed-identity-client-id> # Workload identity authentication (optional) workload_identity_tenant_id <your-workload-identity-tenant-id> workload_identity_client_id <your-workload-identity-client-id> # Non-buffered mode buffered false delayed false # Buffered mode # buffered true # delayed <true/false> <buffer> @type memory timekey 1m flush_interval 10s </buffer> </match>
有关更多配置和身份验证详细信息,请参阅 Fluentd Kusto 插件文档
为引入准备 Azure Data Explorer:
创建 ADX 群集和数据库。 请参阅 创建 Azure 数据资源管理器群集和数据库。
创建 Azure Active Directory 应用程序并授予将数据引入 ADX 数据库的权限。 请参阅 在 Azure 数据资源管理器中创建Microsoft Entra 应用程序注册。
注释
保存应用密钥和应用程序 ID 以供将来使用。
创建用于日志引入的表。 例如:
.create table LogTable ( tag:string, timestamp:datetime, record:dynamic )使用配置文件运行 Fluentd:
fluentd -c fluent.conf通过以下方式验证日志引入:
检查 Fluentd 日志文件,确认没有错误,并且已成功发送引入请求。
查询 ADX 表 以确保正确引入日志:
LogTable | take 10引入映射:使用 Kusto 中预定义的引入映射将数据默认的 3 列格式转换为所需的架构。 有关详细信息,请参阅 引入映射支持。