Мониторинг PHP-FPM с помощью Nixstats

Aug 10, 2017 10:02 · 226 words · 2 minute read nixstats monitoring php-fpm

Ранее мы уже рассматривали Nixstats — бесплатный сервис для мониторинга, отображения статистики сервера и оповещения о проблемах и даже научились собирать метрики от web-сервера Nginx.

Давайте разберемся с настройкой сбора метрик php-fpm с помощью сервиса Nixstats!

От php-fpm сервис Nixstats принимает следующие метрики:

  • Accepted connections (per second, total);
  • Active processes;
  • Total processes;
  • Idle processes;
  • Max active processes;
  • Listen queue;
  • Listen queue length;
  • Max listen queue;
  • Max children reached;
  • Start time;
  • Start since;
  • Pool;
  • Process manager;
  • Slow requests.

Страница статуса php-fpm должна быть включена — сделать это можно в конфигурационном файле пула (/etc/php-fpm.d/www.conf) добавлением параметра:

...
pm.status_path = /status_phpfpm
...

Не забудьте также включить доступ к странице статуса php-fpm в конфигах web-сервера Nginx, например:

server {
    listen 127.0.0.1:8080;
    server_name localhost;
    location /status_phpfpm {
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        allow 127.0.0.1;
        deny all;
    }
}

Проверить корректность настройки страницы статуса можно php-fpm так:

wget -qO- http://127.0.0.1:8080/status_phpfpm?json

Далее необходимо настроить плагин Nixstats — открываем конфигурационный файл /etc/nixstats.ini и добавляем в него следующие строки:

[phpfpm] 
enabled = yes
status_page_url = http://127.0.0.1:8080/status_phpfpm?json

Тестируем:

nixstatsagent --test phpfpm

Результат должен быть примерно следующим:

phpfpm:
{
    "accepted_conn": 3015,
    "accepted_conn_per_second": 0.0,
    "active_processes": 1,
    "idle_processes": 0,
    "listen_queue": 0,
    "listen_queue_len": 128,
    "max_active_processes": 1,
    "max_children_reached": 0,
    "max_listen_queue": 1,
    "pool": "www",
    "process_manager": "ondemand",
    "slow_requests": 0,
    "start_since": 294686,
    "start_time": 1492504250,
    "total_processes": 1
}

Теперь перезапускаем агент мониторинга:

service nixstatsagent restart

И ждем появления метрик в веб-интерфейсе сервиса мониторинга.

tweet Share