Какими инструментами ты будешь пользоваться для диагностики проблем на седьмом (прикладном) уровне модели OSI?

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

Ответ

Для диагностики проблем на прикладном уровне (L7) я использую комбинацию инструментов для анализа трафика, тестирования API и изучения логов.

1. Анализ сетевого трафика:

  • Wireshark / tcpdump: Для захвата и глубокого анализа HTTP/HTTPS пакетов. Смотрю на коды состояния, заголовки, время ответа и целостность TLS-сессий.
    tcpdump -i any -s 0 -w app_capture.pcap port 443 or port 80
  • curl / httpie: Для ручного тестирования API-эндпоинтов, проверки заголовков, аутентификации и тела ответов.
    curl -v -H "Authorization: Bearer <TOKEN>" -X POST https://api.service.com/v1/resource

2. Инструменты прикладного уровня:

  • Postman / Insomnia: Для создания и выполнения коллекций тестов API, автоматизации проверок и документирования сценариев.
  • Браузерные DevTools (Network tab): Для анализа запросов, исходящих от фронтенда, проверки CORS, cookies и загрузки ресурсов.

3. Анализ логов и метрик:

  • Стек ELK (Elasticsearch, Logstash, Kibana) / Grafana Loki: Агрегация и поиск по логам приложения. Фильтрую по уровню ошибки (ERROR, FATAL), trace-id или конкретному эндпоинту.
  • Application Performance Monitoring (APM): Инструменты вроде Datadog APM или New Relic для трейсинга распределенных транзакций, чтобы увидеть, на каком именно микросервисе или внешнем вызове возникает задержка или ошибка.

Типичные проблемы L7, на которые смотрю: некорректные HTTP-коды (5xx, 4xx), медленные ответы от БД или внешних сервисов, ошибки аутентификации/авторизации, невалидные JSON-тела и проблемы с балансировщиками нагрузки (например, неправильные health checks).