Yandex Marketplace
November 12, 2022

Установка Fluent Bit с плагином для CL в Marketplace k8s и через Helm

Fluent Bit — это многоплатформенный инструмент с открытым исходным кодом для сбора и обработки логов. Fluent Bit собирает, парсит и фильтрует сообщения из различных источников ввода и сохраняет их в хранилище. После успешного сохранения сообщения поступают из хранилища в маршрутизатор, который определяет, в какой выход их отправить. Для работы с различными источниками ввода и выходами используются плагины.

Для работы плагина потребуются настроенные ресурсы:

  1. Настроенный SA. Вот пример настройки: https://teletype.in/@cameda/w93lPMPQWS4
  2. Созданная лог группа: https://teletype.in/@cameda/c9KxDqigvib
  3. Если планируется использовать ещё бакет для хранения логов, то нужен ещё и бакет.

Все ключи доступа для SA должны быть в формате .json.

При инсталляции указываем:

  1. Имя приложения;
  2. namespace;
  3. Идентификатор лог группы, в которую будет происходить запись;
  4. Ключ SA. Всё содержимое файла key.json;
  5. Имя бакета, если включена опция хранения в бакете логов;
  6. Статический ключ доступа к бакету. Всё содержимое файла stat-key-to-s3.json

После перехода приложения в соcтояние RUNNING отправка логов начинается.

Установка Fluent Bit через Helm.

key.json - файл с ключом SA.

# Если ранее не ставили и не удаляли
export HELM_EXPERIMENTAL_OCI=1 && \
export logging_groupID=<LOG_GROUP_ID> && \
export k8s_clusterID=<CLUSTER_ID> && \
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-cloud-logging --version 1.0-7 && \
helm install --namespace default --set loggingGroupId=$logging_groupID --set loggingFilter=$k8s_clusterID --set-file auth.json=key.json \
fluentbit ./fluent-bit-cloud-logging/
# Если ранее ставили
export HELM_EXPERIMENTAL_OCI=1 && \
export logging_groupID=<LOG_GROUP_ID> && \
export k8s_clusterID=<CLUSTER_ID> && \
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-cloud-logging --version 1.0-7 && --untar \
helm install --namespace default --set loggingGroupId=$logging_groupID --set loggingFilter=$k8s_clusterID --set-file auth.json=key.json \
fluentbit ./fluent-bit-cloud-logging/
helm list
NAME                  	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART                                  	APP VERSION
fluentbit             	default  	1       	2023-04-20 13:23:42.184569 +0300 MSK   	deployed	fluent-bit-cloud-logging-1.0-7         	2.0.3

Удаление Fluent Bit через Helm.

helm uninstall fluentbit

Полезные ссылки.

Подробно про установку:
https://cloud.yandex.ru/docs/managed-kubernetes/operations/applications/fluentbit
Ссылка на github проекта: https://github.com/yandex-cloud/fluent-bit-plugin-yandex

Helm версия проекта: https://cloud.yandex.ru/marketplace/products/yc/fluent-bit#docker-images