Logging Stack
Stackland позволяет собирать логи кластера с помощью опенсорс-инструментов:
- Loki
— средство централизованного сбора и хранения логов. - Fluent Bit
— средство поставки логов. - Grafana
— интерфейс для просмотра логов.
Вы можете управлять хранением и поставкой логов с помощью значений параметров кастомного ресурса LoggingConfig.
Просмотр логов в Grafana
Интерфейс Grafana доступен по адресу https://grafana.sys.<домен кластера>. Для входа используйте кнопку Sign in with Stackland Auth.
К интерфейсу по умолчанию подключены Loki и Fluent Bit. Чтобы начать просмотр логов в Grafana, создайте запрос на сбор логов в разделе Explore.
Хранение логов
В кастомном ресурсе можно выбрать средство сбора логов, задать период хранения и подключить постоянный том для хранения. Каждое средство сбора логов можно настроить дополнительно.
Отправка логов
В кастомном ресурсе можно задать интервал отправки логов и размер буфера. По умолчанию включена интеграция Fluent Bit с Loki в параметре defaultOutput.
Конфигурация
Пример:
apiVersion: stackland.yandex.cloud/v1alpha1
kind: LoggingConfig
metadata:
name: main # Поле обязательно и должно иметь значение main
spec:
enabled: true
settings:
logStorage: # Настройки хранения
backend: loki
replicas: 1
resources:
limits:
cpu: "1"
memory: 2Gi
requests:
cpu: 500m
memory: 1Gi
storage:
enabled: true
storageClass: ssd
size: 50Gi
retentionPeriod: 7d
loki:
limitsConfig:
maxLabelNamesPerSeries: 20
compactor:
retentionEnabled: true
retentionDeleteDelay: 24h
logSender: # Настройки поставки
backend: fluent-bit
flushInterval: 5
bufferSize: 64MB
resources:
limits:
cpu: 200m
memory: 200Mi
requests:
cpu: 100m
memory: 100Mi
fluentBit:
logLevel: info
tenantId: prod-team
defaultOutput: true
status: ... # Блок генерируется автоматически
Параметры хранения
Пример:
logStorage:
backend: loki
replicas: 1
resources:
requests:
memory: 512Mi
cpu: 200m
limits:
memory: 1Gi
cpu: 500m
storage:
enabled: true
storageClass: ssd
size: 50Gi
retentionPeriod: 7d
loki:
limitsConfig:
maxLabelNamesPerSeries: 20
compactor:
retentionEnabled: true
retentionDeleteDelay: 24h
backend— указывает тип используемого хранилища логов.replicas— задает количество реплик пода.resources— ограничивает ресурсы (CPU и память) для пода.storage— определяет настройки постоянного тома для хранения логов.retentionPeriod— задает период хранения логов.loki— определяет расширенные настройки для Loki.
Параметры поставки логов
Пример:
logSender:
backend: fluent-bit
flushInterval: 5
bufferSize: 64MB
resources:
requests:
memory: 128Mi
cpu: 50m
limits:
memory: 256Mi
cpu: 100m
fluentBit:
logLevel: info
tenantId: prod-team
defaultOutput: true
backend— указывает тип используемого агента для поставки логов.flushInterval— задает интервал в секундах, с которым Fluent Bit отправляет собранные логи в хранилище (например, Loki).bufferSize— определяет максимальный объем памяти, выделяемый Fluent Bit для буферизации логов перед отправкой.resources— ограничивает ресурсы (CPU и память) для пода.fluentBit— определяет расширенные настройки для Fluent Bit.