Как вы работали с логами в OpenShift?

«Как вы работали с логами в OpenShift?» — вопрос из категории Логирование и мониторинг, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Работал с логами в OpenShift на разных уровнях: от подов до кластера, используя как нативные инструменты, так и сторонние стеки.

Основные методы и инструменты:

  1. Нативные команды oc / kubectl:

    # Просмотр логов пода
    oc logs <pod-name> -n <namespace>
    # Логи с таймстампами и фильтрацией по времени
    oc logs <pod-name> --since=1h --timestamps=true
    # Отслеживание логов в реальном времени (tail -f)
    oc logs <pod-name> -f
    # Просмотр логов конкретного контейнера в поде
    oc logs <pod-name> -c <container-name>
  2. Сбор и агрегация логов (Cluster Logging):

    • EFK-стек (Elasticsearch, Fluentd, Kibana): Стандартное решение OpenShift для централизованного сбора логов. Настраивал Fluentd для парсинга структурированных логов (JSON) и отправки в Elasticsearch. В Kibana создавал дашборды для поиска и визуализации.
    • Loki + Grafana: Более лёгкая альтернатива для логов на основе меток. Использовал для эффективного хранения и быстрого поиска по логам приложений.
  3. Логирование приложений (Best Practice):

    • Приложения должны писать логи в stdout/stderr. OpenShift автоматически собирает эти потоки.
    • Рекомендуется использовать структурированное логирование (JSON) для упрощения парсинга в Fluentd/Logstash.
  4. Анализ и отладка:

    • Поиск ошибок по ключевым словам (ERROR, Exception).
    • Анализ паттернов и аномалий с помощью визуализаций в Grafana.
    • Связь логов приложения с метриками и трейсами для полноценного мониторинга.