1、啟用php-fpm的狀態功能
[root@web01 ~]# vim /etc/php-fpm.d/www.conf
121 pm.status_path = /php_status
[root@web01 ~]# systemctl restart php-fpm.service #重啟php服務
2、nginx中開啟php的狀態訪問
[root@web01 ~]# vim /etc/nginx/nginx.conf
location ~ ^/(php_status|ping)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
修改完后重啟nginx
[root@web01 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web01 ~]# nginx -s reload
3、命令行手動測試取值
[root@web01 ~]# curl http://127.0.0.1/php_status
pool: www
process manager: dynamic
start time: 13/Jun/2018:14:32:15 +0800
start since: 104
accepted conn: 1
listen queue: 0
max listen queue: 0
listen queue len: 128
idle processes: 4
active processes: 1
total processes: 5
max active processes: 1
max children reached: 0
slow requests: 0
php-fpm status的含義
pool php-fpm pool(資源池)的名稱,大多數情況下為www
process manager 進程管理方式,現今大多都為dynamic,不要使用static
start time 上次啟動的時間
start since 已運行了多少秒
accepted conn pool 接收到的請求數
listen queue 處於等待狀態中的連接數,如果不為0,需要增加php-fpm進程數
max listen queue 從php-fpm啟動到現在處於等待連接的最大數量
listen queue len 處於等待連接隊列的套接字大小
idle processes 處於空閑狀態的進程數
active processes 處於活動狀態的進程數
total processess 進程總數
max active process 從php-fpm啟動到現在最多有幾個進程處於活動狀態
max children reached 當php-fpm試圖啟動更多的children進程時,卻達到了進程數的限制,達到一次記錄一次,如果不為0,需要增加php-fpm pool進程的最大數
slow requests 當啟用了php-fpm slow-log功能時,如果出現php-fpm慢請求這個計數器會增加,一般不當的Mysql查詢會觸發這個值
4、定義監控項的key值
創建zabbix_agentd關聯php_ststus的子配置文件,不使用腳本取出php-fpm的信息
[root@web01 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@web01 zabbix_agentd.d]# vim php_status.conf
UserParameter=php-fpm.status[*],/usr/bin/curl -s "http://127.0.0.1/php_status?xml" | grep "<$1>" | awk -F'>|<' '{ print $$3}'
[root@web01 zabbix_agentd.d]# systemctl restart zabbix-agent.service #重啟服務
取出php-fpm信息的另外一種取值方法
UserParameter=php-fpm.status[*],/usr/bin/curl http://127.0.0.1/php_status?json 2>/dev/null|jq '."$1"'|sed 's#"##g'
5、web界面配置或導入模板
點擊:配置——>模板——>導入,選擇下載的模板文件並上傳
6、主機鏈接模板
7、模板調整和優化
7.1 通過zabbix內置key,proc.num[<name>,<user>,<state>,<cmdline>],監控php-fpm的進程數
[root@zabbix ~]# zabbix_get -s 192.168.1.7 -k "proc.num[php-fpm]" #命令行取值
10
[root@zabbix ~]# ab -n 10000 -c 100 http://10.0.0.7/index.php #利用apache工具進行壓力測試
其中ab -n 指定次數 -c 指定並發次數 最后接url
[root@zabbix ~]# zabbix_get -s 192.168.1.7 -k "proc.num[php-fpm]" #再次取值
36
可以發現上面的值發生了變化,所以這個值需要我們自定義監控項來進行監控
web界面自定義監控項
7.2 創建觸發器
根據實際情況創建需要的觸發器觸發報警
博主原創文章,轉載請務必注明出處