Сколько времени вы храните логи в системах мониторинга?

«Сколько времени вы храните логи в системах мониторинга?» — вопрос из категории Мониторинг и логирование, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Срок хранения логов определяется компромиссом между стоимостью, требованиями 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

Ключевой принцип — политики хранения должны быть декларативно описаны в коде (как часть инфраструктуры) и применяться единообразно ко всем сервисам.