本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
阿里云Filebeat支持采集容器服务Kubernetes版ACK(Container Service for Kubernetes)日志,并将采集的日志输出到阿里云Elasticsearch中,进行分析展示。本文介绍如何配置ACK服务日志采集,以及如何查看ACK集群中的采集器资源。
前提条件
创建阿里云Elasticsearch实例。
具体操作,请参见创建阿里云Elasticsearch实例。
自定义自动创建索引。
为避免索引滚动别名与索引名冲突,建议仅开启filebeat-*索引名,可配置为+.*,+filebeat-*,-*。具体操作,请参见配置YML参数。
重要在配置索引生命周期管理时,如果开启了索引滚动更新,为避免滚动更新后的别名与索引名冲突,需要确保关闭自动创建索引;如果未开启索引滚动更新,则需要开启自动创建索引。本文建议您设置自定义自动创建索引。
RAM用户进行相关操作时,需要为该用户授予Beats操作权限和ACK操作权限。
创建ACK集群,并运行Pod服务。本文以Nginx容器为例。
具体操作,请参见创建Kubernetes托管版集群。
注意事项
阿里云Filebeat仅支持Docker运行环境,不支持其他运行环境,例如Containerd、安全沙箱等。如果使用的是非Docker环境,会导致在创建Filebeat后,采集器一直处于生效中状态。
阿里云Filebeat仅支持安装在专有版ACK和托管版ACK上,不支持安装在其他版本上。
重要仅1.18和1.20版本的Kubernetes支持远程构建。
操作步骤
- 登录阿里云Elasticsearch控制台。
- 进入Beats数据采集中心。
- 在顶部菜单栏处,选择地域。
- 在左侧导航栏,单击Beats数据采集中心。
- 可选:首次进入Beats数据采集中心页面,需要在服务授权对话框中查看提示信息,无误后单击确认,授权系统创建服务关联角色。说明 Beats采集不同数据源中的数据时,依赖于服务关联角色以及角色规则。使用过程中请勿删除服务关联角色,否则会影响Beats使用。详细信息,请参见Elasticsearch服务关联角色。
在创建采集器区域,将鼠标移至Filebeat上,单击ACK日志。
在选择目标ES集群配置向导中,配置采集器信息。
参数
说明
采集器名称
自定义输入采集器的名称。长度为1~30个字符,以大小写字母开头,可以包含字母、数字、下划线(_)或连字符(-)。
安装版本
目前Filebeat只支持6.8.13版本。
采集器Output
Filebeat采集内容的输出地址。直接关联已经创建的阿里云Elasticsearch实例。访问协议需要与所选Elasticsearch实例保持一致。
重要不支持选择8.x版本的Elasticsearch实例。
用户名密码
访问阿里云Elasticsearch实例的用户名和密码。用户名默认为elastic,密码在创建实例时设定,如果忘记可重置。重置密码的注意事项和操作步骤,请参见重置实例访问密码。
启用Monitoring
用来监控Filebeat的相关指标。采集器Output选择Elasticsearch,Monitor默认使用和采集器Output相同的阿里云Elasticsearch实例。
启用Kibana Dashboard
用来配置默认的Kibana Dashboard。由于阿里云Kibana配置在专有网络内,因此需要在Kibana配置页面开通Kibana私网访问功能。具体操作,请参见配置Kibana公网或私网访问白名单。
单击下一步,在设置采集目标配置向导中,配置采集目标信息。
在ACK目标集群中,选择需要进行数据采集的目标集群。
重要请选择与Elasticsearch实例在同一专有网络、Running状态和非边缘托管版(什么是容器服务 Edge 版)的ACK集群。
根据提示,单击安装,安装采集依赖的ES-operator。
没有安装按钮,表示已经安装。安装后,安装按钮消失,代表安装成功。
单击+创建采集目标,配置采集目标信息(支持多个)。
参数
说明
采集目标名称
创建多个采集目标时,名称不可重复。
命名空间
选择采集Pod所在的命名空间。如果创建Pod时,未指定命名空间,则默认是default。
Pod Label
添加Pod标签。添加多个标签时,多个标签之间为逻辑与关系。
重要删除Pod标签时,需要至少存在两个标签。
只能定义为Pod对应的Label,不能指定为其他Label,否则会创建失败(例如不能指定为Deployment Label)。
容器名称
指定完整的容器名称。不填时,Filebeat会采集命名空间下符合Pod标签的所有容器。
说明获取Pod相关信息(命名空间、标签、名称)的具体操作,请参见管理容器组(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}。
说明Docker容器配置集成了Filebeat Autodiscover,配置模板可引用Autodiscover事件变量。
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 Docker input修改。
一个采集器配置仅支持一个Docker输出。如果需要使用多个配置,请单击添加日志采集配置。
可选:单击下一步,在索引存储管理配置向导中,根据需求开启并配置索引存储管理功能。
开启索引存储管理后,单击+添加索引管理策略,按照以下说明配置策略(支持多个)。
参数
说明
策略名称
定义策略名称,可自定义。
选择目标日志
选择待关联的目标日志,至少选择一个。一个策略可选择多个目标日志,每个日志仅可被一个日志管理策略选择。
资源大小限制
索引实际占用磁盘空间达到资源限制时(包括副本),将删除过旧数据,以保证不超过该资源大小限制。
生命周期管理
是否开启索引生命周期管理。生命周期管理可以实现数据节点冷热分离、过期自动删除数据等。
重要开启滚动更新,Filebeat会将数据写入名称为<日志名称>-<日期>-<序号>的索引下,例如log-web-2021.01.22-000001。
不开启滚动更新,Filebeat会将数据写入名称为filebeat-<日志名称>-<日期>的索引下。
单击启动。
启动后,您可在采集器列表中查看对应的采集器。启动成功后,您还可以完成以下操作。
说明ACK集群默认在名称为logging的空间下部署采集器资源,部署完成后,您可以访问对应ACK集群查看已部署的采集器资源,例如索引管理容器、索引生命周期滚动更新策略等,详细信息请参见查看ACK集群中的采集器资源。
操作
说明
配置预览
可查看采集器Output、ACK目标集群及采集任务名称等信息,不支持修改这些信息。
修改详情配置
可修改采集目标、日志采集配置和索引存储管理策略。
更多
可启动、停止、重启、删除采集任务,并支持查看Dashboard和Helm状态。
查看ACK集群中的采集器资源
执行以下命令,通过kubectl访问ACK集群,并查看logging空间下的采集器资源,详细信息请参见获取集群KubeConfig并通过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**** |