Ответ
Срок хранения логов определяется компромиссом между стоимостью, требованиями compliance и оперативными нуждами. В моей практике я настраивал многоуровневое хранение:
- Горячие данные (7-15 дней): Логи хранятся в быстром сторадже (например, в самом Loki или Elasticsearch) для оперативного поиска и дебага текущих проблем.
- Холодные данные (30-90 дней): Логи архивируются в объектное хранилище (S3, GCS) с более низкой стоимостью. Доступ к ним возможен, но с задержкой. Это нужно для расследования инцидентов, обнаруженных постфактум.
- Долгосрочный архив (1+ год): Для выполнения регуляторных требований (например, финансового сектора) критичные логи аудита могут храниться в дешевом архиве и шифроваться.
Пример конфигурации retention в Grafana Loki:
# config.yaml
limits_config:
retention_period: 720h # 30 дней для всех потоков логов
storage_config:
aws:
s3: s3://my-bucket/loki-chunks
boltdb_shipper:
active_index_directory: /loki/index
shared_store: s3
# Хранить индекс 30 дней, после чего данные становятся "холодными"
retention_deletes_enabled: true
retention_period: 720h
Ключевой принцип — политики хранения должны быть декларативно описаны в коде (как часть инфраструктуры) и применяться единообразно ко всем сервисам.