首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Elastic-Agent生产模式下的安装配置与使用实践

Elastic-Agent生产模式下的安装配置与使用实践

原创
作者头像
空洞的盒子
发布2025-08-19 13:30:12
发布2025-08-19 13:30:12
3970
举报
文章被收录于专栏:JD的专栏JD的专栏大数据生态

Elastic-Agent介绍

Elastic Agent是一种向主机添加日志、指标和其他类型数据监控的单一统一方式。它还可以保护主机免受安全威胁,从操作系统查询数据,转发来自远程服务或硬件的数据等等。单个代理可以更轻松、更快地在整个基础架构中部署监控。每个代理都有一个单一的策略,可以通过对Agent绑定或更新策略来添加新数据源、安全保护、或服务组件等的集成。

环境版本

组件

版本

Elasticsearch

8.18.4

Elastic-Agent

8.18.4

kibana

8.18.4

Elastic Agent的工作原理

1.部署 Agent
  • 用户在 Kibana Fleet UI 中获取特定于操作系统的安装命令(通常包含 FLEET_URL - Fleet Server 地址、FLEET_ENROLLMENT_TOKEN - 注册令牌、FLEET_CA - 可选的自签名 CA 证书)。
  • 在目标主机上运行该命令(下载、安装、注册 Agent)。
  • Agent 进程启动,使用提供的令牌安全地连接到指定的 Fleet Server 进行注册。

2.策略分配与下发
  • 管理员在 Kibana Fleet UI 中创建或修改 Agent 策略
  • 策略被保存到 Elasticsearch 的 .fleet-policies 索引中。
  • Fleet Server 监控策略变化。当分配给某个 Agent 的策略更新时,Fleet Server 会准备一个新的、包含完整配置细节(集成的具体设置、输入、输出等)的策略包(通常是一个 ZIP 文件),并用其私钥进行数字签名
  • Fleet Server 通过安全连接通知关联的 Agent 有新的策略可用。

3.Agent 获取并应用策略
  • Agent从Fleet Server 下载签名的策略包。
  • Agent验证策略包的签名,确保它确实来自可信的 Fleet Server 且未被篡改。
  • 验证通过后,Agent解压并应用策略。这包括:
    • 启动、停止或重新配置内部运行的数据收集器(基于 Beats 技术的轻量级组件,如filebeat模块、metricbeat 模块等,但这些模块现在由 Agent 统一管理,不再是独立进程)。
    • 配置数据输入(定义从哪里收集数据)。
    • 加载集成的处理逻辑(如 ingest pipeline 配置)。
    • 配置输出目标(Elasticsearch/Logstash 地址、认证等)。
    • 应用资源限制和其他代理设置。

4.数据收集与处理
  • 根据策略配置,Agent内部的收集器开始从指定的来源(日志文件、系统 API、网络接口、应用程序 API 等)收集原始数据
  • 数据进入Agent的处理流水线。在这个流水线中,会根据集成的配置执行操作:
    • 解析: 使用集成的 ingest pipeline 或内置处理器将非结构化/半结构化数据(如日志行)转换成结构化的键值对。
    • 丰富: 添加host.name, host.ip, cloud.instance.id, user.name等元数据。
    • 过滤: 根据条件移除不需要的事件。
    • 聚合/转换:(如适用)进行简单的计算或格式转换。
    • 路由: 根据字段值决定将事件发送到哪个输出/数据流(索引)。
  • 处理后的数据被组织成数据流。Elasticsearch 8.x 推荐使用数据流(Data Streams)来管理时序数据(如指标、日志)。一个数据流背后是多个支持索引,提供自动的生命周期管理(通过 ILM)。

5.数据传输
  • 处理后的数据(事件)被放入一个内存或磁盘队列(提高可靠性,应对网络波动或 Elasticsearch 暂时不可用)。
  • Agent 使用配置的输出设置(通常是 Elasticsearch 的地址、API Key 或用户名密码)通过 HTTPS (TLS) 安全地将数据批量的、高效的发送到目标 Elasticsearch 集群(或 Logstash)。
  • 数据最终写入到 Elasticsearch 中根据数据流命名约定(如 logs-nginx.access-default)自动创建或管理的索引中。

6.状态监控与反馈
  • Agent 定期向 Fleet Server 发送心跳和健康状态报告(包括自身状态、收集器状态、数据吞吐量、错误信息等)。
  • 这些状态信息被存储在 Elasticsearch 的 logs-elastic_agent* 索引中。
  • 管理员可以在Kibana Fleet UI中集中监控所有 Agent 的健康状况、版本、最后通信时间以及数据收集的状态。

7.升级管理

  • 管理员可以在 Fleet UI 中选择Agent的目标版本并启动滚动升级。
  • Fleet Server 协调升级过程,分批通知Agent下载新版本并重启更新。

Elastic Agent服务角色说明

FleetServer

主要负责管理服务器组件。

  • 接收来自 Kibana Fleet UI 的配置(Agent 策略)。
  • 与部署的 Agent 建立安全连接。
  • 将策略安全地下发给 Agent。
  • 接收 Agent 的健康状态和元数据报告。
  • 协调 Agent 的升级。
Fleet Server原理示意图
Fleet Server原理示意图

Agent

Agent是运行在主机/容器上的轻量级代理程序。负责执行策略、收集数据、本地处理、与 Fleet Server 通信、向输出目标发送数据。

agent工作原理与链路示意图
agent工作原理与链路示意图

Kibana Fleet UI

用户界面。用户可以在可视化界面上进行配置 Agent 策略、管理 Fleet Server、监控 Agent 状态、查看集成等操作。

Elasticsearch

存储配置(.fleet-*索引)、Agent 状态(logs-elastic_agent*索引)以及最终接收 Agent 发送的经过处理的数据(各种数据流索引,如metrics-system.cpu-default,logs-nginx.access-default等)。

安装配置实践

注册相关证书

1.使用Elasticsearch的证书工具生成CA证书与证书密钥,两个文件分别为ca.crt与ca.key

代码语言:basic
复制
./bin/elasticsearch-certutil ca --pem

2.基于第一步生成的CA证书,针对Fleet Server生成证书和密钥,两个文件分别为fleet-server.crt和fleet-server.key

代码语言:basic
复制
 ./bin/elasticsearch-certutil cert \
  --name fleet-server \
  --ca-cert /etc/elasticsearch/certs/ca/ca.crt \
  --ca-key /etc/elasticsearch/certs/ca/ca.key \
  --dns 8.8.8.8 \
  --ip IP \
  --pem

Fleet Server与Agent的安装

1.注册并安装Fleet-Server

代码语言:basic
复制
./elastic-agent install --url=https://IP:8220 \
  --fleet-server-es=https://IP:9200 \
  --fleet-server-service-token=your token \
  --fleet-server-policy=fleet-server-policy \
  --certificate-authorities=/etc/elasticsearch/certs/ca/ca.crt \
  --fleet-server-es-ca=/etc/elasticsearch/certs/http_ca.crt \
  --fleet-server-cert=/etc/elasticsearch/certs/fleet-server/fleet-server.crt \
  --fleet-server-cert-key=/etc/elasticsearch/certs/fleet-server/fleet-server.key \
  --fleet-server-port=8220

证书用途说明

证书

用途

ca.crt

用于连接Fleet Server的证书,使用elasticsearch-certutil为Fleet Server生成证书和密钥。

fleet-server.crt

为Fleet Server生成的证书。

fleet-server.key

为Fleet Server生成的密钥。

http_ca.crt

与Elasticsearch进行HTTP通信的证书。

Fleet Server安装成功
Fleet Server安装成功

注:Fleet Server即是Agent的管理者,其自身也具备Agent的功能。8220端口为Fleet Server的默认端口。

2.注册并安装Agent

代码语言:basic
复制
./elastic-agent install --url=https://IP:8220 \
  --fleet-server-es=https://IP:9200 \
  --fleet-server-service-token=your token \
  --fleet-server-policy=your policy id \
  --certificate-authorities=/etc/elasticsearch/certs/ca/ca.crt \
  --fleet-server-es-ca=/etc/elasticsearch/certs/http_ca.crt \
  --fleet-server-cert=/etc/elasticsearch/certs/fleet-server/fleet-server.crt \
  --fleet-server-cert-key=/etc/elasticsearch/certs/fleet-server/fleet-server.key \
  --fleet-server-port=8220
Agent安装成功
Agent安装成功

通过在其他节点进行Agent的安装,并将Agent注册至Fleet Server进行管理。即可在通过kibana在页面完成针对Agent策略的绑定,更新,删除等操作。

参数说明

参数

说明

fleet-server-service-token

在安装并注册Agent时,Fleet Server提供给Agent的访问凭证。

fleet-server-policy

需要绑定的相应策略的id。

策略绑定与Integrations安装

在Agent policy中即可添加Integrations。

根据自身监控需求,选择相应的Integrations进行安装与配置。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Elastic-Agent介绍
  • 环境版本
  • Elastic Agent的工作原理
    • 1.部署 Agent
    • 2.策略分配与下发
    • 3.Agent 获取并应用策略
    • 4.数据收集与处理
    • 5.数据传输
    • 6.状态监控与反馈
  • Elastic Agent服务角色说明
    • FleetServer
    • Agent
    • Kibana Fleet UI
    • Elasticsearch
  • 安装配置实践
    • 注册相关证书
    • Fleet Server与Agent的安装
    • 策略绑定与Integrations安装
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档