全部产品
Search
文档中心

检索分析服务Elasticsearch版:Elastic Agent采集自定义日志数据

更新时间:Aug 21, 2026

Fleet是Elasticsearch中的一个功能强大的集中式管理解决方案,提供了一种简单的方法来管理Elasticsearch中的多个节点和服务。Fleet主要分为Fleet Server和Fleet Agent两部分,Fleet Agent是一个轻量级的数据采集代理,负责在源端收集数据。Fleet Server是Fleet的中心节点,负责管理和监控所有Fleet Agent,并将数据传输到Elasticsearch。

名词解释

名词

说明

Fleet

Elasticsearch中的一个功能强大的集中式管理解决方案,集中管理Agent服务。

Fleet Agent

轻量级数据采集代理,负责采集源端数据。

Fleet Agent可以在多个操作系统上运行,并且可以收集多种类型的数据。

Fleet Server

负责将Agent采集的源端数据传输到Elasticsearch。

准备环境

  • 创建阿里云Elasticsearch实例,具体操作请参见创建阿里云Elasticsearch实例。本文以Elasticsearch 8.5版本为例。

    说明

    阿里云Elasticsearch实例仅支持7.16和8.5版本。

  • 创建ECS实例,且该ECS实例与Elasticsearch实例处于同一专有网络下。具体操作请参见自定义购买实例。

    说明

    ECS实例作为源端服务器,Elastic Agent会采集ECS实例上的数据。

创建代理策略并添加集成

步骤一:创建代理策略

  1. 登录Kibana控制台。具体操作,请参见登录Kibana控制台。

  2. 单击image.png > Management > Fleet。

  3. 在Fleet页面,单击代理策略页签。

  4. 单击创建代理策略,在创建代理策略控制面板中配置代理策略。

    1. 输入代理策略名称custom-log。

    2. 取消选中收集系统日志和指标。

    3. 单击高级选项,在代理监测区域,取消选择中收集代理日志和收集代理指标。

      说明

      本场景仅采集Custom Logs日志,因此取消选中收集系统日志和指标和代理的自身数据。

  5. 配置完成后,在页面右下角单击创建代理策略。

步骤二:创建Fleet Server集成

  1. 在Fleet页面的代理策略页签,单击新创建的代理策略custom-log。

  2. 在集成页签中,单击添加集成。

  3. 在浏览集成页签,在搜索框中搜索Fleet Server,并单击Fleet Server。

  4. 安装Fleet Server集成。

    1. 在Fleet Server页面,单击设置页签。

    2. 单击安装Fleet Server资产,在弹出的对话框中单击安装Fleet Server。

      说明

      安装集成后,设置页签会显示集成的版本。

  5. 在页面右上角,单击添加Fleet Server。

  6. 在添加Fleet Server集成页面,输入集成名称,选择代理策略为custom-log。

  7. 在页面右下角,单击保存并继续,在弹出的对话框中单击稍后添加Elastic代理。

步骤三:创建Custom Logs集成

  1. 在代理策略custom-log的集成页签中,单击添加集成。

  2. 在浏览集成页签,在搜索框中搜索Custom Logs,并单击Custom Logs。

  3. 安装Custom Logs集成。

    1. 在Custom Logs页面,单击设置页签。

    2. 单击安装Custom Logs资产,在弹出的对话框中单击安装Custom Logs。

      说明

      安装集成后,设置页签会显示集成的版本。

  4. 在页面的右上角,单击添加Custom Logs。

  5. 在添加Custom Logs集成页面,配置集成。

    1. 在集成配置区域,输入集成名称。

    2. 在Custom log file区域,输入被采集日志在ECS中的路径(Log file path),例如/var/log/a2.log。

    3. 单击高级选项,自定义数据集名称(Dataset name)。

      说明
      • 数据集名称将决定数据在Elasticsearch中的索引名称。定义新的数据集名称,数据将被发送到新索引,可以提高处理数据的灵活性和可管理性。

      • 数据集名称需要符合ES索引名称要求,即只能包含英文、下划线和数字。

      在 Log file path 中输入日志文件路径,例如 /var/log/a2.log。在 Dataset name 中输入数据集名称,例如 generic。

    4. 在要将此集成添加到什么位置区域,在Existing hosts页签下,选择代理策略为custom-log。

  6. 配置完成后,在页面右下角单击保存并继续,在弹出的对话框中单击稍后添加Elastic代理。

添加Agent

步骤一:设置Fleet服务器主机

  1. 登录Kibana控制台。具体操作,请参见登录Kibana控制台。

  2. 单击image.png > Management > Fleet。

  3. 在Fleet页面,单击设置页签,配置Fleet。

    1. 在Fleet服务器主机区域,单击编辑主机。

    2. 在Fleet服务器主机控制面板中,输入源端的私网地址,格式为https://<私网IP>:<端口>,例如https://172.16.*.***:8220。

      说明

      本文私网IP为ECS实例的主私网IP。更多配置信息,请参见Fleet Server hosts。

    3. 在输出区域,在操作列单击image.png。

    4. 在编辑输出控制面板中,输入Elasticsearch实例的私网地址,格式为http://<私网地址>:<端口>,例如http://es-cn-uqm3auln80001****.elasticsearch.aliyuncs.com:9200。

    5. 单击保存并应用设置,在弹出的对话框中单击保存并部署。

步骤二:添加Elastic Agent

为Fleet Server添加一个Elastic Agent。

说明

如果您需要采集多个服务器中的数据,可以多次执行以下步骤。在一个Fleet Server中添加多个代理,每个代理采集各自服务器中的数据,数据由Fleet Server统一管理。

  1. 在Fleet页面,单击代理策略页签。

  2. 在代理策略custom-log的操作列,选择。

  3. 在添加代理控制面板,在为Fleet服务器选择策略区域,默认选择代理策略为custom-log。

  4. 在为安全选择部署模式区域,默认选中快速启动。

  5. 在添加您的Fleet服务器主机区域,单击右侧的添加主机。

  6. 在生成服务令牌区域,单击生成服务令牌。

  7. 在将Fleet服务器安装到集中式主机区域,复制自动生成的代码块,并将代码在ECS实例中执行。

    curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.5.1-linux-x86_64.tar.gz
    tar xzvf elastic-agent-8.5.1-linux-x86_64.tar.gz
    cd elastic-agent-8.5.1-linux-x86_64
    sudo ./elastic-agent install \
        --fleet-server-es=http://es-cn-xxx.elasticsearch.aliyuncs.com:9200 \
        --fleet-server-service-token=AAEAAWVsYXN0aWMvZmxlZXQtc2Vydmxxx \
        --fleet-server-policy=e4b6f6b0-1ef9-11ee-xxx

    代码执行完毕后,如果看到Successfully 字样,表明ECS服务器上成功安装并启动Elastic Agent。

查看数据

本文以ECS日志路径为/var/log/a2.log,数据集名称为generic为例,介绍如何查看日志数据。

说明

需要确保指定的ECS日志路径中有数据。

  1. 通过 索引管理查看数据流名称。

    1. 单击image.png > Management > Fleet。

    2. 在左侧菜单栏,单击数据 > 索引管理。

    3. 在 索引管理页面,单击 数据流页签,找到带有数据集名称generic,例如logs-generic-default。

  2. 通过Kibana控制台查看数据流对应的索引名称。

    1. 单击image.png > Management > Fleet。

    2. 执行如下命令,获取数据流对应的索引名称。

      GET _data_Stream/logs-generic-default

      index_name的值即数据流对应的索引名称。

  3. 执行如下命令,查看索引中的日志数据。

    GET <index_name>/_search
    {
      "query":{
        "match":{
          "log.file.path":"/var/log/a2.log"
        }
      }
    }