启用php-fpm状态功能
修正php-fpm配置文件,确保如下配置是打开状态

pm.status_path = /status,详细操作如下
在Zabbix-server端操作如下
cd /usr/local/php/etc
ls
sed -n '360p' php-fpm.conf
vim php-fpm.conf +360
sed -n '360p' php-fpm.conf
重启php-fpm做事
netstat -antup | grep php-fpm
pkill php-fpm
netstat -antup | grep php-fpm
/usr/local/php/sbin/php-fpm
netstat -antup | grep php-fpm
nginx配置php-fpm状态页面
配置php-fpm状态页面
vim /usr/local/nginx/conf/nginx.conf
cat /usr/local/nginx/conf/nginx.conf
1. worker_processes 1;
2. events {
3. worker_connections 1024;
4. }
5. http {
6. include mime.types;
7. default_type application/octet-stream;
8. sendfile on;
9. keepalive_timeout 65;
10. server {
11. listen 80;
12. server_name localhost;
13. location / {
14. root html;
15. index index.php index.html index.htm;
16. }
17. location = /nginx-status {
18. stub_status on;
19. access_log off;
20. }
21. location = /status { #添加此location
22. include fastcgi_params;
23. fastcgi_pass 127.0.0.1:9000;
24. fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
25. }
26. location ~ \.php$ {
27. fastcgi_pass 127.0.0.1:9000;
28. fastcgi_index index.php;
29. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
30. include fastcgi_params;
31. }
32. }
33. }
重启动nginx做事
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
状态页浏览器访问测试
php-fpm状态页比较个性化的一个地方是它可以带参数,可以带的参数有json、xml、html,利用zabbix或者nagios监控可以考虑利用xml或者默认办法。
详细含义解释如下
curl 127.0.0.1/status
1. pool: www #fpm进程池名称,大多数为www
2. process manager: dynamic #进程管理办法(static,dynamic or nodemand.dynamic)
3. start time: 12/Dec/2018:07:35:24 +0800 #启动日期
4. start since: 1137 #运行时长
5. accepted conn: 142 #当前FPM进程池接管的要求数
6. listen queue: 0 #要求等待行列步队,如果值不是0,那么要增加FPM的进程数
7. max listen queue: 0 #要求等待行列步队最高的数量
8. listen queue len: 128 #socket等待行列步队长度
9. idle processes: 1 #空闲进程数量
10. active processes: 1 #生动进程数量
11. total processes: 2 #总进程数量
12. max active processes: 2 #最大的生动进程数量(FPM启动开始算)
13. max children reached: 0 #达到最大子进程的次数,如果值不为0,那么须要调高最大进程数
14. slow requests: 0 #当启用了php-fpm的slow-log功能时,如果涌现php-fpm慢要求这个计数器会增加,一样平常不当的MySQL查询会触发这个值
其他状态参数显示形式的数据(json,xml,html)
以xml的格式输出PHP-fpm状态页
curl 127.0.0.1/status?xml
1. <?xml version="1.0" ?>
2. <status>
3. <pool>www</pool>
4. <process-manager>dynamic</process-manager>
5. <start-time>1516953418</start-time>
6. <start-since>3731</start-since>
7. <accepted-conn>647</accepted-conn>
8. <listen-queue>0</listen-queue>
9. <max-listen-queue>4</max-listen-queue>
10. <listen-queue-len>128</listen-queue-len>
11. <idle-processes>2</idle-processes>
12. <active-processes>1</active-processes>
13. <total-processes>3</total-processes>
14. <max-active-processes>3</max-active-processes>
15. <max-children-reached>0</max-children-reached>
16. <slow-requests>0</slow-requests>
以json的格式输出PHP-fpm的状态页
curl 127.0.0.1/status?json
1. {"pool":"www","process manager":"dynamic","start time":1516953418,"start since":3736,"accepted conn":648,"listen queue":0,"max listen queue":4,"listen queue len":128,"idle processes":2,"active processes":1,"total processes":3,"max active processes":3,"max children reached":0,"slow requests":0}[root@Zabbix_Server nginx]#
以html的格式输出PHP-fpm的状态页
curl 127.0.0.1/status?html
1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3. <head><title>PHP-FPM Status Page</title></head>
4. <body>
5. <table>
6. <tr><th>pool</th><td>www</td></tr>
7. <tr><th>process manager</th><td>dynamic</td></tr>
8. <tr><th>start time</th><td>26/Jan/2018:02:56:58 -0500</td></tr>
9. <tr><th>start since</th><td>3748</td></tr>
10. <tr><th>accepted conn</th><td>650</td></tr>
11. <tr><th>listen queue</th><td>0</td></tr>
12. <tr><th>max listen queue</th><td>4</td></tr>
13. <tr><th>listen queue len</th><td>128</td></tr>
14. <tr><th>idle processes</th><td>2</td></tr>
15. <tr><th>active processes</th><td>1</td></tr>
16. <tr><th>total processes</th><td>3</td></tr>
17. <tr><th>max active processes</th><td>3</td></tr>
18. <tr><th>max children reached</th><td>0</td></tr>
19. <tr><th>slow requests</th><td>0</td></tr>
20. </table>
21. </body></html>
在Zabbix agent端修正配置
在创建Zabbix的agent端键值配置文件的时候,我们可以考虑利用PHP-fpm状态页的不同输出格式来抓取数据。例如我们利用xml格式获取数据,操作如下:
查看xml格式PHP-fpm状态页数据
curl 127.0.0.1/status?xml
1. <?xml version="1.0" ?>
2. <status>
3. <pool>www</pool>
4. <process-manager>dynamic</process-manager>
5. <start-time>1516953418</start-time>
6. <start-since>3731</start-since>
7. <accepted-conn>647</accepted-conn>
8. <listen-queue>0</listen-queue>
9. <max-listen-queue>4</max-listen-queue>
10. <listen-queue-len>128</listen-queue-len>
11. <idle-processes>2</idle-processes>
12. <active-processes>1</active-processes>
13. <total-processes>3</total-processes>
14. <max-active-processes>3</max-active-processes>
15. <max-children-reached>0</max-children-reached>
16. <slow-requests>0</slow-requests>
创建zabbix监控的agent端键值配置文件
cd /etc/zabbix/zabbix_agentd.d/
vim userparameter_php-fpm.conf
cat userparameter_php-fpm.conf
1. UserParameter=php-fpm.status[],/usr/bin/curl -s "http://127.0.0.1/status?xml" | grep "<$1>" | awk -F "[>|<]" '{print $$3}'
2.
3. 这里须要把稳在脚本里如果写成$3的话,脚本会认识是一个变量,因此我们须要用$$3
重启动agent客户端
/etc/init.d/zabbix-agent restart
进行键值配置文件测试
zabbix_get -s 192.168.200.69 -p 10050 -k "php-fpm.status[process-manager]"
zabbix_get -s 192.168.200.69 -p 10050 -k "php-fpm.status[start-since]"
zabbix_get -s 192.168.200.69 -p 10050 -k "php-fpm.status[active-processes]"
Zabbix图形界面导入我们的监控模版(上边有模板下载链接)