安装

平台的日志系统由三个插件组成:Alauda Container Platform Log Essentails、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。

安装规划

INFO

日志系统的部分组件资源消耗较大,建议部署在 infra 节点上,并设置 nodeSelector 和 tolerations,确保组件仅运行在这些节点上。如果您正在评估产品且尚未配置 infra 节点,可移除这些设置,使组件运行在所有节点上。

有关 infra 节点规划的指导,请参见 集群节点规划

Alauda Container Platform Log Storage 插件可安装在任意集群,且可选择任意集群的日志存储组件进行日志采集以对接存储数据。

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

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

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

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

  • 日志存储节点应专用,避免与其他应用或平台组件共部署。日志存储对 I/O 吞吐要求高,易受干扰。

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

通过控制台安装 Alauda Container Platform Log Essentials

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

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

  3. 点击 安装

通过 YAML 安装 Alauda Container Platform Log Essentials

1. 检查可用版本

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

# kubectl get moduleplugin | grep log-api
log-api                       30h
# kubectl get moduleconfig | grep log-api
log-api-v4.2.0                30h

表示集群中存在 ModulePlugin log-api,且版本 v4.2.0 已发布。

2. 创建 ModuleInfo

创建 ModuleInfo 资源安装插件,无需配置参数:

apiVersion: cluster.alauda.io/v1alpha1
kind: ModuleInfo
metadata:
  annotations:
    cpaas.io/display-name: log-api
    cpaas.io/module-name: '{"en": "Alauda Container Platform Log Essentials", "zh":
      "Alauda Container Platform Log Essentials"}'
  labels:
    cpaas.io/cluster-name: global
    cpaas.io/module-name: log-api
    cpaas.io/module-type: plugin
    cpaas.io/product: Platform-Center
  name: global-b4a67e6adb67bad47544354e9bf2bdff
spec:
  version: v4.2.0
  valuesOverride:
    ait/chart-alauda-log-api:
      global:
        nodeSelector:
          node-role.kubernetes.io/infra: "true"
        tolerations:
        - effect: NoSchedule
          key: node-role.kubernetes.io/infra
          value: reserved
          operator: Equal

YAML 字段说明:

字段路径说明
metadata.labels.cpaas.io/cluster-name插件安装目标集群名称。
metadata.nameModuleInfo 临时名称,创建后平台会重命名。
spec.version指定安装的插件版本,需与 ModuleConfig 中 .spec.version 一致。
spec.valuesOverride.ait/chart-alauda-log-api.global.nodeSelector可选。日志组件的 nodeSelector,用于选择日志组件运行节点,主要用于 infra 节点。
spec.valuesOverride.ait/chart-alauda-log-api.global.tolerations可选。日志组件的 tolerations,若 nodeSelector 选择了污点节点,使用此参数指定污点容忍的 key、value 和 effect,主要用于 infra 节点。

3. 验证安装

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

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

字段说明:

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

通过控制台安装 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
  valuesOverride:
    ait/chart-alauda-log-center:
      global:
        nodeSelector:
          node-role.kubernetes.io/infra: "true"
        tolerations:
        - effect: NoSchedule
          key: node-role.kubernetes.io/infra
          value: reserved
          operator: Equal

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 一致。
spec.valuesOverride.ait/chart-alauda-log-center.global.nodeSelector可选。日志组件的 nodeSelector,用于选择日志组件运行节点,主要用于 infra 节点。
spec.valuesOverride.ait/chart-alauda-log-center.global.tolerations可选。日志组件的 tolerations,若 nodeSelector 选择了污点节点,使用此参数指定污点容忍的 key、value 和 effect,主要用于 infra 节点。

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
  valuesOverride:
    ait/chart-alauda-log-clickhouse:
      global:
        nodeSelector:
          node-role.kubernetes.io/infra: "true"
        tolerations:
        - effect: NoSchedule
          key: node-role.kubernetes.io/infra
          value: reserved
          operator: Equal

YAML 字段说明(ClickHouse):

字段路径说明
metadata.nameModuleInfo 名称,建议格式为 <目标集群>-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 一致。
spec.valuesOverride.ait/chart-alauda-log-clickhouse.global.nodeSelector可选。日志组件的 nodeSelector,用于选择日志组件运行节点,主要用于 infra 节点。
spec.valuesOverride.ait/chart-alauda-log-clickhouse.global.tolerations可选。日志组件的 tolerations,若 nodeSelector 选择了污点节点,使用此参数指定污点容忍的 key、value 和 effect,主要用于 infra 节点。

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
  valuesOverride:
    ait/chart-alauda-log-agent:
      global:
        nodeSelector:
          node-role.kubernetes.io/infra: "true"
        tolerations:
        - effect: NoSchedule
          key: node-role.kubernetes.io/infra
          value: reserved
          operator: Equal

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插件安装版本。
spec.valuesOverride.ait/chart-alauda-log-agent.global.nodeSelector可选。日志组件的 nodeSelector,用于选择日志组件运行节点,主要用于 infra 节点。
spec.valuesOverride.ait/chart-alauda-log-agent.global.tolerations可选。日志组件的 tolerations,若 nodeSelector 选择了污点节点,使用此参数指定污点容忍的 key、value 和 effect,主要用于 infra 节点。

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