Какую систему логирования вы поднимали с нуля?

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

Ответ

Я развернул и настроил стек EFK (Elasticsearch, Fluent Bit, Kibana) для централизованного сбора логов с микросервисов в Kubernetes.

Конфигурация Fluent Bit для сбора логов из контейнеров:

[INPUT]
    Name   tail
    Path   /var/log/containers/*.log
    Parser docker
    Tag    kube.*

[FILTER]
    Name   kubernetes
    Match  kube.*

[OUTPUT]
    Name   es
    Match  *
    Host   elasticsearch-logging
    Port   9200
    Index  app-logs
    Type   _doc

Ключевые аспекты реализации:

  • Структурированные логи: Настроил приложения на вывод логов в JSON-формате для упрощения парсинга.
  • Корреляция запросов: Добавил сквозной trace_id во все логи в рамках одного HTTP-запроса с помощью обогащения логов в Fluent Bit.
  • Ротация и хранение: Использовал Index Lifecycle Management (ILM) в Elasticsearch для автоматической ротации индексов по политикам (например, удаление логов старше 30 дней).
  • Безопасность: Настроил фильтры в Fluent Bit для маскировки чувствительных данных (пароли, токены) перед отправкой в Elasticsearch.
  • Визуализация: Создал дашборды в Kibana для мониторинга ошибок приложений и метрик производительности.