安装

平台的日志系统由两个插件组成:Alauda Container Platform Log Collector 和 Alauda Container Platform Log Storage。本章将介绍这两个插件的安装。

WARNING
  1. global 集群可以查询平台内任意业务集群存储的日志数据。请确保 global 集群能够访问业务集群的 11780 端口。

  2. Alauda Container Platform Log Storage with Clickhouse 插件需要 Clickhouse operator,安装插件前请确保集群中已上传 Clickhouse operator。

目录

安装规划

Alauda Container Platform Log Storage 插件可以安装在任意集群,且任意集群的日志存储组件都可以被选为日志采集的存储数据接口。

因此,在安装日志存储插件之前,需要规划日志存储组件将要安装的集群和节点。

  • 避免在 global 集群部署日志存储插件,应部署在业务集群中,确保管理集群故障时不会影响基于日志的问题排查。

  • 优先将日志集中到单个日志存储集群中;若日志量超过最大容量阈值,则分散到多个存储集群。

  • 每个网络区域至少部署一个日志存储实例,实现日志的本地汇聚,减少跨数据中心公网流量(公网流量成本高且延迟大)。

  • 日志存储应使用专用节点,避免与其他应用或平台组件混合部署。日志存储对高 I/O 吞吐要求较高,可能受干扰影响。

  • 挂载专用 SSD 磁盘用于日志存储,可显著提升性能。

通过控制台安装 Alauda Container Platform Log Storage with ElasticSearch

  1. 进入 应用商店管理 > 集群插件,选择目标集群。

  2. 插件 标签页,点击 Alauda Container Platform Log Storage with ElasticSearch 右侧操作按钮 > 安装

  3. 按照以下说明配置相关参数。

    参数说明
    连接外部 Elasticsearch保持关闭状态以安装平台内置的日志存储插件。
    组件安装设置LocalVolume:本地存储,日志数据将存储在所选节点的本地存储路径。此方式的优点是日志组件直接绑定本地存储,无需通过网络访问存储,提供更好的存储性能。
    StorageClass:通过存储类动态创建存储资源存储日志数据。此方式灵活性更高;当整个集群定义多个存储类时,管理员可根据使用场景为日志组件选择对应存储类,降低主机故障对存储的影响。但 StorageClass 性能可能受网络带宽和延迟等因素影响,且依赖存储后端提供的冗余机制实现存储高可用。
    保留周期日志、事件和审计数据在集群上可保留的最长时间。超过保留周期的数据将被自动清理。
    提示:可备份需要长期保留的数据,如需帮助请联系技术支持人员。
  4. 点击 安装

通过 YAML 安装 Alauda Container Platform Log Storage with ElasticSearch

1. 检查可用版本

global 集群中检查 ModulePlugin 和 ModuleConfig 资源,确保插件已发布:


# kubectl get moduleplugin | grep logcenter
logcenter                       30h
# kubectl get moduleconfig | grep logcenter
logcenter-v4.1.0                30h

表示集群中存在 ModulePlugin logcenter,且版本 v4.1.0 已发布。

2. 创建 ModuleInfo

创建 ModuleInfo 资源安装插件,未配置任何参数:

apiVersion: cluster.alauda.io/v1alpha1
kind: ModuleInfo
metadata:
  annotations:
    cpaas.io/display-name: logcenter
    cpaas.io/module-name: '{"en": "Alauda Container Platform Log Storage for Elasticsearch", "zh": "Alauda Container Platform Log Storage for Elasticsearch"}'
  labels:
    cpaas.io/cluster-name: go
    cpaas.io/module-name: logcenter
    cpaas.io/module-type: plugin
    cpaas.io/product: Platform-Center
  name: <cluster>-log-center
spec:
  config:
    clusterView:
      isPrivate: "true"
    components:
      elasticsearch:
        address: ""
        basicAuthSecretName: ""
        hostpath: /cpaas/data/elasticsearch
        httpPort: 9200
        install: true
        k8sNodes:
        - 192.168.139.75
        masterK8sNodes: []
        masterReplicas: 0
        masterResources:
          limits:
            cpu: "2"
            memory: 4Gi
          requests:
            cpu: 200m
            memory: 256Mi
        masterStorageSize: 5
        nodeReplicas: 1
        nodeStorageSize: 200
        resources:
          limits:
            cpu: "4"
            memory: 4Gi
          requests:
            cpu: "1"
            memory: 1Gi
        tcpPort: 9300
        type: single
      kafka:
        address: ""
        auth: true
        basicAuthSecretName: ""
        exporterPort: 9308
        install: true
        k8sNodes:
        - 192.168.139.75
        port: 9092
        storageSize: 10
        tls: true
        zkElectPort: 3888
        zkExporterPort: 9141
        zkLeaderPort: 2888
        zkPort: 2181
      kibana:
        install: false
      storageClassConfig:
        name: elasticsearch-local-log-sc
        type: LocalVolume
      zookeeper:
        storageSize: 1
    ttl:
      audit: 180
      event: 180
      logKubernetes: 7
      logPlatform: 7
      logSystem: 7
      logWorkload: 7
  version: v4.1.0

YAML 字段说明:

字段路径说明
metadata.labels.cpaas.io/cluster-name插件安装的目标集群名称。
metadata.nameModuleInfo 临时名称,创建后平台会重命名。
spec.config.clusterView.isPrivate集群视图的可见性设置。
spec.config.components.elasticsearch.address外部 Elasticsearch 地址,留空使用平台安装的 Elasticsearch。
spec.config.components.elasticsearch.basicAuthSecretName外部 Elasticsearch 基础认证的 Secret 名称,留空使用平台 Elasticsearch。
spec.config.components.elasticsearch.hostpathElasticsearch 数据路径。
spec.config.components.elasticsearch.httpPortElasticsearch HTTP 端口,默认 9200。
spec.config.components.elasticsearch.install是否通过平台安装 Elasticsearch,使用外部 Elasticsearch 时设为 false。
spec.config.components.elasticsearch.k8sNodes使用 LocalVolume 时 Elasticsearch Data 的节点 IP 列表。
spec.config.components.elasticsearch.masterK8sNodesElasticsearch Master 节点 IP 列表(仅大规模且使用 LocalVolume 时)。
spec.config.components.elasticsearch.masterReplicasElasticsearch Master 副本数(仅大规模时)。
spec.config.components.elasticsearch.masterResourcesElasticsearch Master 资源请求/限制(仅大规模时)。
spec.config.components.elasticsearch.masterStorageSizeElasticsearch Master 存储大小(仅大规模时)。
spec.config.components.elasticsearch.nodeReplicasElasticsearch Data 副本数。
spec.config.components.elasticsearch.nodeStorageSizeElasticsearch Data 存储大小(Gi)。
spec.config.components.elasticsearch.resourcesElasticsearch Data 资源请求/限制。
spec.config.components.elasticsearch.tcpPortElasticsearch 集群内部传输端口,默认 9300。
spec.config.components.elasticsearch.typeElasticsearch 集群规模:single/normal/big。
spec.config.components.kafka.address外部 Kafka 地址,留空使用平台安装的 Kafka。
spec.config.components.kafka.auth是否启用 Kafka 认证,默认 true。
spec.config.components.kafka.basicAuthSecretName外部 Kafka 认证的 Secret 名称,留空使用平台 Kafka。
spec.config.components.kafka.exporterPortKafka Exporter 端口,默认 9308。
spec.config.components.kafka.install是否通过平台安装 Kafka,使用外部 Kafka 时设为 false。
spec.config.components.kafka.k8sNodes使用 LocalVolume 时 Kafka 的节点 IP 列表。
spec.config.components.kafka.portKafka 对外暴露端口,默认 9092。
spec.config.components.kafka.storageSizeKafka 存储大小(Gi)。
spec.config.components.kafka.tls是否启用 Kafka TLS,默认 true。
spec.config.components.kafka.zkElectPortZookeeper 选举端口,默认 3888。
spec.config.components.kafka.zkExporterPortZookeeper Exporter 端口,默认 9141。
spec.config.components.kafka.zkLeaderPortZookeeper leader/follower 通信端口,默认 2888。
spec.config.components.kafka.zkPortZookeeper 客户端端口,默认 2181。
spec.config.components.kibana.install是否安装 Kibana;Kibana 已废弃,设为 false。
spec.config.components.storageClassConfig.nameLocalVolume 时通常为 elasticsearch-local-log-sc;StorageClass 时设置为对应存储类名称。
spec.config.components.storageClassConfig.type存储类型:LocalVolume/StorageClass。
spec.config.components.zookeeper.storageSizeZookeeper 存储大小(Gi)。
spec.config.ttl.audit审计数据保留天数。
spec.config.ttl.event事件数据保留天数。
spec.config.ttl.logKubernetesKubernetes 日志保留天数。
spec.config.ttl.logPlatform平台日志保留天数。
spec.config.ttl.logSystem系统日志保留天数。
spec.config.ttl.logWorkload业务日志保留天数。
spec.version指定安装的插件版本,必须与 ModuleConfig 中 .spec.version 一致。

3. 验证安装

由于创建后 ModuleInfo 名称会变更,可通过标签定位资源,查看插件状态和版本:

kubectl get moduleinfo -l cpaas.io/module-name=logcenter
NAME                                             CLUSTER         MODULE      DISPLAY_NAME   STATUS    TARGET_VERSION   CURRENT_VERSION   NEW_VERSION
global-e671599464a5b1717732c5ba36079795          global          logcenter   logcenter      Running   v4.0.12          v4.0.12           v4.0.12

字段说明:

  • NAME:ModuleInfo 资源名称
  • CLUSTER:插件安装的集群
  • MODULE:插件名称
  • DISPLAY_NAME:插件显示名称
  • STATUS:安装状态,Running 表示安装成功且运行中
  • TARGET_VERSION:目标安装版本
  • CURRENT_VERSION:安装前版本
  • NEW_VERSION:可安装的最新版本

通过控制台安装 Alauda Container Platform Log Storage with Clickhouse

  1. 进入 应用商店管理 > 集群插件,选择目标集群。

  2. 插件 标签页,点击 Alauda Container Platform Log Storage with Clickhouse 右侧操作按钮 > 安装

  3. 按照以下说明配置相关参数。

    参数说明
    组件安装设置LocalVolume:本地存储,日志数据将存储在所选节点的本地存储路径。此方式的优点是日志组件直接绑定本地存储,无需通过网络访问存储,提供更好的存储性能。
    StorageClass:通过存储类动态创建存储资源存储日志数据。此方式灵活性更高;当整个集群定义多个存储类时,管理员可根据使用场景为日志组件选择对应存储类,降低主机故障对存储的影响。但 StorageClass 性能可能受网络带宽和延迟等因素影响,且依赖存储后端提供的冗余机制实现存储高可用。
    保留周期日志、事件和审计数据在集群上可保留的最长时间。超过保留周期的数据将被自动清理。
    提示:可备份需要长期保留的数据,如需帮助请联系技术支持人员。
  4. 点击 安装

通过 YAML 安装 Alauda Container Platform Log Storage with Clickhouse

1. 检查可用版本

global 集群中检查 ModulePlugin 和 ModuleConfig 资源,确保插件已发布:


# kubectl get moduleplugin | grep logclickhouse
logclickhouse                       30h
# kubectl get moduleconfig | grep logclickhouse
logclickhouse-v4.1.0                30h

表示集群中存在 ModulePlugin logclickhouse,且版本 v4.1.0 已发布。

2. 创建 ModuleInfo

创建 ModuleInfo 资源安装插件,未配置任何参数:

apiVersion: cluster.alauda.io/v1alpha1
kind: ModuleInfo
metadata:
  name: global-logclickhouse
  labels:
    cpaas.io/cluster-name: global
    cpaas.io/module-name: logclickhouse
    cpaas.io/module-type: plugin
spec:
  version: v4.1.0
  config:
    components:
      storageClassConfig:
        type: LocalVolume
        name: ""
      clickhouse:
        resources:
          limits:
            cpu: "2"
            memory: 4Gi
          requests:
            cpu: 200m
            memory: 256Mi
        k8sNodes:
          - xxx.xxx.xxx.xx
        hostpath: /cpaas/data/clickhouse
        nodeReplicas: 1
        nodeStorageSize: 200
        type: single
      razor:
        resources:
          limits:
            cpu: "2"
            memory: 1Gi
          requests:
            cpu: 10m
            memory: 256Mi
      vector:
        resources:
          limits:
            cpu: "4"
            memory: 1Gi
          requests:
            cpu: 10m
            memory: 256Mi
    ttl:
      audit: 180
      event: 180
      logKubernetes: 7
      logPlatform: 7
      logSystem: 7
      logWorkload: 7

YAML 字段说明(ClickHouse):

字段路径说明
metadata.nameModuleInfo 名称,建议格式为 <target-cluster>-logclickhouse
metadata.labels.cpaas.io/cluster-name插件安装的目标集群。
metadata.labels.cpaas.io/module-name必须为 logclickhouse
metadata.labels.cpaas.io/module-type必须为 plugin
spec.version插件安装版本。
spec.config.components.storageClassConfig.typeClickHouse 数据存储类型:LocalVolumeStorageClass
spec.config.components.storageClassConfig.name类型为 StorageClass 时填写存储类名称;LocalVolume 时留空。
spec.config.components.clickhouse.resourcesClickHouse 资源请求/限制。
spec.config.components.clickhouse.k8sNodes使用 LocalVolume 时 ClickHouse 节点 IP 列表。
spec.config.components.clickhouse.hostpath使用 LocalVolume 时 ClickHouse 数据本地路径。
spec.config.components.clickhouse.nodeReplicas使用 StorageClass 时副本数。
spec.config.components.clickhouse.nodeStorageSizeClickHouse 数据存储大小(Gi)。
spec.config.components.clickhouse.type集群规模:singlenormalbig
spec.config.components.razor.resourcesRazor 资源请求/限制。
spec.config.components.vector.resourcesVector 资源请求/限制。
spec.config.ttl.audit审计数据保留天数。
spec.config.ttl.event事件数据保留天数。
spec.config.ttl.logKubernetesKubernetes 日志保留天数。
spec.config.ttl.logPlatform平台日志保留天数。
spec.config.ttl.logSystem系统日志保留天数。
spec.config.ttl.logWorkload业务日志保留天数。
spec.version指定安装的插件版本,必须与 ModuleConfig 中 .spec.version 一致。

3. 验证安装

由于创建后 ModuleInfo 名称会变更,可通过标签定位资源,查看插件状态和版本:

kubectl get moduleinfo -l cpaas.io/module-name=logclickhouse
NAME                                             CLUSTER         MODULE      DISPLAY_NAME   STATUS    TARGET_VERSION   CURRENT_VERSION   NEW_VERSION
global-e671599464a5b1717732c5ba36079795          global          logclickhouse   logclickhouse      Running   v4.0.12          v4.0.12           v4.0.12

字段说明:

  • NAME:ModuleInfo 资源名称
  • CLUSTER:插件安装的集群
  • MODULE:插件名称
  • DISPLAY_NAME:插件显示名称
  • STATUS:安装状态,Running 表示安装成功且运行中
  • TARGET_VERSION:目标安装版本
  • CURRENT_VERSION:安装前版本
  • NEW_VERSION:可安装的最新版本

安装 Alauda Container Platform Log Collector 插件

  1. 进入 应用商店管理 > 集群插件,选择目标集群。

  2. 插件 标签页,点击 Alauda Container Platform Log Collector 右侧操作按钮 > 安装

  3. 选择 存储集群(已安装 Alauda Container Platform Log Storage 的集群),点击 选择/取消选择 日志类型,设置集群内日志采集范围。

  4. 点击 安装

通过 YAML 安装 Alauda Container Platform Log Collector 插件

1. 检查可用版本

global 集群中检查 ModulePlugin 和 ModuleConfig 资源,确保插件已发布:


# kubectl get moduleplugin | grep logagent
logagent                       30h
# kubectl get moduleconfig | grep logagent
logagent-v4.1.0                30h

表示集群中存在 ModulePlugin logagent,且版本 v4.1.0 已发布。

2. 创建 ModuleInfo

创建 ModuleInfo 资源安装插件,未配置任何参数:

apiVersion: cluster.alauda.io/v1alpha1
kind: ModuleInfo
metadata:
  annotations:
    cpaas.io/display-name: logagent
    cpaas.io/module-name: '{"en": "Alauda Container Platform Log Collector", "zh": "Alauda Container Platform Log Collector"}'
  labels:
    cpaas.io/cluster-name: go
    cpaas.io/module-name: logagent
    cpaas.io/module-type: plugin
    cpaas.io/product: Platform-Center
    logcenter.plugins.cpaas.io/cluster: go
  name: <cluster>-log-agent
spec:
  config:
    crossClusterDependency:
      logcenter: go
      logclickhouse: null
    dataSource:
      audit: true
      event: true
      kubernetes: true
      platform: false
      system: false
      workload: true
    storage:
      type: Elasticsearch
  version: v4.1.0

YAML 字段说明(Log Collector):

字段路径说明
metadata.annotations.cpaas.io/display-name插件显示名称。
metadata.annotations.cpaas.io/module-name插件国际化名称 JSON 字符串。
metadata.labels.cpaas.io/cluster-name插件安装的目标集群。
metadata.labels.cpaas.io/module-name必须为 logagent
metadata.labels.cpaas.io/module-type必须为 plugin
metadata.labels.cpaas.io/product产品标识,通常为 Platform-Center
metadata.labels.logcenter.plugins.cpaas.io/cluster日志推送的存储集群名称。
metadata.nameModuleInfo 临时名称,创建后平台会重命名。
spec.config.crossClusterDependency.logcenter基于 Elasticsearch 的日志存储集群名称。
spec.config.crossClusterDependency.logclickhouse使用 Elasticsearch 存储时设为 null,否则设为 ClickHouse 集群名称。
spec.config.dataSource.audit是否采集审计日志。
spec.config.dataSource.event是否采集事件日志。
spec.config.dataSource.kubernetes是否采集 Kubernetes 日志。
spec.config.dataSource.platform是否采集平台日志。
spec.config.dataSource.system是否采集系统日志。
spec.config.dataSource.workload是否采集业务日志。
spec.config.storage.type存储类型,ElasticsearchClickhouse
spec.version插件安装版本。

3. 验证安装

由于创建后 ModuleInfo 名称会变更,可通过标签定位资源,查看插件状态和版本:

kubectl get moduleinfo -l cpaas.io/module-name=logagent
NAME                                             CLUSTER         MODULE      DISPLAY_NAME   STATUS    TARGET_VERSION   CURRENT_VERSION   NEW_VERSION
global-e671599464a5b1717732c5ba36079795          global          logagent   logagent      Running   v4.0.12          v4.0.12           v4.0.12