nginx-exporter (Prometheus)

Тема дорожной карты · Nginx

nginx-exporter — это Prometheus-экспортёр с открытым исходным кодом, который опрашивает метрики Nginx, предоставляемые модулем stub_status, и преобразует их в данные временных рядов, совместимые с Prometheus, для мониторинга и оповещений. Для использования nginx-exporter необходимо сначала включить эндпоинт stub_status в конфигурации Nginx, а затем направить экспортёр на URL статуса для сбора метрик — активных соединений, запросов в секунду и состояний соединений (чтение, запись, ожидание). Nginx-exporter предоставляет эти метрики через HTTP-эндпоинт /metrics, который Prometheus опрашивает с настраиваемым интервалом, что позволяет интегрироваться с дашбордами Grafana для визуализации производительности веб-сервера Nginx. Для организаций, использующих Nginx в качестве обратного прокси или балансировщика нагрузки, nginx-exporter обеспечивает необходимую видимость паттернов трафика и помогает обнаруживать деградацию производительности до того, как она затронет конечных пользователей. Согласование версии экспортёра с версией Nginx гарантирует точный сбор метрик, особенно при использовании Nginx Plus, который предоставляет более богатый API с дополнительной статистикой upstream и кэша.

Как это работает

nginx-exporter (Prometheus) использует access_log + error_log. Определите JSON log-формат (log_format json escape=json '{"time":"$time_iso8601",...}';) для лёгкого ingestion в Loki, Elasticsearch, Vector. access_log /path/access.log json; per server-блок. Status-модуль (stub_status) экспонирует базовые метрики; nginx-vts-module даёт полные Prometheus-совместимые метрики. nginx-prometheus-exporter — sidecar-вариант.

Когда применять

Переход на JSON access logs — с первого дня; намного проще запрашивать, чем дефолтный combined-формат. Шлите в Loki через Vector/Promtail. nginx-prometheus-exporter — для метрик. Alerts на 5xx > 1%, пороги latency p95/p99, disk usage log-volume. logrotate — для ротации (или daily + dateext конфиг).

Типичные ошибки

Ловушки nginx-exporter (Prometheus): дефолтный combined-формат лога ломается на спецсимволах (нет эскейпинга); диск забит access-логами без ротации (сервер перестаёт принимать трафик); не логируется X-Real-IP за CDN (видите CDN-IP вместо реальных клиентов); error log на дефолтном warn-уровне пропускает полезное (ставьте info при инцидентах).

Связанные понятия

Полезные ресурсы