概述
当前,主流的日志采集产品除了SLS的ilogtail,还有Elastic Agent、Fluentd、Telegraf、Sysdig、Logkit、Loggie、Flume等。详细的对比结果见下表:
备注:
- 集群监控:表示工具可以查看管理采集端的运行状态、采集速度等数据
- 集群管理:表示工具可以对管理采集端的采集配置、运行参数等进行添加、修改、删除
ilogtail | Elastic | Logkit | Sysdig | Fluentd | Telegraf | Loggie | Flume | |
产品类型 | 企业版 | 企业版 | 开源版 | 企业版 | 开源版 | 开源版 | 开源版 | 开源版 |
单机部署 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
集群管理 | 控制台(阿里云)、API、K8s Operator | 控制台(Fleet Server) | Logkit 助手 | 不支持 | 容器下有三方开源的Fluent Operator和Logging Operator,主机下不支持 | 不支持 | Kubernetes下可通过CRD配置,主机下不支持 | 不支持 |
集群监控 | 阿里云控制台 | Fleet UI | Logkit助手 | Sysdig Monitor | 通过第三方Prometheus,或REST API | InfluxData Platform | 通过第三方Prometheus | 使用额外的exporter |
可以看到提供完整集群管理能力的,主要是SLS、Elastic、和Logkit,下面会针对Elastic、Logkit做进一步介绍。
Elastic Agent - Fleet 介绍
Fleet 是一个用于管理 Elastic Agent 配置的组件,由两部分组成:Fleet UI 和 Fleet Server。Fleet UI 是一个带有用户界面的 Kibana 应用程序,供用户载入和配置 agent 策略(注: agent 策略类似于SLS的ilogtail采集配置)、管理载入数据以及管理整个环境中的Elastic Agent。
Fleet Server 是 Elastic Stack 的一个后端组件,作为 Elastic Agent 的一部分部署在主机(服务器)上,Elastic Agent连接到该组件,以执行检索 agent 策略、更新和管理等命令。一个 Fleet Server 进程可以支持多个 Elastic Agent 连接,并作为控制平台,用作更新 agent 策略、收集状态信息以及协调多个 Elastic Agent 操作。Fleet Server 需要连接到支持 Elasticsearch 的集群才能运行。
主要功能
Fleet 允许用户集中管理大量Elastic Agent,是管理与 Elastic Agents 通信的基础设施组件。
- 用户可以在 Fleet UI 页面上查看所有Elastic Agent的状态,看到Elastic Agent的在线状态、健康状态、上次注册时间,还可以查看Elastic Agent的二进制文件和 agent 策略的版本。
- 若用户更改了 agent 策略,所有的Elastic Agent都会在下次注册的时候收到更新。
- Fleet Server 会自动为每个Elastic Agent生成 Elasticsearch API 密钥,对正在运行的集群具有最低权限,更好地保护Elastic Agent。
- Fleet Server提供了更新Elastic Agent