本节介绍如何查询审计日志。

审计日志:KubeSphere API 服务器接收请求的记录,即 KubeSphere 平台上用户的操作行为。

KubeSphere 支持以普通用户角色或集群管理员角色查询自身权限范围内的审计日志。

启用审计

为获取审计日志数据,您需要启用 Kubernetes 和 KubeSphere 审计,即启用审计日志收集。

启用 Kubernetes 审计(可选)

开启 Kubernetes 审计会产生很多系统审计日志,增加存储资源占用的同时,过于详细的审计信息也影响审计查询体验,可以选择不开启 Kubernetes 审计,仅开启 KubeSphere 审计。

如需审计未经 KubeSphere Web 控制台进行的操作,如审计 kubectl 操作或 K8s API 调用,可开启 Kubernetes 审计。

  1. 在集群的 master 节点上创建审计目录。

    mkdir /etc/kubernetes/audit
  2. 创建 policy 文件。

    vi /etc/kubernetes/audit/audit-policy.yaml
    apiVersion: audit.k8s.io/v1
    kind: Policy
    rules:
    - level: Metadata
  3. 编辑 kube-apiserver.yaml 文件,添加以下内容。

    vi /etc/kubernetes/manifests/kube-apiserver.yaml
      spec:
        containers:
          - command:
              - kube-apiserver
              - --audit-policy-file=/etc/kubernetes/audit/audit-policy.yaml
              - --audit-log-path=/etc/kubernetes/audit/audit.log
              - --audit-log-maxbackup=10
              - --audit-log-maxsize=100
            volumeMounts:
              - mountPath: /etc/kubernetes/audit
                name: audit
        volumes:
          - hostPath:
              path: /etc/kubernetes/audit
              type: DirectoryOrCreate
            name: audit

启用 KubeSphere 审计

  1. 编辑 KubeSphere Core (ks-core) chart 包中的 values.yaml 文件。

    说明

    如果找不到 ks-core chart 包,使用 helm list -n kubesphere-system 查看 ks-core 的 chart 版本,然后通过 helm pull oci://hub.kubesphere.com.cn/kse/ks-core --version <version> 命令下载 chart 包。解压后使用 vi ks-core/values.yaml 修改 auditingapiserver 部分。

    auditing:
      enable: true
      auditLevel: Metadata
      logOptions:
        path: /etc/audit/audit.log
    
    apiserver:
      extraVolumeMounts:
        - mountPath: /etc/audit
          name: audit
      extraVolumes:
        - hostPath:
            path: /etc/kubesphere/audit
            type: DirectoryOrCreate
          name: audit
  2. 修改完 ks-core 的 values.yaml 文件后,需要执行 helm upgrade 命令来更新 ks-core。例如:

    helm upgrade --install -n kubesphere-system --create-namespace ks-core charts/ks-core --debug --wait
注意

确保您对 ks-core 的配置更改都存在 values.yaml 文件中,否则执行升级命令会导致其他配置使用默认配置,这可能会覆盖您之前对 ks-core 的配置!

以普通用户角色查询审计日志

前提条件

查询审计日志

  1. 登录 KubeSphere Web 控制台。

  2. 点击组件坞 > WizTelemetry 可观测平台

  3. 在左侧导航栏选择日志 > 审计查询

  4. 在审计查询页面,设置搜索条件查询日志。

    • 如果有多个集群,点击集群下拉列表可查询特定集群中的日志。

    • 点击搜索框,设置搜索条件,然后按 Enter 可查看符合特定条件的日志。您可以同时设置多个搜索条件。

    • 在查询结果页面可查看日志的时间分布图,点击柱状图,切换到该时间段的日志列表。点击start-dark/stop-dark-white可开启/停止实时数据刷新,点击刷新频率的时间可选择数据的刷新频率。

    • 在查询结果列表右上角点击cogwheel可定制列表中显示的信息。

    • 点击查询结果中的日志条目,查看日志的详细信息。

以集群管理员角色查询审计日志

前提条件

  • 您需要加入一个集群并在集群中具有 cluster-admin 权限。有关更多信息,请参阅集群成员集群角色

查询审计日志

  1. 以具有 cluster-admin 权限的用户登录 KubeSphere Web 控制台并进入您的集群。

  2. 在左侧导航栏选择日志 > 审计查询

  3. 在审计查询页面,设置搜索条件查询日志。