阿里云Filebeat支持采集容器服务Kubernetes版ACK(Container Service for Kubernetes)日志,并将采集的日志输出到阿里云Elasticsearch中,进行分析展示。本文介绍如何配置ACK服务日志采集,以及如何查看ACK集群中的采集器资源。
前提条件
- 创建阿里云Elasticsearch实例。
具体操作,请参见创建阿里云Elasticsearch实例。
- 自定义自动创建索引。
为避免索引滚动别名与索引名冲突,建议仅开启
filebeat-*索引名,可配置为
+.*,+filebeat-*,-*。具体操作,请参见
配置YML参数。

注意 在
配置索引生命周期管理时,如果开启了索引
滚动更新,为避免滚动更新后的别名与索引名冲突,需要确保关闭自动创建索引;如果未开启索引
滚动更新,则需要开启自动创建索引。本文建议您设置自定义自动创建索引。
- RAM用户进行相关操作时,需要为该用户授予Beats操作权限和ACK操作权限。
详细信息,请参见创建自定义权限策略和为RAM用户授权。
- 创建ACK集群,并运行Pod服务。本文以Nginx容器为例。
具体操作,请参见创建Kubernetes托管版集群。
注意事项
- 阿里云Filebeat仅支持Docker运行环境,不支持其他运行环境,例如Containerd、安全沙箱等。如果使用的是非Docker环境,会导致在创建Filebeat后,采集器一直处于生效中状态。
- 阿里云Filebeat仅支持安装在专有版ACK和托管版ACK上,不支持安装在其他版本上。
注意 1.22及以上版本的Kubernetes暂时不支持远程构建,请优先使用其他版本的Kubernetes。
操作步骤
- 登录阿里云Elasticsearch控制台。
- 进入Beats数据采集中心。
- 在顶部菜单栏处,选择地域。
- 在左侧导航栏,单击Beats数据采集中心。
- 可选:首次进入Beats数据采集中心页面,需要在服务授权对话框中查看提示信息,无误后单击确认,授权系统创建服务关联角色。
- 在创建采集器区域,将鼠标移至Filebeat上,单击ACK日志。
- 在选择目标ES集群配置向导中,配置采集器信息。

参数 |
说明 |
采集器名称 |
自定义输入采集器的名称。长度为1~30个字符,以大小写字母开头,可以包含字母、数字、下划线(_)或连字符(-)。 |
安装版本 |
目前Filebeat只支持6.8.13版本。
|
采集器Output |
Filebeat采集内容的输出地址。直接关联已经创建的阿里云Elasticsearch实例。访问协议需要与所选Elasticsearch实例保持一致。 |
用户名密码 |
访问阿里云Elasticsearch实例的用户名和密码。用户名默认为elastic,密码在创建实例时设定,如果忘记可重置。重置密码的注意事项和操作步骤,请参见重置实例访问密码。
|
启用Monitoring |
用来监控Filebeat的相关指标。采集器Output选择Elasticsearch,Monitor默认使用和采集器Output相同的阿里云Elasticsearch实例。
|
启用Kibana Dashboard |
用来配置默认的Kibana Dashboard。由于阿里云Kibana配置在专有网络内,因此需要在Kibana配置页面开通Kibana私网访问功能。具体操作,请参见配置Kibana公网或私网访问白名单。
|
- 单击下一步,在设置采集目标配置向导中,配置采集目标信息。
- 在ACK目标集群中,选择需要进行数据采集的目标集群。
注意 请选择与Elasticsearch实例在同一专有网络、Running状态和非边缘托管版(
ACK@Edge概述)的ACK集群。
- 根据提示,单击安装,安装采集依赖的ES-operator。
没有安装按钮,表示已经安装。安装后,安装按钮消失,代表安装成功。
- 单击+创建采集目标,配置采集目标信息(支持多个)。

参数 |
说明 |
采集目标名称 |
创建多个采集目标时,名称不可重复。 |
命名空间 |
选择采集Pod所在的命名空间。如果创建Pod时,未指定命名空间,则默认是default。
|
Pod Label |
添加Pod标签。添加多个标签时,多个标签之间为逻辑与关系。
注意
- 删除Pod标签时,需要至少存在两个标签。
- 只能定义为Pod对应的Label,不能指定为其他Label,否则会创建失败(例如不能指定为Deployment Label)。
|
容器名称 |
指定完整的容器名称。不填时,Filebeat会采集命名空间下符合Pod标签的所有容器。 |
- 单击下一步,在日志采集配置配置向导中,单击+添加日志采集配置,配置日志采集信息(支持多个)。

参数 |
说明 |
日志名称 |
每个采集目标支持定义多个采集配置,每个采集配置对应一个日志名称,不可重复。日志名称可作为索引名的一部分,用于后续输出使用。 |
采集器配置 |
使用Docker容器日志采集通用模板。采集配置集成Autodiscover事件变量,支持Docker input,具体说明如下:
- type:输入类型。采集容器日志时为docker,不同的数据采集支持不同的类型。详细信息,请参见Configure inputs。
- combine_partial:合并多行日志。详细信息,请参见Docker input(combine_partial)。
- containers.ids:Docker容器日志的ID列表。详细信息,请参见Docker input(containers.ids)。
- fileds.k8s_container_name:在采集器的输出信息中,添加k8s_container_name字段,引用变量${data.kubernetes.container.name}。
- fileds.k8s_node_name:在采集器的输出信息中,添加k8s_node_name字段,引用变量${data.kubernetes.node.name}。
- fileds.k8s_pod:在采集器的输出信息中,添加k8s_pod字段,引用变量${data.kubernetes.pod.name}。
- fileds.k8s_pod_namespace:在采集器的输出信息中,添加k8s_pod_namespace字段,引用变量${data.kubernetes.namespace}。
- fields_under_root:设置为true,fileds存储在输出文档的顶级位置。详细信息,请参见Docker input(fields_under_root)。
|
- 可选:单击下一步,在索引存储管理配置向导中,根据需求开启并配置索引存储管理功能。
开启索引存储管理后,单击
+添加索引管理策略,按照以下说明配置策略(支持多个)。

参数 |
说明 |
策略名称 |
定义策略名称,可自定义。 |
选择目标日志 |
选择待关联的目标日志,至少选择一个。一个策略可选择多个目标日志,每个日志仅可被一个日志管理策略选择。 |
资源大小限制 |
索引实际占用磁盘空间达到资源限制时(包括副本),将删除过旧数据,以保证不超过该资源大小限制。 |
生命周期管理 |
是否开启索引生命周期管理。生命周期管理可以实现数据节点冷热分离、过期自动删除数据等。
注意
- 开启滚动更新,Filebeat会将数据写入名称为<日志名称>-<日期>-<序号>的索引下,例如log-web-2021.01.22-000001。
- 不开启滚动更新,Filebeat会将数据写入名称为filebeat-<日志名称>-<日期>的索引下。
|
- 单击启动。
启动后,您可在采集器列表中查看对应的采集器。启动成功后,您还可以完成以下操作。
说明 ACK集群默认在名称为
logging的空间下部署采集器资源,部署完成后,您可以访问对应ACK集群查看已部署的采集器资源,例如索引管理容器、索引生命周期滚动更新策略等,详细信息请参见
查看ACK集群中的采集器资源。
操作 |
说明 |
配置预览 |
可查看采集器Output、ACK目标集群及采集任务名称等信息,不支持修改这些信息。 |
修改详情配置 |
可修改采集目标、日志采集配置和索引存储管理策略。 |
更多 |
可启动、停止、重启、删除采集任务,并支持查看Dashboard和Helm状态。 |
查看ACK集群中的采集器资源
执行以下命令,通过kubectl访问ACK集群,并查看logging空间下的采集器资源,详细信息请参见通过kubectl工具连接集群。
kubectl get pods -n logging

警告 禁止删除或操作logging名称空间下已经部署的资源,否则会影响系统的正常使用。
pod name |
说明 |
示例 |
实例名称-binding-序列号 |
索引管理容器,例如:定时删除老数据。 |
ct-cn-ew8qx563gu4ng4ot6-binding-7e245-1617347400-c**** |
实例名称-policy-序列号 |
索引生命周期滚动更新策略。 |
ct-cn-ew8qx563gu4ng4ot6-policy-696b7-hot-rollover-1g-16173v**** |
实例名称-序列号 |
Filebeat容器。 |
ct-cn-ew8qx563gu4ng4ot6-q**** |
es-operator-序列号 |
创建的ES-operator容器。 |
es-operator-cb63cc9a6302e4e90aeb2f79adf358b19-56fcd754db-b**** |