Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Cloud Logging
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Добавление записей
    • Чтение записей
    • Управление лог-группой
      • Создание лог-группы
      • Управление правами доступа к лог-группе
      • Изменение срока хранения записей
      • Получение списка лог-групп
      • Мониторинг
      • Удаление лог-группы
  • Практические руководства
    • Все руководства
    • Передача логов кластера Yandex Managed Service for Kubernetes в Cloud Logging
    • Передача логов с ВМ в Cloud Logging
    • Передача логов с COI в Cloud Logging
    • Репликация логов в Object Storage с помощью Fluent Bit
  • Концепции
    • Лог-группа
    • Язык фильтрующих выражений
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • LogGroupService
      • LogIngestionService
      • LogReadingService
      • OperationService
    • REST (англ.)
      • Overview
      • LogGroup
        • Overview
        • create
        • delete
        • get
        • list
        • listAccessBindings
        • listOperations
        • listResources
        • setAccessBindings
        • stats
        • update
        • updateAccessBindings
  • Вопросы и ответы
  1. Практические руководства
  2. Передача логов кластера Yandex Managed Service for Kubernetes в Cloud Logging

Передача логов кластера Yandex Managed Service for Kubernetes в Cloud Logging

Статья создана
Yandex Cloud
  • Перед началом работы
  • Установите и настройте Fluent Bit
  • Удалите созданные ресурсы

Обработчик логов Fluent Bit позволяет транслировать логи кластера Managed Service for Kubernetes в сервис Yandex Cloud Logging. Для передачи логов используется модуль Fluent Bit plugin for Yandex Cloud Logging.

Чтобы настроить передачу логов:

  1. Подготовьте кластер Kubernetes.
  2. Установите и настройте Fluent Bit.

Перед началом работы

  1. Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

    По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

  2. Создайте сервисный аккаунт, необходимый для работы Fluent Bit.

    1. Назначьте ему роль logging.writer.

    2. Создайте для него авторизованный ключ и сохраните его в файл key.json:

      yc iam key create \
        --service-account-name <имя сервисного аккаунта для Fluent Bit> \
        --output key.json
      
  3. Создайте лог-группу.

  4. Создайте кластер Kubernetes и группу узлов любой подходящей конфигурации с версией Kubernetes не ниже 1.21.

  5. Установите kubectl и настройте его на работу с созданным кластером.

Установите и настройте Fluent Bit

С помощью Yandex Cloud
Вручную
  1. Установите Fluent Bit согласно инструкции.
  2. Проверьте передачу логов кластера Kubernetes в Cloud Logging.
  1. Создайте объекты, необходимые для работы Fluent Bit:

    • Для кластеров с версией Kubernetes до 1.21 включительно:

      kubectl create namespace logging && \
      kubectl create -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/fluent-bit-service-account.yaml && \
      kubectl create -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/fluent-bit-role.yaml && \
      kubectl create -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/fluent-bit-role-binding.yaml
      
    • Для кластеров с версией Kubernetes с 1.22 и выше:

      kubectl create namespace logging && \
      kubectl create -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/fluent-bit-service-account.yaml && \
      kubectl create -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/fluent-bit-role-1.22.yaml && \
      kubectl create -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/fluent-bit-role-binding-1.22.yaml
      
  2. Создайте секрет, содержащий ключ сервисного аккаунта:

    kubectl create secret generic secret-key-json \
      --from-file=key.json \
      --namespace logging
    
  3. Скачайте конфигурационный файл config.yaml:

wget https://raw.githubusercontent.com/knpsh/yc-logging-fluent-bit-example/main/config.yaml
  1. Укажите параметры трансляции логов в блоке data.output-elasticsearch.conf файла config.yaml:

    ...
      output-elasticsearch.conf: |
        [OUTPUT]
          Name            yc-logging
          Match           *
          group_id        <идентификатор лог-группы>
          resource_id     <опционально: идентификатор кластера Kubernetes>
          message_key     log
          authorization   iam-key-file:/etc/secret/key.json
    ...
    

    Идентификатор лог-группы можно получить со списком лог-групп в каталоге.

    При необходимости укажите дополнительные настройки Fluent Bit.

  2. Создайте объекты Fluent Bit:

    kubectl apply -f config.yaml
    

    Результат:

    configmap/fluent-bit-config created
    daemonset.apps/fluent-bit created
    
  3. Убедитесь, что под Fluent Bit перешел в состояние Running:

    kubectl get pods -n logging
    
  4. Проверьте передачу логов кластера Kubernetes в Cloud Logging.

Удалите созданные ресурсы

Если созданные ресурсы вам больше не нужны, удалите их:

  1. Удалите кластер Managed Service for Kubernetes.
  2. Если вы зарезервировали для кластера публичный статический IP-адрес, удалите его.
  3. Удалите лог-группу.

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Перед началом работы
  • Установите и настройте Fluent Bit
  • Удалите созданные ресурсы