zabbix監控php-fpm


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 創建觸發器

根據實際情況創建需要的觸發器觸發報警

 

博主原創文章,轉載請務必注明出處


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM