Мониторинг PHP-FPM в Zabbix

Настройка PHP-FPM status

Вывод PHP-FPM-статуса

– имя пула;

– тип Process Manager (pm — dynamic, static, ondemand);

– время запуска FPM (FastCGI Process Manager);

– время в секундах с момента запуска;

– количество обработанных пулом запросов;

– количество запросов в очереди на обработку этим пулом, если количество > 0 – надо подумать об увеличении количества процессов;

– максимальное количество запросов, которые были в очереди с момента запуска пула;

– количество запросов в очереди к сокету;

– количество процессов в idle статусе;

– количество активных процессов;

– общее количество процессов (idle + active processes);

– максимальное количество активных процессов с момента запуска пула;

– максимальное количество дочерних потоков PHP-FPM с момента запуска, если количество >0 – есть смысл подумать об увеличении pm.max_children;

– количество медленных запросов (должен быть включён slowlog).

По-умолчанию – status возвращает страницу в plain-text.
Что бы вызвать её в HTML – добавьте ?html:

Или в Json:

Что бы вывести больше информации – добавьте ?full

Например, я настраиваю отображение PHP-FPM-статистики в хосте по умолчанию т.е для доступа к
FPM-статус можно использовать IP-адрес сервера или его полное доменное имя
Например, необходимо мониторить статус двух пулов, запущенных под разными пользователя
Например, пул по умолчанию(под пользователем nginx) и пул под пользователем kamaok
В Nginx в хосте по умолчанию настраиваю поддержку FPM-статуса

Т.е fpm-статус будет досутупен у меня на

#дефолтный пул

#пул под пользователем kamaok

Если дефолтный хост кроме внешного IP-адреса слушает также и localhost, то статистика может быть доступна на localhost
http://localhost/status #дефолтный пул
http://localhost/status-kamaok #пул под пользователем kamaok

Настройка PHP-FPM для поддержки FPM-стутуса

Если, например, не используется дефолтный хост в Nginx(например, в Nginx выставлена отдача ответа 444 ), тогда в вирт.хостах сайтов, которые запущены под разными пулами можно использовать один и тот же url – просто /status

Nginx-будет выглядет ь так в вирт.хосте сайта под пользователем kamaok

PHP-FPM-пул будет выглядеть так

Я буду использовать первый вариант(с использованием дефолтного вирт.хоста)
Проверяем с командной строки с Zabbix-агента

 

1.Установка скрипта на Zabbix-агенте

Установка прав

За основу скрипта был взят скрипт по мониторингу Nginx отсюда
http://wiki.enchtex.info/howto/zabbix/nginx_monitoring
Скрипт предусматривает кеш, что позволяет сократить количество реальных обращений к серверу.
Время действия кеша в секундах должно устанавливается чуть меньше чем период опроса элементов(по умолчанию в скрипте используется кеширование на 55 секунд, а интервал обновления элементов настроен на 60 секунд)
В скрипте также необходимо указать URL для PHP-FPM-статуса

В данном случае мониторится пул по умолчанию
Проверяем работу скрипта

Если для проверки скрипт запускался с правами root, то он будет владельцем кэш файла — удалите кеш файл после проверок.

 

2.Настройка Zabbix-агента

Проверяем локально на агенте

 

3.Настройка Zabbix-сервера
Cкачиваем,распаковываем и импортируем шаблон php-fpm_export_templates.xml

php-fpm_export_templates.zip
Применяем шаблон к хосту
Проверяем,что через 1-2 минуты на хосте появились Item с именем PHP-FPM

Примеры графиков

Zabbix_graph_php_fpm_listen_queue Zabbix_graph_php_fpm_processess_statistics

Если необходимо мониторить не один пул
Например, в первом пуле мы использовали URL для мониторинга PHP-FPM
http://server1.mydomain.com/status
а во втором пуле будем использовать  http://server1.mydomain.com/status-kamaok

1.Копируем и изменяем скрипт /etc/zabbix/scripts/php-fpm.sh и изменяем URL в новом скрипте

Установка прав

Проверяем работу скрипта

Если для проверки скрипт запускался с правами root, то он будет владельцем кэш файла — удалите кеш файл после проверок.

Настройка Zabbix-агента

Проверяем локально на агенте

Настройка Zabbix-сервера
Копируем существующий шаблон

Далее
1.Изменяем имя шаблона на My template_PHP-FPM-kamaok_agent->Add
2.Изменяем items в этом новом шаблоне

И во всех элементах в поле Key вместо php-fpm выставляем php-fpm-kamaok, а также в поле
Name вместо PHP-FPM выставляем PHP-FPM-kamaok
Меняем имена графиков с PHP-FPM на PHP-FPM-kamaok

Меняем имя триггера с PHP-FPM на PHP-FPM-kamaok

Для наглядности,прикрепил второй шаблон

php-fpm-kamaok_export_templates.zip

Применяем шаблон My template_PHP-FPM-kamaok_agent к хосту, на котором нужно мониторить дополнительный пул

Проверяем,что через 1-2 минуты на хосте появились Item с именем PHP-FPM-kamaok в PHP-FPM

Пример Latest Data

Zabbix_graph_latest_data

Примеры графиков

Zabbix_graph_php_fpm_listen_queue_kamaok Zabbix_graph_php_fpm_processess_statistics_kamaok

Источник:
http://wiki.enchtex.info/howto/zabbix/nginx_monitoring
http://rtfm.co.ua/nginx-php-fpm-vklyuchenie-php-server-status/

Комментирование и размещение ссылок запрещено.

Комментарии закрыты.

Яндекс.Метрика