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

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

Ответ

В DevOps мы активно используем HTTP статус-коды для мониторинга здоровья приложений, настройки алертов и анализа инцидентов. Основные классы:

1xx (Информационные)

  • 101 Switching Protocols — важен при работе с WebSocket, например, в real-time дашбордах мониторинга.

2xx (Успех)

  • 200 OK — стандартный ответ для health-check эндпоинтов.
  • 201 Created — часто возвращается API при автоматическом создании ресурсов через инфраструктуру как код (Terraform, Ansible).
  • 204 No Content — используется в lightweight health-check'ах, где важно только подтверждение доступности.

3xx (Перенаправления)

  • 301/302 — требуют внимательной настройки в балансировщиках нагрузки (Nginx, HAProxy) и CDN для избежания циклов редиректов.
  • 304 Not Modified — критичен для эффективного кэширования контента через CDN или reverse proxy.

4xx (Ошибки клиента)

  • 400 Bad Request — сигнализирует о проблемах в конфигурации клиентов или отправляемых метриках.
  • 401/403 — мониторим попытки несанкционированного доступа в SIEM системах (ELK, Splunk).
  • 404 Not Found — резкий рост может указывать на битые ссылки после деплоя или проблемы с роутингом.

5xx (Ошибки сервера)

  • 500 Internal Server Error — главный индикатор проблем бэкенда, по которому часто строятся алерты в Prometheus/Grafana.
  • 502 Bad Gateway / 503 Service Unavailable — типичные ошибки при падении upstream сервисов, проблемах с балансировщиком или исчерпании лимитов (rate limiting).
  • 504 Gateway Timeout — указывает на проблемы с таймаутами между микросервисами.

Практика в DevOps:

# Пример health-check скрипта, проверяющего не только доступность, но и корректный статус
curl -s -o /dev/null -w "%{http_code}" https://api.service.com/health
# Ожидаем 200, всё что 5xx — критично, 4xx — требует расследования

# В Prometheus Alertmanager правило для отслеживания 5xx ошибок в Nginx
- alert: HighErrorRate
  expr: rate(nginx_http_requests_total{status=~"5.."}[5m]) > 0.05

Мы настраиваем дашборды в Grafana, которые агрегируют ответы по статус-кодам, чтобы видеть общую картину здоровья системы и оперативно реагировать на деградацию.

Видео-ответы