• Русский
  • Развертывание с использованием Operator

    Чтобы включить непрерывный сбор сетевых потоков, вам потребуются:

    1. Доступный сервер ClickHouse для хранения журналов потоков
    2. NetObserv Operator
    3. Экземпляр FlowCollector

    Backend ClickHouse можно подготовить одним из следующих способов:

    • Использовать существующий сервер ClickHouse и указать сведения о подключении в конфигурации FlowCollector
    • Развернуть новый экземпляр ClickHouse в кластере с помощью ClickHouse Operator

    Выберите вариант развертывания ClickHouse

    Выберите один из следующих подходов, прежде чем создавать экземпляр FlowCollector:

    • Существующий сервер ClickHouse: используйте этот вариант, если у вас уже есть развертывание ClickHouse, к которому может получить доступ FlowCollector.
    • Новый экземпляр ClickHouse в кластере: используйте этот вариант, если вы хотите развернуть ClickHouse в кластере с помощью ClickHouse Operator.

    Если вы используете существующий сервер ClickHouse, заранее подготовьте следующие значения:

    • Адрес сервиса ClickHouse в формате host:port
    • Имя базы данных для журналов потоков
    • Имя пользователя и пароль для аутентификации ClickHouse
    • Namespace, который будет использоваться в .spec.namespace FlowCollector

    Необязательно: разверните ClickHouse с помощью ClickHouse Operator

    Если у вас уже есть сервер ClickHouse для NetObserv, пропустите этот раздел и перейдите к Установке NetObserv Operator.

    Установите ClickHouse Operator

    1. Перейдите в Администратор > Marketplace > OperatorHub.

    2. Найдите "ClickHouse" и выберите ClickHouse Operator, предоставляемый .

    3. Если статус ClickHouse Operator — Absent, загрузите пакет ClickHouse Operator, который вы скачали из Customer Portal.

    4. Щелкните ClickHouse Operator, чтобы открыть страницу с подробной информацией.

    5. На странице с подробной информацией об операторе нажмите Install.

    6. Заполните параметры конфигурации по мере необходимости.

    7. Нажмите Install, чтобы начать установку.

    8. Подтвердите установку, нажав Confirm во всплывающем диалоговом окне.

    9. Дождитесь завершения установки.

    NOTE

    Если ClickHouse Operator, предоставляемый , уже установлен, пропустите этот раздел и сразу перейдите к созданию кластера ClickHouse для NetObserv.

    Создайте экземпляр ClickHouseInstallation

    1. На странице сведений о ClickHouse Operator перейдите на страницу All Instances и нажмите Create.

    2. Во всплывающем диалоговом окне нажмите Create в разделе ClickHouseInstallation.

    3. На странице Create ClickHouseInstallation нажмите YAML в правом верхнем углу, чтобы переключиться в режим редактирования YAML.

    4. При необходимости отредактируйте YAML-файл и нажмите Create, чтобы создать экземпляр ClickHouseInstallation.

    Пример YAML для ClickHouseInstallation:

    apiVersion: clickhouse.altinity.com/v1
    kind: ClickHouseInstallation
    metadata:
      name: netobserv
      namespace: cpaas-system
    spec:
      configuration:
        files:
          disable-trace-log: |
            <clickhouse>
              <trace_log remove="remove"/>
              <query_thread_log remove="remove"/>
              <query_log remove="remove"/>
              <text_log remove="remove"/>
              <metric_log remove="remove"/>
              <asynchronous_metric_log remove="remove"/>
              <part_log remove="remove"/>
            </clickhouse>
        clusters:
          - layout:
              replicasCount: 1
              shardsCount: 1
            name: replicated
        users:
          clickhouse_root/networks/ip:
            - 127.0.0.1
            - 0.0.0.0/0
            - ::/0
          clickhouse_root/password_sha256_hex: <SHA256_HEX_PASSWORD>
      defaults:
        templates:
          dataVolumeClaimTemplate: default
          logVolumeClaimTemplate: log-volume-template
          podTemplate: clickhouse:25.8
      templates:
        podTemplates:
          - name: clickhouse:25.8
            podDistribution:
              - type: ShardAntiAffinity
            spec:
              containers:
                - command:
                    - clickhouse-server
                    - --config-file=/etc/clickhouse-server/config.xml
                  env:
                    - name: CLICKHOUSE_DO_NOT_CHOWN
                      value: "1"
                  image: build-harbor.alauda.cn/middleware/clickhouse-server:v25.8.16.34-61a7880e
                  name: clickhouse-pod
                  resources:
                    limits:
                      cpu: "2"
                      memory: 4Gi
                    requests:
                      cpu: "1"
                      memory: 2Gi
                  securityContext:
                    readOnlyRootFilesystem: true
              securityContext:
                fsGroup: 101
                runAsGroup: 101
                runAsNonRoot: true
                runAsUser: 101
        volumeClaimTemplates:
          - name: default
            spec:
              storageClassName: sc-topolvm
              accessModes:
                - ReadWriteOnce
              resources:
                requests:
                  storage: 80Gi
          - name: log-volume-template
            spec:
              storageClassName: sc-topolvm
              accessModes:
                - ReadWriteOnce
              resources:
                requests:
                  storage: 15Gi

    После того как экземпляр ClickHouse будет готов, получите конечную точку сервиса, проверив поле .status.endpoint экземпляра ClickHouseInstallation. Также можно выполнить следующую команду, чтобы получить конечную точку:

    kubectl -n cpaas-system get chi netobserv -o jsonpath="{.status.endpoint}"

    cpaas-system и netobserv в команде должны соответствовать namespace и имени экземпляра ClickHouseInstallation соответственно. Если вы используете другой namespace или имя, замените cpaas-system и netobserv в команде соответствующим образом.

    Запишите адрес конечной точки ClickHouse и учетные данные для дальнейшего использования. Эта информация потребуется при создании экземпляра FlowCollector.

    Установите NetObserv Operator

    1. Перейдите в Администратор > Marketplace > OperatorHub.

    2. Найдите "Alauda Container Platform Network Observability Operator".

    3. Нажмите Install, чтобы открыть страницу конфигурации установки.

    4. Заполните параметры конфигурации по мере необходимости.

    5. Нажмите Install, чтобы начать установку.

    6. Подтвердите установку, нажав Confirm во всплывающем диалоговом окне.

    7. Дождитесь завершения установки.

    Создайте Secret для аутентификации ClickHouse

    Перед созданием экземпляра FlowCollector создайте Kubernetes secret для аутентификации ClickHouse.

    На этот secret ссылается .spec.clickhouse.authSecret.name в конфигурации FlowCollector.

    1. Создайте локальный файл с именем ck-auth.env со следующим содержимым:

      username=<USERNAME>
      password=<PASSWORD>
    2. Создайте Kubernetes secret:

      # Create namespace if it does not exist
      test ! -n "$(kubectl get ns netobserv --ignore-not-found -o name)" && kubectl create ns netobserv
      # Create the secret from the environment file
      kubectl -n netobserv create secret generic ck-auth --from-env-file=./ck-auth.env

    В этой команде netobserv должен соответствовать значению .spec.namespace в конфигурации FlowCollector.

    Если вы используете другой namespace в конфигурации FlowCollector, замените netobserv в команде соответствующим образом.

    Создайте экземпляр FlowCollector

    Перед созданием экземпляра FlowCollector убедитесь, что:

    • Сервер ClickHouse доступен из кластера
    • Secret ck-auth существует в namespace, указанном в .spec.namespace
    • Адрес ClickHouse, база данных и учетные данные указаны верно

    Затем создайте экземпляр FlowCollector:

    1. Перейдите на страницу All Instances и нажмите Create.

    2. Во всплывающем диалоговом окне нажмите Create в разделе FlowCollector.

    3. На странице Create FlowCollector нажмите YAML в правом верхнем углу, чтобы переключиться в режим редактирования YAML.

    4. При необходимости отредактируйте YAML-файл и нажмите Create, чтобы создать экземпляр FlowCollector.

    Пример YAML для FlowCollector:

    apiVersion: flows.netobserv.io/v1beta2
    kind: FlowCollector
    metadata:
      name: cluster
    spec:
      agent:
        ebpf:
          features:
            - DNSTracking
            - FlowRTT
            - PacketTranslation
            - TLSTracking
          metrics:
            enable: false
          sampling: 50
        type: eBPF
      clickhouse:
        addresses:
          - clickhouse-netobserv.cpaas-system.svc.cluster.local:9000
        authSecret:
          name: ck-auth
        database: netobserv
        enable: true
        protocol: native
        readTimeout: 30s
        retention: 24h
        writeBatchSize: 128
        writeBatchWait: 1s
        writeTimeout: 10s
      deploymentModel: Service
      namespace: netobserv
      processor:
        consumerReplicas: 1
        logTypes: Flows
        service:
          tlsType: Disabled
    1. Включенные возможности агента eBPF.
    2. Интервал выборки eBPF-пробы. Значение 100 означает, что отбирается 1 пакет из каждых 100. Значение 0 или 1 означает, что отбираются все пакеты.
    3. Адреса сервера ClickHouse. Используйте формат host:port. Эти адреса могут указывать на экземпляр ClickHouse, созданный в кластере, или на существующий внешний сервер ClickHouse.
    4. Secret для аутентификации ClickHouse. Secret ДОЛЖЕН содержать два ключа: username и password. Secret должен быть создан в том же namespace, который указан в .spec.namespace.
    5. Имя базы данных в ClickHouse для хранения журналов потоков. Если база данных не существует, она будет создана автоматически.
    6. Период хранения данных в ClickHouse. Используйте число, за которым следует единица времени, например 24h. Эта настройка вступает в силу только при создании таблицы ClickHouse.
    7. Namespace, в котором развертываются агенты eBPF и конвейер журналов потоков.
    8. Количество реплик для конвейера журналов потоков.

    Если вы используете существующий сервер ClickHouse, убедитесь, что FlowCollector может получить доступ к адресу сервера и что указанный secret содержит действительные учетные данные.

    После создания экземпляра FlowCollector агенты eBPF и конвейер журналов потоков развертываются в namespace, указанном в .spec.namespace.