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。 |
|
|
Filebeat |
MySQL 日志 |
通过自建 Filebeat 采集 MySQL 慢查询日志和错误日志。 |
|
|
Filebeat |
Apache 日志 |
采集 Apache HTTP Server 的访问日志和错误日志。 |
|
|
Metricbeat |
系统指标与 Nginx 服务数据 |
采集系统级指标(CPU、内存、磁盘等)和 Nginx 服务运行数据。 |
|
|
Auditbeat |
系统审计数据 |
采集系统审计框架数据,并监控关键文件的完整性变更。 |
|
|
Heartbeat |
ICMP 及 HTTP 服务 |
对 ICMP 和 HTTP 服务进行主动探测,监控服务可用性和响应时间。 |
|
|
Elastic Agent(OTel) |
Nginx 日志 |
通过 Fleet 集中管理,采集 Nginx 访问日志和错误日志。 |
|
|
Elastic Agent(OTel) |
NetFlow 日志 |
采集 NetFlow 网络流量日志数据,实现网络流量的可视化分析。 |
|
|
Elastic Agent(OTel) |
自定义日志 |
采集自定义格式的日志数据,适用于非标准日志格式的采集场景。 |
Kubernetes 容器日志采集
当应用部署在 Kubernetes 环境(如阿里云 ACK 或原生 Kubernetes 集群)下时,可使用以下方式采集容器化应用的日志数据。
|
采集工具 |
数据源/场景 |
说明 |
文档链接 |
|
Filebeat Sidecar |
ACK 集群 |
在 ACK 集群中以 Sidecar 模式部署 Filebeat,采集 Pod 内的应用日志。支持直写 ES 或通过 Kafka 转发。 |
|
|
Filebeat + Kafka + Logstash |
ACK 集群 |
构建 Filebeat → Kafka → Logstash → Elasticsearch 完整日志分析管道,适用于大规模日志场景。 |
|
|
Elastic Agent Sidecar |
ACK 集群 |
在 ACK 集群中以 Sidecar 模式部署 Elastic Agent,通过 OTel 协议将日志采集至 Elasticsearch。 |
|
|
Elastic Agent Sidecar |
原生 Kubernetes 集群 |
在原生 Kubernetes 集群中以 Sidecar 模式部署 Elastic Agent,通过 OTel 协议采集日志。 |
|
|
Elastic Agent Sidecar + Kafka |
ACK 集群 |
通过两级 OTel Collector 架构(Sidecar → Kafka → 集中式 Collector → ES),适用于高可靠性和应对流量洪峰的场景。 |
应用日志采集
针对中间件和应用服务产生的日志数据,可使用以下方式进行采集和分析。
|
采集工具 |
数据源/场景 |
说明 |
文档链接 |
|
Filebeat + Metricbeat |
RabbitMQ 监控 |
通过 Filebeat 采集 RabbitMQ 日志,Metricbeat 采集运行指标,在 Kibana 中可视化监控。 |
|
|
Filebeat + Logstash |
RocketMQ 客户端日志 |
采集 RocketMQ 客户端日志,通过 Logstash Grok 过滤器解析后写入 Elasticsearch,用于排查消息收发异常。 |
|
|
rsbeat |
Redis slowlog |
通过 rsbeat 实时采集 Redis 慢查询日志,在 Kibana 中分析慢查询分布。 |
服务器数据采集
针对服务器性能监控、全链路追踪、应用性能管理(APM)等场景,可使用以下方式将监控数据采集到 Elasticsearch 中。
|
工具 |
数据源/场景 |
说明 |
文档链接 |
|
Metricbeat |
系统指标信息 |
通过自建 Metricbeat 采集 CPU、内存、文件系统、网络 IO 等系统级指标数据。 |
|
|
SkyWalking |
全链路监控 |
将 SkyWalking 的追踪数据、指标数据存储在 Elasticsearch 中,实现微服务架构下的全链路监控。 |
|
|
Heartbeat / Uptime |
Elasticsearch 服务监控 |
通过 Heartbeat 配合 Kibana Uptime 功能,实时监控 Elasticsearch 服务的可用性和响应时间。 |
|
|
APM Server |
应用性能数据 |
通过自建 APM Server 采集应用性能数据(事务、Span、错误信息等),写入 Elasticsearch 进行分析。 |
|
|
Logstash |
数据迁移/处理 |
通过自建 Logstash 将外部数据源的数据经过过滤、转换后迁移或持续同步到 Elasticsearch,支持丰富的输入插件和过滤器。 |