如何在nginx中监控php-fpm的状态

时间:2019-04-29 03:17:21  来源:igfitidea点击:

PHP- fpm (FastCGI进程管理器)是另一种PHP FastCGI实现,它附带了许多额外的特性,对于任何大小的网站都很有用,尤其是那些流量大的网站。

php-fpm有一个内置的状态页,它可以帮助您监视其健康状况。

如何在Linux中启用PHP-FPM状态页

配置文件

修改php-fpm配置文件并启用状态页

/etc/php-fpm.d/www.conf
或者
/etc/php/7.2/fpm/pool.d/www.conf

启用status_path

找到 # pm.status_path = /status改成 pm.status_path = /status

重启php-fpm

$ sudo php-fpm -t
$ sudo systemctl restart php-fpm
或者
$ sudo php7.2-fpm -t
$ sudo systemctl restart php7.2-fpm

配置url地址

修改配置文件

配置文件: /etc/nginx/conf.d/default.conf

在server块中,添加一个location块,用于访问php-fpm状态页面

location ~ ^/(status|ping)$ {
        allow 127.0.0.1;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_index index.php;
        include fastcgi_params;
        #fastcgi_pass 127.0.0.1:9000;
        fastcgi_pass   unix:/var/run/php7.2-fpm.sock;
}

出于安全考虑,我们使用了指令allow 127.0.0.1, 只允许在本地主机中访问PHP-FPM进程状态。

重启nginx

$ sudo systemctl restart nginx

测试

使用浏览器打开 http://127.0.0.1/status或者 http://服务器ip/status

php-fpm将返回的每个进程的详细状态:

pidpid的过程。
state进程状态(空闲、运行等)。
start time进程启动的日期和时间。
start since进程启动后的秒数。
requests —进程服务的请求数。
request duration请求持续时间。
request method请求方法(GET、POST等)。
request URI带有查询字符串的请求URI。
content length请求的内容长度(仅用于POST)。
user认证用户 (PHP_AUTH_USER)(如果没有设置,则为'-')。
script调用的主脚本(如果没有设置,则为'-')。
last request cpu最后的请求消耗的cpu百分比
last request memory最后一次请求消耗的最大内存量

默认是简略信息, 要查看详细信息:

http://127.0.0.1/status?full

同时还可以指定输出格式,便于其他程序进行处理:

http://127.0.0.1/status?json&full
http://127.0.0.1/status?html&full
http://127.0.0.1/status?xml&full