日志采集

日志采集

日志采集

概念

TKESTack 提供的集群内日志采集功能,支持将集群内服务或集群节点特定路径文件的日志发送至 Kafka、Elasticsearch 等消费端,支持采集容器标准输出日志,容器内文件日志以及主机内文件日志。更提供事件持久化、审计等功能,实时记录集群事件及操作日志记录,帮助运维人员存储和分析集群内部资源生命周期、资源调度、异常告警等情况。

日志收集功能需要为每个集群手动开启。日志收集功能开启后,日志收集组件 logagent 会在集群内以 Daemonset 的形式运行。用户可以通过日志收集规则配置日志的采集源和消费端,日志收集 Agent 会从用户配置的采集源进行日志收集,并将日志内容发送至用户指定的消费端。需要注意的是,使用日志收集功能需要您确认 Kubernetes 集群内节点能够访问日志消费端。

  • 采集容器标准输出日志 :采集集群内指定容器的标准输出日志,采集到的日志信息将会以 JSON 格式输出到用户指定的消费端,并会自动附加相关的 Kubernetes metadata, 包括容器所属 pod 的 label 和 annotation 等信息。
  • 采集容器内文件日志 :采集集群内指定 pod 内文件的日志,用户可以根据自己的需求,灵活的配置所需的容器和路径,采集到的日志信息将会以 JSON 格式输出到用户指定的消费端, 并会附加相关的 Kubernetes metadata,包括容器所属 pod 的 label 和 annotation 等信息。
  • 采集主机内文件日志 :采集集群内所有节点的指定主机路径的日志,logagent 会采集集群内所有节点上满足指定路径规则的文件日志,以 JSON 格式输出到用户指定的输出端, 并会附加用户指定的 metadata,包括日志来源文件的路径和用户自定义的 metadata。

注意:日志采集对接外部 Kafka 或 Elasticsearch,该功能需要额外开启,位置在集群 基本信息 下面,点击开启“日志采集”服务。

新建日志采集规则

  • 登录 TKEStack
  • 切换至【平台管理】控制台,选择 【运维中心】->【日志采集】
  • 选择相应【集群】和【命名空间】,单击【新建】按钮,如下图所示:

  • 在“新建日志采集”页面填写日志采集信息,如下图所示:

  • 收集规则名称: 输入规则名,1~63字符,只能包含小写字母、数字及分隔符("-"),且必须以小写字母开头,数字或小写字母结尾
  • 所属集群: 选择所属集群
  • 类型: 选择采集类型
    • 容器标准输出: 容器Stdout信息采集
      • 日志源: 可以选择所有容器或者某个namespace下的所有容器/工作负载
        • 所有容器: 所有容器
        • 指定容器: 某个Namespace下的所有容器或者工作负载
    • 容器文件路径: 容器内文件内容采集
      • 日志源: 可以采集具体容器内的某个文件路径下的文件内容
        • 工作负载选项: 选择某个namespace下的某种工作负载类型下的某个工作负载
        • 配置采集路径: 选择某个容器下的某个文件路径
    • 节点文件路径: 收集节点上某个路径下的文件内容
      • 日志源:
        • 收集路径: 节点上日志收集路径
        • metadata: key:value格式,收集的日志会带上metadata信息上报给消费端
  • 消费端: 选择日志消费端
    • Kafka:

      • 访问地址: kafka ip 和端口
      • 主题(Topic): kafka topic 名
    • Elasticsearch:

      注意:当前只支持未开启用户登录认证的 ES 集群

      • Elasticsearch地址: ES 地址,如:http://190.0.0.1:200
      • 索引: ES索引,最长60个字符,只能包含小写字母、数字及分隔符("-"、"_"、"+"),且必须以小写字母开头
  • 单击【完成】按钮

指定容器运行后的日志目录

LogAgent 除了支持日志规则的创建,也支持指定容器运行后的日志目录,可实现日志文件展示和下载。

前提:需要在创建负载时挂载数据卷,并指定日志目

创建负载以后,在/data/logdir目录下的所有文件可以展示并下载,不仅是日志文件,例如我们在容器的/data/logdir下新建一个名为a.log的文件,如果有内容的话,也可以在这里展示与下载