Kubernetes
December 11, 2022

Централизованное хранение логов

Для централизованного хранения логов кластера Kubernetes можно использовать разные решения. Например, кластер ClickHouse, Elasticsearch или Loki. Здесь же мы разберём стандартное хранилище для логов в YC - сервис Cloud Logging.

Создаём для начала лог группу.

export FOLDER=$(yc config get folder-id)
yc logging group create \
--folder-id $FOLDER \
--name institute \
--description "k8s" \
--retention-period=1h \
--async

Создали.

yc logging group get institute
id: e23krd6rc4748kpj7r1b
created_at: "2022-12-11T19:48:52.011Z"
name: pguti
description: k8s
status: ACTIVE
retention_period: 3600s

Воспользуемся маркетплейсом кубера. Выбираем там Fluent Bit с плагином для Cloud Logging.

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

  1. Имя приложения;
  2. namespace=kube-system;
  3. Идентификатор лог группы, в которую будет происходить запись (тут выберем institute);
  4. Ключ SA. Всё содержимое файла key.json (включая открывающую и закрывающую фигурные скобки). Файл key.json мы создали сразу после создания сервисного аккаунта в основном мануале;
  5. Бакет для хранения логов не будем использовать.

Посмотрим, что там в лог группе понабежало:

yc logging read --group-name=institute --format=json

Логи будут хорошо накидываться! :-)