Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for Kubernetes
  • Сопоставление с другими сервисами Yandex Cloud
  • Начало работы
    • Все руководства
    • Создание нового Kubernetes-проекта в Yandex Cloud
    • Создание кластера Kubernetes без доступа в интернет
    • Запуск рабочих нагрузок с GPU
    • Использование групп узлов c GPU без предустановленных драйверов
    • Установка Time-Slicing GPUs
    • Миграция ресурсов в другую зону доступности
    • Использование модулей Yandex Cloud в Terraform
    • Шифрование секретов в Managed Service for Kubernetes
      • Интеграция с Argo CD
      • Интеграция с Crossplane
      • Синхронизация с секретами Yandex Lockbox
      • Настройка Fluent Bit для работы с Cloud Logging
      • Настройка Gateway API
      • Настройка L7-балансировщика Application Load Balancer с помощью Ingress-контроллера
      • Настройка логирования для L7-балансировщика Application Load Balancer с помощью Ingress-контроллера
      • Создание L7-балансировщика с профилем безопасности Smart Web Security через Ingress-контроллер Application Load Balancer
      • Проверка состояния приложений в кластере Managed Service for Kubernetes с помощью L7-балансировщика Application Load Balancer
      • Использование Jaeger для трассировки запросов в Managed Service for YDB
      • Настройка Kyverno & Kyverno Policies
      • Использование Metrics Provider для трансляции метрик
      • Редактирование изображений для сайтов с помощью Thumbor
      • Использование Istio
      • Использование HashiCorp Vault для хранения секретов
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Обучающие курсы

В этой статье:

  • Необходимые платные ресурсы
  • Перед началом работы
  • Установите и настройте Fluent Bit
  • Установка Fluent Bit для сбора логов подов и сервисов
  • Установка Fluent Bit для сбора логов подов, сервисов и системных логов узлов
  • Проверьте результат
  • Удалите созданные ресурсы
  1. Практические руководства
  2. Использование продуктов Cloud Marketplace
  3. Настройка Fluent Bit для работы с Cloud Logging

Настройка Fluent Bit для работы с Yandex Cloud Logging

Статья создана
Yandex Cloud
Обновлена 28 марта 2025 г.
  • Необходимые платные ресурсы
  • Перед началом работы
  • Установите и настройте Fluent Bit
    • Установка Fluent Bit для сбора логов подов и сервисов
    • Установка Fluent Bit для сбора логов подов, сервисов и системных логов узлов
  • Проверьте результат
  • Удалите созданные ресурсы

Примечание

Включить отправку логов мастера Managed Service for Kubernetes в Cloud Logging можно с помощью настройки master logging при создании или изменении кластера. Настройка доступна только через API, CLI и Terraform. Подробнее см. в руководстве Передача логов кластера Managed Service for Kubernetes в Cloud Logging.

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

Чтобы настроить передачу логов подов, сервисов и системных логов узлов Yandex Managed Service for Kubernetes в Yandex Cloud Logging:

  1. Установите и настройте Fluent Bit.
  2. Проверьте результат.

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

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки описываемого решения входят:

  • Плата за кластер Managed Service for Kubernetes: использование мастера и исходящий трафик (см. тарифы Managed Service for Kubernetes).
  • Плата за узлы кластера (ВМ): использование вычислительных ресурсов, операционной системы и хранилища (см. тарифы Compute Cloud).
  • Плата за публичный IP-адрес, если он назначен узлам кластера (см. тарифы Virtual Private Cloud).
  • Плата за сервис Cloud Logging: запись и хранение данных (см. тарифы Cloud Logging).

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

Подготовьте инфраструктуру:

Вручную
Terraform
  1. Если у вас еще нет сети, создайте ее.

  2. Если у вас еще нет подсетей, создайте их в зонах доступности, где будут созданы кластер Managed Service for Kubernetes и группа узлов.

  3. Создайте сервисные аккаунты для Managed Service for Kubernetes:

    • Сервисный аккаунт для ресурсов Managed Service for Kubernetes с ролями k8s.clusters.agent и vpc.publicAdmin на каталог, в котором создается кластер Managed Service for Kubernetes.
    • Сервисный аккаунт для узлов Managed Service for Kubernetes с ролью container-registry.images.puller на каталог с реестром Docker-образов. От его имени узлы Managed Service for Kubernetes будут скачивать из реестра необходимые Docker-образы.

    Совет

    Вы можете использовать один и тот же сервисный аккаунт для обеих операций.

  4. Создайте сервисный аккаунт для Cloud Logging с ролями logging.writer и monitoring.editor. Он будет использоваться для работы Fluent Bit.

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

  6. Создайте группы безопасности для кластера Managed Service for Kubernetes и входящих в него групп узлов.

    Важно

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

  7. Создайте кластер Managed Service for Kubernetes и группу узлов. При создании кластера Managed Service for Kubernetes укажите ранее созданные сервисные аккаунты для ресурсов и узлов и группы безопасности.

  8. Создайте лог-группу.

  1. Если у вас еще нет Terraform, установите его.

  2. Скачайте файл с настройками провайдера. Поместите его в отдельную рабочую директорию и укажите значения параметров.

  3. Скачайте в ту же рабочую директорию файл конфигурации кластера Managed Service for Kubernetes k8s-cluster-with-log-group.tf.

    В этом файле описаны:

    • Сеть.

    • Подсеть.

    • Лог-группа Cloud Logging.

    • Кластер Managed Service for Kubernetes.

    • Группа узлов Managed Service for Kubernetes.

    • Сервисный аккаунт для ресурсов и узлов Managed Service for Kubernetes.

    • Сервисный аккаунт для Cloud Logging.

    • Группы безопасности, которые содержат необходимые правила для кластера Managed Service for Kubernetes и входящих в него групп узлов.

      Важно

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

  4. Укажите в файле конфигурации:

    • Идентификатор каталога.
    • Версию Kubernetes для кластера Managed Service for Kubernetes и групп узлов.
    • Имя сервисного аккаунта для ресурсов и узлов Managed Service for Kubernetes.
    • Имя сервисного аккаунта для Cloud Logging.
    • Имя лог-группы Cloud Logging.
  5. Выполните команду terraform init в директории с конфигурационными файлами. Эта команда инициализирует провайдер, указанный в конфигурационных файлах, и позволяет работать с ресурсами и источниками данных провайдера.

  6. Проверьте корректность файлов конфигурации Terraform с помощью команды:

    terraform validate
    

    Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  7. Создайте необходимую инфраструктуру:

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

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

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

Выберите вариант установки Fluent Bit в зависимости от того, какие логи вы хотите собирать и передавать в Cloud Logging:

  • Собирать только логи подов и сервисов Managed Service for Kubernetes.
  • Собирать логи подов, сервисов и системные логи узлов Managed Service for Kubernetes.

Установка Fluent Bit для сбора логов подов и сервисовУстановка Fluent Bit для сбора логов подов и сервисов

С помощью Yandex Cloud Marketplace
Вручную

Установите Fluent Bit согласно инструкции. В настройках приложения укажите идентификатор созданной ранее лог-группы. Идентификатор лог-группы можно получить со списком лог-групп в каталоге.

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

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

    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
    
  3. Создайте секрет, который содержит ключ сервисного аккаунта для Cloud Logging, созданного ранее:

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

    wget https://raw.githubusercontent.com/knpsh/yc-logging-fluent-bit-example/main/config.yaml
    
  5. Укажите идентификатор созданной ранее лог-группы и опционально идентификатор кластера в секции [OUTPUT] файла config.yaml:

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

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

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

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

    kubectl apply -f config.yaml
    

    Результат:

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

    kubectl get pods -n logging
    

Установка Fluent Bit для сбора логов подов, сервисов и системных логов узловУстановка Fluent Bit для сбора логов подов, сервисов и системных логов узлов

С помощью Helm
Вручную
  1. Установите kubectl и настройте его на работу с созданным кластером.

  2. Установите менеджер пакетов Helm версии не ниже 3.8.0.

  3. Скачайте файл конфигурации Fluent Bit systemd.yaml.

  4. Для установки Helm-чарта с Fluent Bit выполните команду:

    cat key.json | helm registry login cr.yandex --username 'json_key' --password-stdin && \
    helm pull oci://cr.yandex/yc-marketplace/yandex-cloud/fluent-bit/fluent-bit \
      --version 2.1.7-3 \
      --untar && \
    helm install -f <путь_к_файлу_systemd.yaml>\
      --namespace <пространство_имен> \
      --create-namespace \
      --set loggingGroupId=<идентификатор_лог-группы> \
      --set loggingFilter=<идентификатор_кластера> \
      --set-file auth.json=key.json \
      fluentbit ./fluent-bit/
    

    Актуальную версию Helm-чарта см. на странице Yandex Cloud Marketplace.

    Команда создаст новое пространство имен, необходимое для работы Fluent Bit.

    Примечание

    Если вы используете версию Helm ниже 3.8.0, добавьте в начало команды строку export HELM_EXPERIMENTAL_OCI=1 && \, чтобы включить поддержку Open Container Initiative (OCI) в клиенте Helm.

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

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

    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
    
  3. Создайте секрет, который содержит ключ сервисного аккаунта для Cloud Logging, созданного ранее:

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

  5. Укажите идентификатор созданной ранее лог-группы в секциях [OUTPUT] файла config.yaml:

    ...
    output-elasticsearch.conf: |
      [OUTPUT]
        Name            yc-logging
        Match           kube.*
        group_id        <идентификатор_лог-группы>
        resource_type   {kubernetes/namespace_name}
        resource_id     {kubernetes/pod_name}
        stream_name     {kubernetes/host}
        message_key     log
        level_key       severity
        default_level   INFO
        authorization   iam-key-file:/etc/secret/key.json
    
      [OUTPUT]
        Name            yc-logging
        Match           host.*
        group_id        <идентификатор_лог-группы>
        resource_type   systemd
        resource_id     {_SYSTEMD_UNIT}
        stream_name     {_HOSTNAME}
        message_key     MESSAGE
        level_key       SEVERITY
        default_level   INFO
        authorization   iam-key-file:/etc/secret/key.json
    ...
    

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

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

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

    kubectl apply -f config.yaml
    

    Результат:

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

    kubectl get pods -n logging
    

Проверьте результатПроверьте результат

Проверьте передачу логов подов и сервисов Managed Service for Kubernetes в лог-группу Cloud Logging.

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

Некоторые ресурсы платные. Чтобы за них не списывалась плата, удалите ресурсы, которые вы больше не будете использовать:

Вручную
Terraform
  1. Удалите кластер Managed Service for Kubernetes.
  2. Если вы зарезервировали для кластера Managed Service for Kubernetes статический публичный IP-адрес, освободите и удалите его.
  3. Удалите созданные подсети и сети.
  4. Удалите созданные сервисные аккаунты.
  5. Удалите лог-группу.
  1. В командной строке перейдите в директорию, в которой расположен актуальный конфигурационный файл Terraform с планом инфраструктуры.

  2. Удалите конфигурационный файл k8s-cluster-with-log-group.tf.

  3. Проверьте корректность файлов конфигурации Terraform с помощью команды:

    terraform validate
    

    Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    Все ресурсы, которые были описаны в конфигурационном файле k8s-cluster-with-log-group.tf, будут удалены.

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

Предыдущая
Синхронизация с секретами Yandex Lockbox
Следующая
Настройка Gateway API
Проект Яндекса
© 2025 ООО «Яндекс.Облако»