5.02021-11-21T21:25:53ZTemplates_CustomApp PHP-FPMApp PHP-FPM## Overview
English description - <https://github.com/tonymadbrain/fcgi_stat_getter/blob/master/README.md>
Скрипт для получения статистики из PHP-FPM, который можно использовать в Zabbix. Реализация на Go вот этого скрипта - <http://doam.ru/fcgi_monitoring_with_zabbix/.>
go version go1.7.4 darwin/amd64
Настройка PHP-FPM
-----------------
В конфиге PHP-FPM пула нужно включить статус и пинг:
```
pm.status\_path = /status
```
```
ping.path = /ping
```
И сделать restart сервера.
Настройка Zabbix
----------------
Нужно скомпилировать бинарник под ту платформу, на которой запущен Zabbix сервер, для этого нужно использовать команду:
```
env GOOS={OS} GOARCH={ARCH} go build -v github.com/username/fcgi\_stat\_getter
```
{OS} - тип операционной системы, может быть:
* Mac os - darwin
* Windows - windows
* Linux - linux
* FreeBSD - freebsd
{ARCH} - архитектура, может быть:
* x86\_64 - amd64
* x86 - 386
* ARM - arm (linux only)
Example:
```
$ env GOOS=linux GOARCH=amd64 go build -v github.com/tonymadbrain/fcgi\_stat\_getter
```
Закинуть бинарник на сервер Zabbix в каталог /usr/lib/zabbix/externalscripts, сделать его исполняемым:
```
chmod +x fcgi\_stat\_getter
```
сделать владельцем файла Zabbix:
```
chown zabbix:zabbix fcgi\_stat\_getter
```
Затем нужно импортировать шаблон *zbx\_fcgi\_template.xml* в Zabbix фронтенде и прикрепить его к нужному серверу. Ждать данных.
## Author
Antony Ryabov
Templates_CustomPHP-FPM- Php-fpm - latencyEXTERNALfcgi_stat_getter["-h","{HOST.CONN}","-p","3000","-c","latency"]60FLOATmsPHP-FPM{min(#10)}>100PHP-FPM - is slow to respond on {HOST.NAME}WARNING
- Php-fpmEXTERNALfcgi_stat_getter["-h","{HOST.CONN}","-p","3000","-c","ping"]600CHARPHP-FPM{count(#5,"pong",ne)}>3PHP-FPM on {HOST.NAME}DISASTER
- Php-fpm - connections per secEXTERNALfcgi_stat_getter["-h","{HOST.CONN}","-p","3000","-c","stat","-k","accepted conn"]60FLOATPHP-FPMCHANGE_PER_SECOND
- Php-fpm - active processes countEXTERNALfcgi_stat_getter["-h","{HOST.CONN}","-p","3000","-c","stat","-k","active processes"]60PHP-FPM
- Php-fpm - idle processes countEXTERNALfcgi_stat_getter["-h","{HOST.CONN}","-p","3000","-c","stat","-k","idle processes"]60PHP-FPM{avg(600)}<3PHP-FPM - child process count is small on {HOST.NAME}INFOPlease, increase pm.max_children (if static) or pm.min_spare_servers and pm.max_spare_servers (if dynamic) in /etc/php-fpm.d/www.conf
- Php-fpm - length of listen queueEXTERNALfcgi_stat_getter["-h","{HOST.CONN}","-p","3000","-c","stat","-k","listen queue len"]60PHP-FPM
- Php-fpm - max children reachedEXTERNALfcgi_stat_getter["-h","{HOST.CONN}","-p","3000","-c","stat","-k","max children reached"]60PHP-FPM
{$AJAX_PORT}3001{$API_PORT}3002{$FERM_PORT}3004{$IMHO_PORT}3000PHP-FPM220PHP-FPM - latencyApp PHP-FPM70020000110000030PHP-FPM - workloadApp PHP-FPM70020010110000030PHP-FPM - listen queueApp PHP-FPM70020001110000030PHP-FPM - processesApp PHP-FPM7002001111000003PHP-FPM - latencyFIXEDGRADIENT_LINE009900- App PHP-FPMfcgi_stat_getter["-h","{HOST.CONN}","-p","3000","-c","latency"]
PHP-FPM - listen queueNONOFIXEDC80000- App PHP-FPMfcgi_stat_getter["-h","{HOST.CONN}","-p","3000","-c","stat","-k","listen queue len"]
100C800- App PHP-FPMfcgi_stat_getter["-h","{HOST.CONN}","-p","3000","-c","stat","-k","max children reached"]
PHP-FPM - processesNONOSTACKEDFIXEDC80000- App PHP-FPMfcgi_stat_getter["-h","{HOST.CONN}","-p","3000","-c","stat","-k","active processes"]
100EEEE- App PHP-FPMfcgi_stat_getter["-h","{HOST.CONN}","-p","3000","-c","stat","-k","idle processes"]
PHP-FPM - workloadNONOFIXEDBOLD_LINEC80000- App PHP-FPMfcgi_stat_getter["-h","{HOST.CONN}","-p","3000","-c","stat","-k","accepted conn"]