Где находятся логи приложения

Общая информация

В Kubernetes приложение Zakroma работает в контейнерах. Логи сервисов не пишутся в локальные файлы, а отправляются в стандартный вывод (stdout и stderr).
Благодаря этому их можно просматривать и собирать с помощью встроенных инструментов kubectl, либо через систему централизованного логирования.

Доступ к логам

Для получения логов используется команда kubectl logs.

Примеры:

1# Логи подов zakroma-storage-gateway 2kubectl -n zakroma-storage logs deployment/zakroma-storage-gateway 3 4# Логи подов zakroma-storage-core 5kubectl -n zakroma-storage logs deployment/zakroma-storage-core 6 7# Логи пода zds-0 8kubectl -n dev-zakroma-storage-zds logs pod/zds-0

При необходимости можно добавить опцию -f для «живого» просмотра:

1kubectl -n zakroma-storage logs -f deployment/zakroma-storage-core

Централизованный сбор

Рекомендуется использовать DaemonSet-агент (например, Fluent Bit, Vector или Filebeat) для доставки логов из stdout/stderr в централизованное хранилище (Loki, Elasticsearch, OpenSearch).

В таком случае доступ к логам осуществляется через UI (Grafana/Kibana) или через API хранилища логов.

Ротация и хранение

  • Ротация логов контейнеров осуществляется самим Kubernetes/CRI (containerd/docker).
  • Параметры хранения задаются на уровне ноды (/var/log/containers и /var/log/pods) и ограничены настройками kubelet/containerd (например, log-rotation-size, log-rotation-max-files).
  • В продуктиве рекомендуется централизованный сбор, т.к. локальные контейнерные логи ограничены по размеру и времени.