日志

日志查询分析

在运维中心的日志查询分析面板中,可以查看登录账号权限内的标准输出(stdout)日志,包括系统日志、产品日志、Kubernetes 日志和应用日志。通过这些日志,可以洞察资源的运行情况。

  • 系统日志:来自宿节点的日志,例如:dmesg、syslog/messages、secure 等。
  • 产品日志:来自平台自身的组件和与平台集成的第三方组件的日志,例如:Container-Platform、Platform-Center、DevOps、Service-Mesh 等。
  • Kubernetes 日志:来自 Kubernetes 容器编排相关组件的日志,以及 kubelet、kubeproxy 和 docker 生成的日志,如:docker、kube-apiserver、kube-controller-manager、etcd 等。
  • 应用日志:来自业务应用的日志,包括文件日志和标准输出日志。

日志查询条件支持筛选指定时间范围内(选择或自定义)的日志,并通过柱状图和标准输出展示查询结果。

WARNING

出于性能考虑,平台一次最多可展示 10,000 条日志。如果一段时间内平台的日志量过大,请缩小查询的时间范围并进行分阶段查询。

搜索日志

  1. 在左侧导航栏中,单击 运维中心 > 日志 > 日志查询分析

  2. 选择指定的日志类型、查询条件,输入要检索的日志内容关键字,然后单击 搜索

TIP
  • 不同的 日志类型 允许选择不同的查询条件。

  • 可以选择或输入多个查询条件标签;不同资源类型的查询条件之间是 AND 关系。部分查询条件标签支持多选,请确保在选择后按 Enter 键提交选项。

  • 查询条件支持模糊搜索;例如,pod = nginx 的查询条件可以检索到 nginx-1nginx-2 的日志。

  • 日志内容搜索条件仅用于检索您的日志关键词,并支持使用 ANDOR 参数进行关联查询。然而,请注意在同一个查询中不要同时使用 ANDOR 参数。

  • 柱状图显示当前查询时间范围内的日志总数以及不同时间点的日志数量。单击图表中的某个柱状图,可以查看该柱状图与下一个柱状图之间时间范围内的日志。

导出日志数据

该页面最多展示 10,000 条日志数据。当查询得到的日志条数过多时,可以通过导出日志功能查看最多 100 万条日志信息。

  1. 单击柱状图右上角的 导出 按钮,在弹出的导出日志对话框中配置以下参数。

    • 范围:日志导出的范围,可选择 当前页全部结果

      • 当前页:仅导出当前页的查询结果,最多 1000 条。
      • 全部结果:导出满足当前查询条件的所有日志数据,最多 100 万条。
    • 字段:日志的显示字段。可以通过单击字段名称左侧的复选框选择在导出的日志文件中显示的字段信息。

      说明:不同日志类型可选的显示字段不同,请根据实际需求选择。

    • 格式:日志文件的导出格式,支持选择 txtcsv,平台将以 gzip 压缩格式导出。

  2. 单击 导出,浏览器将直接下载压缩文件到本地。

查看日志上下文

  1. 双击日志内容区域,当前对话框将展示当前日志打印时间前后各 5 条日志,帮助运维人员更好地理解当前日志生成的原因。

  2. 您可以设置日志上下文的显示字段或导出日志上下文。在导出日志上下文时,无需选择 范围,单击 导出 按钮后,浏览器将直接下载日志上下文文件到本地。

管理应用日志保留时间

当未设置项目策略时,平台上应用日志的保留时间由 ACP Log Collector 安装时所选的 存储集群 上安装的 日志存储插件应用日志保留时间 决定。

您可以通过添加和管理项目日志策略来差异化设置项目下 应用日志 在平台上的保留时间。

TIP

项目策略仅适用于特定项目下的 应用日志。设置项目策略后,该项目下所有应用日志的保留时间将遵循项目策略。

平台管理员设置项目策略

  1. 在左侧导航栏中,单击 运维中心 > 日志 > 策略管理

  2. 单击 添加项目策略

  3. 单击 项目 下拉框,选择一个项目。

  4. 设置 日志保留时间

    • 使用计数器两侧的 -/+ 按钮减少或增加保留天数,或直接在计数器中输入数值。平台支持设置保留时间范围为 1 到 30 天。
    • 如果输入值为小数,将向上取整为整数;如果输入值小于 1,将取整为 1,且 - 按钮不可点击;如果输入值超过 30,将取整为 30,且 + 按钮不可点击。
  5. 单击 添加

项目管理员自行设置项目策略

  1. 进入当前项目的项目详情页面。

  2. 单击日志策略字段旁的编辑按钮,在弹窗中开启日志策略。

  3. 设置 日志保留时间

    • 使用计数器两侧的 -/+ 按钮减少或增加保留天数,或直接在计数器中输入数值。平台支持设置保留时间范围为 1 到 30 天。
    • 如果输入值为小数,将向上取整为整数;如果输入值小于 1,将取整为 1,且 - 按钮不可点击;如果输入值超过 30,将取整为 30,且 + 按钮不可点击。

通过 CLI 设置项目策略

  1. 登录 global 集群并执行以下命令:
kubectl edit project <项目名>
  1. 根据以下示例修改 yaml,然后保存并提交。
apiVersion: auth.alauda.io/v1
kind: Project
metadata:
  annotations:
    cpaas.io/creator: mschen1@alauda.io
    cpaas.io/description: ""
    cpaas.io/display-name: ""
    cpaas.io/operator: leizhuc
    cpaas.io/project.esPolicyLastEnabledTimestamp: "2025-02-18T09:53:54Z"
    cpaas.io/updated-at: "2025-02-18T09:53:54Z"
creationTimestamp: "2025-02-13T08:19:11Z"
finalizers:
- namespace
generation: 1
labels:
  cpaas.io/project: bookinfo
  cpaas.io/project.esIndicesKeepDays: "7" # 项目下应用日志的保留时长
  cpaas.io/project.esPolicyEnabled: "true" # 启用项目策略
  cpaas.io/project.id: "95447321"
  cpaas.io/project.level: "1"
  cpaas.io/project.parent: ""
name: bookinfo
### 更多 yaml 信息不涉及修改,已省略。

配置部分应用日志不采集

如果您只需实时查看集群中某些应用的 实时日志,而不希望存储这些日志(采集器会丢弃相应的日志),可以参考本节内容设置停止采集应用日志的范围(集群、命名空间、Pod),实现更细粒度的应用日志采集控制。

停止采集集群下所有应用日志

您可以通过更新集群的 ACP Log Collector配置参数,关闭 应用日志 的采集开关,从而统一更新该集群的日志采集范围。一旦关闭某类型日志的采集开关,将停止采集当前集群上该类型的所有日志。

停止采集指定命名空间下的应用日志

通过为指定命名空间添加 cpaas.io/log.mute=true 标签,可以关闭该命名空间的应用日志采集开关,停止采集该命名空间下所有 Pod 的标准输出日志和文件日志。

可选配置方式如下:

  • 命令行方式:登录集群的任一控制节点后,执行以下命令更新命名空间的标签。

    kubectl label namespace <命名空间名> cpaas.io/log.mute=true
    
  • 界面操作方式:在 项目管理 视图中更新命名空间的标签。

    1. 项目管理 视图的项目列表中,单击命名空间所在的 项目名称
    2. 在左侧导航栏中,单击 命名空间
    3. 单击待更新标签的 命名空间名称
    4. 详情信息 标签下,单击 标签 右侧的操作按钮。
    5. 添加标签(键:cpaas.io/log.mute,值:true)或修改已存在标签的值,然后单击 更新

停止采集 Pod 日志

通过为指定 Pod 添加 cpaas.io/log.mute=true 标签,可以关闭该 Pod 的日志采集开关,停止采集该 Pod 的标准输出日志和文件日志。

在登录集群的任一控制节点后,执行以下命令更新 Pod 的标签。

kubectl label pod <Pod> -n <命名空间名> cpaas.io/log.mute=true

说明:如果 Pod 属于计算组件(Workload),可以更新计算组件(Deployment、StatefulSet、DaemonSet、Job、CronJob)的标签,以统一更新该计算组件下所有 Pod 的标签,标签在 Pod 重建后也不会丢失。

您可以通过以下方式更新计算组件的标签。

  1. Container Platform 产品视图中,在顶部导航栏切换到 Pod 所在的命名空间。

  2. 在左侧导航栏中,单击 计算组件 > Pod 所属计算组件类型

  3. 单击待更新标签的计算组件右侧的操作按钮 > 更新

  4. 点击右上角的 YAML 切换到 YAML 编辑视图。

  5. spec.template.labels 字段中添加 cpaas.io/log.mute: 'true' 标签。

    示例如下:

    spec:
      template:
        metadata:
          namespace: tuhao-test
          creationTimestamp: null
          labels:
            app: spilo
            cpaas.io/log.mute: 'true'
            cluster-name: acid-minimal-cluster
            role: exporter
            middleware.instance/name: acid-minimal-cluster
            middleware.instance/type: PostgreSQL
    
  6. 单击 更新