概述

更新时间:
复制 MD 格式

Elasticsearch 支持通过 Beats 采集器、Elastic Agent(OTel)等多种工具,将服务器日志、容器日志、系统指标、应用监控等数据采集到 Elasticsearch 中进行检索、分析和可视化。根据数据来源和部署环境的不同,可选择最合适的采集方式。

采集方式选择指南

场景

推荐方式

说明

服务器日志文件采集

Filebeat / Elastic Agent

轻量级采集,资源占用低。Elastic Agent 支持 Fleet 集中管理,适合多节点统一管理场景。

系统和服务指标监控

Metricbeat / Elastic Agent

开箱即用的系统和服务指标采集模块,支持 CPU、内存、Nginx、MySQL 等指标数据的采集。

Kubernetes 容器日志

Filebeat Sidecar / Elastic Agent Sidecar

以 Sidecar 模式部署在 Pod 中,采集容器内应用的日志文件。

大规模日志采集

日志采集与加工服务(推荐),请参见日志采集与加工服务

内置消息队列缓冲,免运维且架构简单。也可通过 Filebeat + Kafka + Logstash 自行搭建。

中间件/应用监控

Metricbeat / rsbeat / 专用 Beat

针对 RabbitMQ、Redis 等中间件使用专用采集器。

全链路追踪与 APM

SkyWalking / APM Server

适用于微服务架构下的分布式链路追踪和应用性能管理。

服务可用性监控

Heartbeat / Uptime

主动探测 ICMP、TCP、HTTP 服务的可用性和响应时间。

安全审计

Auditbeat

采集系统审计数据并监控文件完整性变更。

采集工具

Beats 系列采集器

Beats 是 Elastic 官方的轻量级数据采集器家族,各采集器专注于单一用途,资源占用低,部署简单,无需修改应用程序代码。

采集器

用途

Filebeat

采集和转发日志文件数据,支持 Nginx、Apache、MySQL 等多种日志格式。

Metricbeat

采集操作系统和服务的指标数据,如 CPU、内存、磁盘使用率及 Nginx 等服务运行指标。

Auditbeat

采集 Linux 系统审计框架数据,并监控文件完整性变更。

Heartbeat

主动探测服务可用性,支持 ICMP、TCP、HTTP 协议的健康检查。

Elastic Agent(OTel)

Elastic 推出的新一代统一采集器,内置 OpenTelemetry(OTel)兼容模式,能够替代多个 Beats 采集器,支持日志、指标、安全数据等多种数据类型的采集,并可通过 Fleet 进行集中管理。

数据处理工具

Logstash

Logstash 是服务器端数据处理管道,支持对数据进行过滤、清洗、转换等处理。它通常配合 Beats 或 Elastic Agent 等采集器使用,对采集到的数据进行加工后输出到 Elasticsearch,适用于需要复杂数据处理的场景。同时,Logstash 也可通过丰富的输入插件直接对接外部数据源,将数据迁移或持续同步到 Elasticsearch。

日志采集与加工服务

传统日志采集方案通常需要在采集端与 Elasticsearch 之间自建 Kafka + Logstash 多级管道来应对高并发写入。日志采集与加工服务将这些中间组件整合为全托管的服务端写入通道,将四级链路简化为两级,核心优势如下:

对比维度

传统架构

日志采集与加工服务

链路架构

采集端 → Kafka → Logstash → ES,四级串联,组件多

采集端 → 托管服务 → ES,两级链路,配置一个写入 Endpoint 即可接入

运维负担

需自行部署和维护 Kafka、Logstash,管理 Broker 扩缩容、Topic、Partition、Consumer Group 等

全托管,无需购买和维护额外中间件

故障排查

故障点多,需逐一排查各环节状态和配置

链路短,排查范围大幅缩小

写入能力

依赖自行管理的 Kafka 缓冲能力,需手动扩缩容

托管的高并发写入,自动应对流量洪峰,保障数据不丢失

资源成本

需按峰值流量预留 Kafka 和 Logstash 集群资源,低峰期闲置浪费

按需使用,无需预留独立集群资源

兼容性

各组件间存在版本兼容要求,升级需同步调整配置

支持 Filebeat 和 OTel 两种接入协议,兼容现有采集端,全托管免维护

日志采集与加工服务目前支持 Elasticsearch 7.10 和 8.17.0 版本。其中 OpenTelemetry 协议接入仅支持 8.17.0 版本,Filebeat 协议两个版本均支持。使用方式请参见日志采集与加工

主机日志采集

当应用部署在阿里云 ECS、自建 IDC 或其他云厂商的服务器上时,可使用以下方式采集主机上的日志与指标数据。

采集工具

数据源/场景

说明

文档链接

Filebeat

ECS 服务日志

在 ECS 上部署 Filebeat,采集服务器日志文件并写入 Elasticsearch。

通过Filebeats采集ECS服务日志

Filebeat

MySQL 日志

通过自建 Filebeat 采集 MySQL 慢查询日志和错误日志。

通过自建Filebeat收集MySQL日志

Filebeat

Apache 日志

采集 Apache HTTP Server 的访问日志和错误日志。

通过Filebeat采集Apache日志数据

Metricbeat

系统指标与 Nginx 服务数据

采集系统级指标(CPU、内存、磁盘等)和 Nginx 服务运行数据。

通过Metricbeat收集系统数据及Nginx服务数据

Auditbeat

系统审计数据

采集系统审计框架数据,并监控关键文件的完整性变更。

通过Auditbeat收集系统审计数据并监控文件更改

Heartbeat

ICMP 及 HTTP 服务

对 ICMP 和 HTTP 服务进行主动探测,监控服务可用性和响应时间。

通过Heartbeat检测ICMPHTTP服务

Elastic Agent(OTel)

Nginx 日志

通过 Fleet 集中管理,采集 Nginx 访问日志和错误日志。

Elastic Agent采集Nginx日志数据

Elastic Agent(OTel)

NetFlow 日志

采集 NetFlow 网络流量日志数据,实现网络流量的可视化分析。

Elastic Agent采集NetFlow日志数据

Elastic Agent(OTel)

自定义日志

采集自定义格式的日志数据,适用于非标准日志格式的采集场景。

Elastic Agent采集自定义日志数据

Kubernetes 容器日志采集

当应用部署在 Kubernetes 环境(如阿里云 ACK 或原生 Kubernetes 集群)下时,可使用以下方式采集容器化应用的日志数据。

采集工具

数据源/场景

说明

文档链接

Filebeat Sidecar

ACK 集群

在 ACK 集群中以 Sidecar 模式部署 Filebeat,采集 Pod 内的应用日志。支持直写 ES 或通过 Kafka 转发。

使用Filebeat Sidecar采集ACK集群日志至阿里云ES

Filebeat + Kafka + Logstash

ACK 集群

构建 Filebeat → Kafka → Logstash → Elasticsearch 完整日志分析管道,适用于大规模日志场景。

使用Filebeat+Kafka+Logstash+Elasticsearch构建日志分析系统

Elastic Agent Sidecar

ACK 集群

在 ACK 集群中以 Sidecar 模式部署 Elastic Agent,通过 OTel 协议将日志采集至 Elasticsearch。

阿里云ACK(k8s)采集

Elastic Agent Sidecar

原生 Kubernetes 集群

在原生 Kubernetes 集群中以 Sidecar 模式部署 Elastic Agent,通过 OTel 协议采集日志。

Kubernetes Pod采集

Elastic Agent Sidecar + Kafka

ACK 集群

通过两级 OTel Collector 架构(Sidecar → Kafka → 集中式 Collector → ES),适用于高可靠性和应对流量洪峰的场景。

阿里云ACK+Kafka采集

应用日志采集

针对中间件和应用服务产生的日志数据,可使用以下方式进行采集和分析。

采集工具

数据源/场景

说明

文档链接

Filebeat + Metricbeat

RabbitMQ 监控

通过 Filebeat 采集 RabbitMQ 日志,Metricbeat 采集运行指标,在 Kibana 中可视化监控。

使用阿里云ES监控RabbitMQ

Filebeat + Logstash

RocketMQ 客户端日志

采集 RocketMQ 客户端日志,通过 Logstash Grok 过滤器解析后写入 Elasticsearch,用于排查消息收发异常。

查询分析RocketMQ客户端日志

rsbeat

Redis slowlog

通过 rsbeat 实时采集 Redis 慢查询日志,在 Kibana 中分析慢查询分布。

通过Elasticsearchrsbeat实时分析Redis slowlog

服务器数据采集

针对服务器性能监控、全链路追踪、应用性能管理(APM)等场景,可使用以下方式将监控数据采集到 Elasticsearch 中。

工具

数据源/场景

说明

文档链接

Metricbeat

系统指标信息

通过自建 Metricbeat 采集 CPU、内存、文件系统、网络 IO 等系统级指标数据。

通过自建Metricbeat收集系统指标信息

SkyWalking

全链路监控

将 SkyWalking 的追踪数据、指标数据存储在 Elasticsearch 中,实现微服务架构下的全链路监控。

使用SkyWalkingElasticsearch实现全链路监控

Heartbeat / Uptime

Elasticsearch 服务监控

通过 Heartbeat 配合 Kibana Uptime 功能,实时监控 Elasticsearch 服务的可用性和响应时间。

通过Uptime实时监控阿里云Elasticsearch服务

APM Server

应用性能数据

通过自建 APM Server 采集应用性能数据(事务、Span、错误信息等),写入 Elasticsearch 进行分析。

通过自建APM Server将数据采集至阿里云Elasticsearch

Logstash

数据迁移/处理

通过自建 Logstash 将外部数据源的数据经过过滤、转换后迁移或持续同步到 Elasticsearch,支持丰富的输入插件和过滤器。

通过自建Logstash迁移数据到阿里云ES

相关文档

  • 将 MySQL、MongoDB、MaxCompute、Hadoop 等数据源同步到 Elasticsearch,请参见最佳实践概览相关文档。

  • 将自建或第三方 Elasticsearch 数据迁移到阿里云 Elasticsearch,请参见最佳实践概览相关文档。