Установка

Система логирования платформы состоит из двух плагинов: Alauda Container Platform Log Collector и Alauda Container Platform Log Storage. В этой главе будет представлено руководство по установке этих двух плагинов.

WARNING
  1. Кластер global может выполнять запросы к данным логов, хранящимся на любом workload кластере внутри платформы. Убедитесь, что кластер global имеет доступ к порту 11780 workload кластера.

  2. Плагин Alauda Container Platform Log Storage с Clickhouse требует наличия Clickhouse operator. Перед установкой плагина убедитесь, что Clickhouse operator загружен в кластер.

Содержание

Планирование установки

Плагины Alauda Container Platform Log Storage могут быть установлены в любом кластере, и для сбора логов можно выбрать компонент хранения логов любого кластера для взаимодействия с данными хранилища.

Поэтому перед установкой плагина хранения логов необходимо спланировать кластер и узлы, на которых будет установлен компонент хранения логов.

  • Избегайте развертывания плагинов хранения логов в глобальном кластере. Вместо этого развертывайте их в workload кластерах, чтобы сбои в управляющем кластере не нарушали процесс решения проблем на основе логов.

  • Старайтесь централизовать логи в одном кластере хранения логов. Если объем логов превышает максимальные пороговые значения, распределите логи по нескольким кластерам хранения.

  • Разверните как минимум один экземпляр хранения логов в каждой сетевой зоне для локальной агрегации логов, минимизируя трафик по публичной сети между дата-центрами (что ведет к высоким затратам и задержкам).

  • Выделите отдельные узлы для хранения логов, избегая совместного развертывания с другими приложениями или компонентами платформы. Хранение логов требует высокой пропускной способности ввода-вывода и может страдать от помех.

  • Подключайте выделенные SSD-диски для хранения логов, что значительно повысит производительность.

Установка Alauda Container Platform Log Storage с ElasticSearch через консоль

  1. Перейдите в App Store Management > Cluster Plugin и выберите целевой кластер.

  2. На вкладке Plugins нажмите кнопку действий справа от Alauda Container Platform Log Storage with ElasticSearch > Install.

  3. Следуйте инструкциям для настройки соответствующих параметров.

    ПараметрОписание
    Connect External ElasticsearchОставьте закрытым для установки плагина хранения логов внутри платформы.
    Component installation SettingsLocalVolume: Локальное хранилище, данные логов будут храниться в локальном пути хранения выбранного узла. Преимущество этого метода — компонент логирования напрямую привязан к локальному хранилищу, что исключает необходимость доступа к хранилищу по сети и обеспечивает лучшую производительность.
    StorageClass: Динамическое создание ресурсов хранения с помощью классов хранения для сохранения данных логов. Преимущество этого метода — большая гибкость; при наличии нескольких классов хранения для всего кластера администраторы могут выбирать соответствующий класс хранения для компонентов логирования в зависимости от сценариев использования, снижая влияние сбоев хоста на хранение. Однако производительность StorageClass может зависеть от пропускной способности сети и задержек, а также опирается на механизмы избыточности, предоставляемые бекендом хранения, для обеспечения высокой доступности.
    Retention PeriodМаксимальное время хранения логов, событий и аудита в кластере. Данные, превышающие период хранения, будут автоматически удалены.
    Совет: Вы можете создавать резервные копии данных, которые необходимо хранить длительное время. При необходимости обратитесь в техническую поддержку.
  4. Нажмите Install.

Установка Alauda Container Platform Log Storage с ElasticSearch через YAML

1. Проверка доступных версий

Убедитесь, что плагин опубликован, проверив наличие ресурсов ModulePlugin и ModuleConfig в кластере global:


# 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.nameВременное имя ModuleInfo; платформа переименует его после создания.
spec.config.clusterView.isPrivateНастройка видимости просмотра кластера.
spec.config.components.elasticsearch.addressАдрес внешнего Elasticsearch; оставьте пустым для использования Elasticsearch, установленного платформой.
spec.config.components.elasticsearch.basicAuthSecretNameИмя секрета для базовой аутентификации внешнего Elasticsearch; оставьте пустым для платформенного Elasticsearch.
spec.config.components.elasticsearch.hostpathПуть данных для Elasticsearch.
spec.config.components.elasticsearch.httpPortHTTP-порт Elasticsearch, по умолчанию 9200.
spec.config.components.elasticsearch.installУстанавливать ли Elasticsearch через платформу; установите в false при использовании внешнего Elasticsearch.
spec.config.components.elasticsearch.k8sNodesСписок IP-адресов узлов для данных Elasticsearch при использовании LocalVolume.
spec.config.components.elasticsearch.masterK8sNodesСписок IP-адресов узлов для Elasticsearch Master (только для крупномасштабных установок с LocalVolume).
spec.config.components.elasticsearch.masterReplicasКоличество реплик Elasticsearch Master (только для крупномасштабных установок).
spec.config.components.elasticsearch.masterResourcesЗапросы и лимиты ресурсов для Elasticsearch Master (только для крупномасштабных установок).
spec.config.components.elasticsearch.masterStorageSizeРазмер хранилища для Elasticsearch Master (только для крупномасштабных установок).
spec.config.components.elasticsearch.nodeReplicasКоличество реплик для данных Elasticsearch.
spec.config.components.elasticsearch.nodeStorageSizeРазмер хранилища для данных Elasticsearch (Gi).
spec.config.components.elasticsearch.resourcesЗапросы и лимиты ресурсов для данных Elasticsearch.
spec.config.components.elasticsearch.tcpPortВнутренний транспортный порт для кластера Elasticsearch, по умолчанию 9300.
spec.config.components.elasticsearch.typeРазмер кластера Elasticsearch: single/normal/big.
spec.config.components.kafka.addressАдрес внешнего Kafka; оставьте пустым для использования Kafka, установленного платформой.
spec.config.components.kafka.authВключить аутентификацию Kafka, по умолчанию true.
spec.config.components.kafka.basicAuthSecretNameИмя секрета для аутентификации внешнего Kafka; оставьте пустым для платформенного Kafka.
spec.config.components.kafka.exporterPortПорт Kafka Exporter, по умолчанию 9308.
spec.config.components.kafka.installУстанавливать ли Kafka через платформу; установите в false при использовании внешнего Kafka.
spec.config.components.kafka.k8sNodesСписок IP-адресов узлов для Kafka при использовании LocalVolume.
spec.config.components.kafka.portПорт Kafka, по умолчанию 9092.
spec.config.components.kafka.storageSizeРазмер хранилища Kafka (Gi).
spec.config.components.kafka.tlsВключить TLS для Kafka, по умолчанию true.
spec.config.components.kafka.zkElectPortПорт выборов Zookeeper, по умолчанию 3888.
spec.config.components.kafka.zkExporterPortПорт Zookeeper Exporter, по умолчанию 9141.
spec.config.components.kafka.zkLeaderPortПорт связи лидера/фолловера Zookeeper, по умолчанию 2888.
spec.config.components.kafka.zkPortКлиентский порт Zookeeper, по умолчанию 2181.
spec.config.components.kibana.installУстанавливать Kibana; Kibana устарела, установите false.
spec.config.components.storageClassConfig.nameДля LocalVolume обычно elasticsearch-local-log-sc; для StorageClass укажите имя класса.
spec.config.components.storageClassConfig.typeТип хранения: LocalVolume/StorageClass.
spec.config.components.zookeeper.storageSizeРазмер хранилища Zookeeper (Gi).
spec.config.ttl.auditКоличество дней хранения аудита.
spec.config.ttl.eventКоличество дней хранения событий.
spec.config.ttl.logKubernetesКоличество дней хранения логов Kubernetes.
spec.config.ttl.logPlatformКоличество дней хранения логов платформы.
spec.config.ttl.logSystemКоличество дней хранения системных логов.
spec.config.ttl.logWorkloadКоличество дней хранения логов workload.
spec.versionУказывает версию плагина для установки, должна совпадать с .spec.version в ModuleConfig.

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 с Clickhouse через консоль

  1. Перейдите в App Store Management > Cluster Plugin и выберите целевой кластер.

  2. На вкладке Plugins нажмите кнопку действий справа от Alauda Container Platform Log Storage with Clickhouse > Install.

  3. Следуйте инструкциям для настройки соответствующих параметров.

    ПараметрОписание
    Component installation SettingsLocalVolume: Локальное хранилище, данные логов будут храниться в локальном пути хранения выбранного узла. Преимущество этого метода — компонент логирования напрямую привязан к локальному хранилищу, что исключает необходимость доступа к хранилищу по сети и обеспечивает лучшую производительность.
    StorageClass: Динамическое создание ресурсов хранения с помощью классов хранения для сохранения данных логов. Преимущество этого метода — большая гибкость; при наличии нескольких классов хранения для всего кластера администраторы могут выбирать соответствующий класс хранения для компонентов логирования в зависимости от сценариев использования, снижая влияние сбоев хоста на хранение. Однако производительность StorageClass может зависеть от пропускной способности сети и задержек, а также опирается на механизмы избыточности, предоставляемые бекендом хранения, для обеспечения высокой доступности.
    Retention PeriodМаксимальное время хранения логов, событий и аудита в кластере. Данные, превышающие период хранения, будут автоматически удалены.
    Совет: Вы можете создавать резервные копии данных, которые необходимо хранить длительное время. При необходимости обратитесь в техническую поддержку.
  4. Нажмите Install.

Установка Alauda Container Platform Log Storage с Clickhouse через YAML

1. Проверка доступных версий

Убедитесь, что плагин опубликован, проверив наличие ресурсов ModulePlugin и ModuleConfig в кластере global:


# 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.nameИмя ModuleInfo. Рекомендуемый формат: <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.typeТип хранения данных ClickHouse: LocalVolume или StorageClass.
spec.config.components.storageClassConfig.nameИмя StorageClass при типе StorageClass; оставьте пустым для LocalVolume.
spec.config.components.clickhouse.resourcesЗапросы и лимиты ресурсов для ClickHouse.
spec.config.components.clickhouse.k8sNodesСписок IP-адресов узлов для ClickHouse при использовании LocalVolume.
spec.config.components.clickhouse.hostpathЛокальный путь для данных ClickHouse при использовании LocalVolume.
spec.config.components.clickhouse.nodeReplicasКоличество реплик при использовании StorageClass.
spec.config.components.clickhouse.nodeStorageSizeРазмер хранилища для данных ClickHouse (Gi).
spec.config.components.clickhouse.typeРазмер кластера: single, normal или big.
spec.config.components.razor.resourcesЗапросы и лимиты ресурсов для Razor.
spec.config.components.vector.resourcesЗапросы и лимиты ресурсов для Vector.
spec.config.ttl.auditКоличество дней хранения аудита.
spec.config.ttl.eventКоличество дней хранения событий.
spec.config.ttl.logKubernetesКоличество дней хранения логов Kubernetes.
spec.config.ttl.logPlatformКоличество дней хранения логов платформы.
spec.config.ttl.logSystemКоличество дней хранения системных логов.
spec.config.ttl.logWorkloadКоличество дней хранения логов workload.
spec.versionУказывает версию плагина для установки, должна совпадать с .spec.version в ModuleConfig.

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. Перейдите в App Store Management > Cluster Plugin и выберите целевой кластер.

  2. На вкладке Plugins нажмите кнопку действий справа от Alauda Container Platform Log Collector > Install.

  3. Выберите Storage Cluster (кластер, в котором установлен Alauda Container Platform Log Storage) и нажмите Select/Deselect для выбора типов логов, которые будут собираться в кластере.

  4. Нажмите Install.

Установка плагина Alauda Container Platform Log Collector через YAML

1. Проверка доступных версий

Убедитесь, что плагин опубликован, проверив наличие ресурсов ModulePlugin и ModuleConfig в кластере global:


# 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-nameJSON-строка с интернационализированным именем плагина.
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.nameВременное имя ModuleInfo; платформа переименует его после создания.
spec.config.crossClusterDependency.logcenterИмя кластера хранения логов на базе Elasticsearch.
spec.config.crossClusterDependency.logclickhouseУстановите null при использовании Elasticsearch; иначе имя кластера 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Собирать логи workload.
spec.config.storage.typeElasticsearch или Clickhouse.
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