阿里云Filebeat支持采集容器服务Kubernetes版ACK(Container Service for Kubernetes)日志,并将采集的日志输出到阿里云Elasticsearch中,进行分析展示。本文介绍如何配置ACK服务日志采集。

前提条件

  • 创建阿里云Elasticsearch实例。

    具体操作,请参见创建实例创建阿里云Elasticsearch实例

  • 自定义自动创建索引。
    为避免索引滚动别名与索引名冲突,建议仅开启filebeat-*索引名,可配置为+.*,+filebeat-*,-*。具体操作,请参见配置YML参数自定义自动创建索引
    注意配置索引生命周期管理时,如果开启了索引滚动更新,为避免滚动更新后的别名与索引名冲突,需要确保关闭自动创建索引;如果未开启索引滚动更新,则需要开启自动创建索引。本文建议您设置自定义自动创建索引。
  • RAM用户进行相关操作时,需要为该用户授予Beats操作权限和ACK操作权限。

    详细信息,请参见创建自定义权限策略配置子账号RBAC权限

  • 创建ACK集群,并运行Pod服务。本文以Nginx容器为例。

    具体操作,请参见创建Kubernetes托管版集群

操作步骤

  1. 登录阿里云Elasticsearch控制台
  2. 在顶部菜单栏处,选择地域。然后在左侧导航栏,单击Beats数据采集中心
    注意 首次进入Beats数据采集中心,需要根据页面提示进行授权确认。
  3. 创建采集器区域,将鼠标移至Filebeat上,单击ACK日志
  4. 选择目标ES集群配置向导中,配置采集器信息。完成后,单击下一步
    选择目标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公网或私网访问白名单
  5. 设置采集目标配置向导中,配置采集目标信息。
    1. 选择ACK目标集群
      注意 请选择与Elasticsearch实例在同一专有网络、Running状态和非边缘托管版(ACK@Edge概述)的ACK集群。
    2. 可选:根据提示,单击安装,安装采集依赖的ES-operator。
      没有安装按钮,表示已经安装。安装后,安装按钮消失,代表安装成功。
    3. 单击+创建采集目标,配置采集目标信息(支持多个)。
      创建采集目标
      参数 说明
      采集目标名称 创建多个采集目标时,名称不可重复。
      命名空间 选择采集Pod所在的命名空间。如果创建Pod时,未指定命名空间,则默认是default
      Pod Label 添加Pod标签。添加多个标签时,多个标签之间为逻辑与关系。
      注意 删除Pod标签时,需要至少存在两个标签。
      容器名称 指定完整的容器名称。不填时,Filebeat会采集命名空间下符合Pod标签的所有容器。
      说明 获取Pod相关信息(命名空间、标签、名称)的具体操作,请参见查看容器组(Pod)
    4. 单击下一步
  6. 日志采集配置配置向导中,单击+添加日志采集配置,配置日志采集信息(支持多个)。完成后,单击下一步日志采集配置
    参数 说明
    日志名称 每个采集目标支持定义多个采集配置,每个采集配置对应一个日志名称,不可重复。日志名称可作为索引名的一部分,用于后续输出使用。
    采集器配置 使用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输出。如果需要使用多个配置,请单击添加日志采集配置
  7. 可选:索引存储管理配置向导中,根据需求开启并配置索引存储管理功能。
    开启索引存储管理后,单击+添加索引管理策略,按照以下说明配置策略(支持多个)。索引存储管理
    参数 说明
    策略名称 每个采集目标支持定义多个采集配置,每个采集配置对应一个日志名称,日志名称可作为索引名用于后续输出使用。
    选择目标日志 选择待关联的目标日志,至少选择一个。一个策略可选择多个目标日志,每个日志仅可被一个日志管理策略选择。
    资源大小限制 索引实际占用磁盘空间达到资源限制时(包括副本),将删除过旧数据,以保证不超过该资源大小限制。
    生命周期管理 是否开启索引生命周期管理。生命周期管理可以实现数据节点冷热分离、过期自动删除数据等。详细信息,请参见冷热分离与索引生命周期管理Managing the index lifecycle
    注意
    • 开启滚动更新,Filebeat会将数据写入名称为<日志名称>-<日期>-<序号>的索引下,例如log-web-2021.01.22-000001
    • 不开启滚动更新,Filebeat会将数据写入名称为filebeat-<日志名称>-<日期>的索引下。
  8. 单击启动
    启动后,您可在采集器列表中查看对应的采集器。启动成功后,您还可以完成以下操作。
    操作 说明
    配置预览 可查看采集器Output、ACK目标集群及采集任务名称等信息,不支持修改这些信息。
    修改详情配置 可修改采集目标、日志采集配置和索引存储管理策略。
    更多 可启动、停止、重启、删除采集任务,并支持查看Dashboard和Helm状态。