赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 分布式云容器平台ACK One
  4. 操作指南
  5. 注册集群
  6. 接入云上Serverless算力
  7. ACS算力
  8. ACS算力高级配置
  9. 通过AliyunLogConfig CRD方式采集应用日志

通过AliyunLogConfig CRD方式采集应用日志

  • ACS算力高级配置
  • 发布于 2025-04-18
  • 0 次阅读
文档编辑
文档编辑

ACK One注册集群集成了阿里云日志服务SLS。您可以快速采集ACS Pod的容器日志,包括容器的标准输出以及容器内的文本文件。本文介绍如何在ACS Pod中通过AliyunLogConfig CRD采集容器应用日志。

步骤一:创建AliyunLogConfig CRD日志采集配置

AliyunLogConfig CRD支持采集特定应用的标准输出日志和文件日志。您可以通过集群左侧导航栏自定义资源 > 资源定义(CustomResourceDefinition) > 使用YAML创建资源来创建AliyunLogConfig CRD。AliyunLogConfig CRD的主要配置参数如下表所示。

配置参数

说明

示例值

.metadata.name

日志采集配置资源名,在当前ACS集群内唯一。

test-stdout

.spec.project

可选配置,Project名称。可自定义,推荐使用k8s-log-ACS集群ID命名。

k8s-log-c326bc86****

.spec.logstore

必选配置,Logstore名称。如果不存在,日志服务会自动创建。

test-stdout

.spec.logtailConfig.inputType

采集的数据源类型,file表示文件日志,plugin表示标准输出。

plugin

.spec.logtailConfig.configName

Logtail配置的名称,必须与资源名metadata.name相同。

test-stdout

.spec.logtailConfig.inputDetail

Logtail配置的详细信息。其中主要包括采集标准输出日志和采集文件日志等配置。

plugin:
  inputs:
    - type: service_docker_stdout
      detail:
        Stdout: true
        Stderr: true

表示采集容器的标准输出Stdout和错误输出Stderr。

.spec.logtailConfig.inputDetail.advanced

Logtail配置的扩展功能。其中k8s配置主要包括:

  • K8sNamespaceRegex:Pod Namespace过滤,支持正则表达式。

  • K8sContainerRegex:容器名过滤,支持正则表达式。

  • K8sPodRegex:Pod名过滤,支持正则表达式。

  • IncludeK8sLabel:根据Pod labels匹配。

k8s:
  K8sNamespaceRegex: ^(default)$
  K8sContainerRegex: ^(busybox)$
  K8sPodRegex: ^backend.+$
  IncludeK8sLabel:
    app: backend
    application: prod

表示指定收集同时符合以下规则的容器日志:

  • 命名空间名称为default。

  • Pod名称以backend为开头。

  • 容器名称为busybox。

  • 带有标签app: backend和application: prod。

关于更多配置参数的详细说明,请参见Logtail配置。

场景一:采集特定应用的标准输出日志

采集的日志为标准输出(包括错误输出),在logtailConfig配置中的 detail 添加相关配置来匹配特定的Pod或容器,将下述配置下发到ACS集群中即可完成标准输出日志的采集。

apiVersion: log.alibabacloud.com/v1alpha1      
kind: AliyunLogConfig                         
metadata:
  name: test-stdout               
spec:
  project: k8s-log-c326bc86****    # 请修改为实际Project名称
  logstore: test-stdout                           
  shardCount: 2                                           
  lifeCycle: 90                    
  logtailConfig:                   
    inputType: plugin                                             
    configName: test-stdout        
    inputDetail:                   
      plugin:
        inputs:
          - type: service_docker_stdout
            detail:
              Stdout: true
              Stderr: true
              K8sNamespaceRegex: ^(default)$    
              K8sContainerRegex: ^(busybox)$    
              K8sPodRegex: ^backend.+$          
              IncludeK8sLabel:                  
                app: backend
                application: prod

场景二:采集特定应用的文件日志

采集的日志为文件日志,在logtailConfig配置中增加 advanced 配置来匹配特定的Pod或容器,将下述配置下发到ACS集群中即可完成文件日志的采集。

apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
  name: test-file                  
spec:
  project: k8s-log-c326bc86****    # 请修改为实际Project名称
  logstore: test-file                 
  logtailConfig:                   
    inputType: file                
    configName: test-file           
    inputDetail:                  
      logType: common_reg_log      
      logPath: /log/               
      filePattern: "*.log"         
      dockerFile: true             
      advanced:
        k8s:
          K8sNamespaceRegex: ^(default)$    
          K8sContainerRegex: ^(busybox)$    
          K8sPodRegex: ^backend.+$          
          IncludeK8sLabel:                  
            app: backend
            application: prod
说明

以上场景的AliyunLogConfig CR test-stdout和test-file创建完成后,您可以先通过步骤三:通过日志服务控制台查看日志是否已成功创建对应的日志库。若没有,请结合Logtail配置重新检查和修改配置项。

image

步骤二:创建示例应用

创建日志采集配置CRD后,日志服务会自动采集后续创建的Pod的日志。您可以创建以下示例应用来测试日志采集的效果。

  1. 示例应用以Deployment为例,YAML内容示例如下。其中容器启动后会执行相关命令,不断打印标准输出和日志文件。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: backend-busybox
      labels:
        app: backend
        application: prod
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: backend
          application: prod
      template:
        metadata:
          name: backend-busybox
          labels:
            app: backend
            alibabacloud.com/acs: "true" # 配置使用ACS算力
            alibabacloud.com/compute-class: general-purpose # 配置ACS Pod的算力类型,未配置默认general-purpose
            alibabacloud.com/compute-qos: default # 配置ACS Pod的算力质量,未配置默认default
            application: prod
        spec:
          containers:
          - args:
            - -c
            - mkdir -p /log; while true; do echo hello world; date; echo hello sls >> /log/busybox.log; sleep 1; done
            command:
            - /bin/sh
            image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/busybox:1.28
            imagePullPolicy: Always
            name: busybox

步骤三:通过日志服务控制台查看日志

完成配置后,示例应用的日志已被采集并存储到日志服务SLS中,您可以在日志服务控制台查看容器日志。

  1. 登录日志服务控制台。

  2. 在Project列表区域单击ACS集群对应的Project名(默认为k8s-log-{ACS集群ID}),进入日志库列表页签。

  3. 在列表中单击相应的Logstore(采集配置中指定)名称,在页面右侧新打开的标签页中查看对应的日志信息。

    本示例中,在日志查询页面,可以查看标准输出日志(test-stdout)和容器内文件日志(test-file)。

    image

    image

相关文章

使用自建镜像仓库创建ACS Pod 2025-04-18 18:14

拉取自建镜像仓库中的镜像时,可能会碰到因协议不同、证书认证失败或者使用了自建DNS服务器而导致镜像拉取失败的问题。本文介绍在自建镜像仓库采用HTTP协议和使用自签发证书或者自建DNS服务器的情况下,如何拉取自建镜像仓库中的镜像来创建ACS工作负载。 功能说明 拉取自建镜像仓库中的镜像时,可能会碰到E

为ACS Pod配置自定义DNS 2025-04-18 18:14

如果您需要使用自建DNS服务来解析镜像仓库以及其他应用的域名,需要将ACS Pod使用的DNS配置为您自建的DNS服务器。本文介绍如何为ACS Pod配置自定义DNS。 适用范围 以下3种情况可以通过Annotation配置自定义DNS:

使用PrivateLink解决数据中心网段IP冲突 2025-04-18 18:14

数据中心的Kubernetes集群通过专线接入ACK One注册集群后,在使用Serverless算力资源时,ack-virtual-node组件需要调用阿里云内网的OpenAPI进行资源生命周期管理。而这些内网的OpenAPI域名解析的IP地址通常都是100网段的IP,可能会导致内网中使用相同网段

静态挂载NAS存储卷 2025-04-18 18:14

对于共享数据,I/O要求较高的应用场景,您可以使用文件存储 NAS(File Storage NAS)作为持久化存储卷。本文介绍如何为应用

静态挂载OSS存储卷 2025-04-18 18:14

如果应用需要存储图片、音视频等非结构化数据,可以使用OSS作为持久化存储卷。本文介绍如何为应用静态挂载OSS存储卷,并验证OSS的共享存储和持久化存储。 注意事项 OSS是一个海量、安全、低成本、高可靠的存储空间,适合存储写入后较少修改的数据,以及非结构化数据(如图片、音视频等)。更多信息,请参见存

增加临时存储空间大小 2025-04-18 18:14

ACS Pod默认提供30 GiB的免费的临时存储空间(EphemeralStorage),如果该存储空间大小无法满足您的需求,您可以自定义增加临时存储空间大小。 背景信息 每个ACS Pod默认提供30 GiB的临时存储空间(免费),如下图所示。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号