@BezdomnyiBox
Студент программной инженерии

Как настроить отдачу метрик с nginx?

Здравствуйте, недавно ходил на собес в IT компанию и они дали мне тех.задание. Вот условия:

Настроить в контейнере LEMP-стэк, запустить, проверить работоспособность. Настроить отдачу метрик с nginx по пути /metrics, в инструкции описать значение метрик, которые выводятся на странице. Написать PHP скрипт, который будет выводить 2 строки из БД, подключить его к web-серверу в качестве главной страницы. Реализация - на свое усмотрение (не важно, насколько примитивно, со стилями можно не заморачиваться). Выслать Dockerfile с проектом (возможно еще и доп. файлы), описать каждую строчку, зачем она нужна. Выслать пошаговую инструкцию по запуску контейнера. У инженеров должен быть точно такой же вывод, как и у Вас. В качестве базового образа можно использовать любой дистрибутив, но rpm-based.

Нужна помощь с фрагментом, который я выделил жирным, буду благодарен любому совету.
  • Вопрос задан
  • 171 просмотр
Пригласить эксперта
Ответы на вопрос 2
rqdkmndh
@rqdkmndh
Web-разработчик
Такой вариант в nginx.conf:
server {
        listen       80;
        server_name  localhost;

        location / {
            root   /var/www/html;
            index  index.php;
        }

        location /metrics {
            stub_status;
            allow 127.0.0.1;
            deny all;
        }

        location ~ \.php$ {
            root           /var/www/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

Описание метрик Nginx /metrics:
Active connections — текущее количество активных соединений.
accepts — общее количество соединений, принятых сервером.
handled — количество соединений, обработанных сервером (совпадает с accepts, если нет ошибок).
requests — общее количество обработанных запросов.
Reading — количество соединений, которые Nginx читает от клиента.
Writing — количество соединений, в которые Nginx пишет ответ клиенту.
Waiting — количество keep-alive соединений, которые открыты и ожидают нового запроса.

stub_status — это директива, которая включает модуль ngx_http_stub_status_module. Этот модуль выводит минимальную статистику о текущем состоянии Nginx
Ответ написан
Комментировать
karabanov
@karabanov Куратор тега Docker
Системный администратор
Есть prometheus-nginxlog-exporter
Есть nginx-module-vts - видим он и имелся ввиду

Обе эти штуки делают по сути одно и тоже анализируют логи, только один парсит лог с диска, а второй получает данные из рантайма, но это тоже данные из лога.

Есть Angie у него метрики нативные и, если можно так выразится настощие - данные берутся не из логов, и можно например увидеть сколько запросов находятся в обработке, в лог же данные записываются когда запрос был завершён, что не позволяет получить такую информацию, тем не менее логи вполне адекватный инструмент.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы