Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

MONITORING_METRICS_FAIL Linux / DevOps

Мониторинг Nginx: настройка stub_status и экспорт метрик в Prometheus

Обновлено: 21.08.2026
  • Ошибка 404 Not Found при обращении к эндпоинту /stub_status или /metrics.
  • В выводе nginx -V отсутствует флаг модуля --with-http_stub_status_module.
  • Prometheus не может собрать метрики производительности веб-сервера (RPS, Active connections).

1. Проверка наличия модуля stub_status

nginx -V 2>&1 | grep -o -- "--with-http_stub_status_module"

2. Создание изолированного VirtualHost для метрик

Создайте конфигурационный файл /etc/nginx/conf.d/status.conf:

server {
    listen 127.0.0.1:8080;
    server_name 127.0.0.1;

    access_log off;

    location /stub_status {
        stub_status on;
        allow 127.0.0.1;
        allow 10.0.0.0/8;
        deny all;
    }
}

3. Проверка формата вывода метрик

nginx -t && systemctl reload nginx
curl http://127.0.0.1:8080/stub_status

Пример вывода:

Active connections: 291
server accepts handled requests
 16630948 16630948 31070650
Reading: 6 Writing: 179 Waiting: 106

4. Развертывание nginx-prometheus-exporter

Запуск официального экспортера в systemd или Docker:

docker run -d --name=nginx-exporter --net=host \
  nginx/nginx-prometheus-exporter:latest \
  -nginx.scrape-uri=http://127.0.0.1:8080/stub_status
💡 Практика специалистов: Всегда отключайте access_log для эндпоинта /stub_status, иначе частый скрейпинг Prometheus (например, раз в 5 секунд) создаст паразитный мусор в логах доступа и исказит реальную статистику запросов.

Частые вопросы (FAQ)

Что означает метрика 'Waiting' в stub_status?

Waiting — это количество Keep-Alive соединений, которые в данный момент не выполняют запросов, а просто удерживают TCP-сессию открытой в ожидании следующего запроса клиента.

Почему accepts и handled могут различаться?

Если число handled меньше accepts, это означает, что Nginx сбросил часть входящих соединений из-за превышения лимитов worker_connections или listen backlog.

Полезные материалы
Рекомендуем