前幾天弄了個Nginx 服務監(jiān)控,今天再試試php服務的監(jiān)控
團風網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,團風網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為團風上千提供企業(yè)網(wǎng)站建設(shè)服務。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務好的團風做網(wǎng)站的公司定做!操作系統(tǒng): CentOS 7.2
PHP版本:5.6.30
zabbix版本:2.2.5
發(fā)現(xiàn)php-fpm和Nginx一樣都有自身就具備可提供查看的狀態(tài)頁面,所以我們就可以在配置檔案里開啟它
首先查看你的php設(shè)定檔是否開啟了狀態(tài)頁面查看的功能
# cat /data0/php/etc/php-fpm.conf | grep status_path ;pm.status_path = /status
如果情況同上,那說明還沒有開啟,故我們就修改配置,讓它支持查看php-fpm status
# vim /data0/php/etc/php-fpm.conf pm.status_path = /status ---去掉;號注釋
保存退出
重啟php-fpm服務,讓查看status功能生效
# pkill -9 php-fpm # /data0/php/sbin/php-fpm
在Nginx配置上添加支持獲取PHP status的設(shè)定
# vim /data0/nginx/conf/nginx.conf ##在server模塊內(nèi)添加即可 server { listen 80; server_name www.sss.com; #20170701 php-fpm status for zabbix to fetch data location ~ ^/(status|ping)$ { include fastcgi_params; fastcgi_pass 172.17.0.2:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } #20170701 php-fpm status for zabbix to fetch data end }
注:因為我的PHP是在docker內(nèi)運行的,所以上面的fatstcgi_pass 要根據(jù)你自己的情況而定
設(shè)置完畢,保存退出,重啟Nginx服務,讓設(shè)定生效
# /data0/nginx/sbin/nginx -t nginx: the configuration file /data0/nginx/conf/nginx.conf syntax is ok nginx: configuration file /data0/nginx/conf/nginx.conf test is successful # /data0/nginx/sbin/nginx -s reload
至此,PHP、Nginx準備工作完畢,現(xiàn)在可以開始查看成效
查看你的status頁面
有兩種方式:
1.在本地訪問
curl http://網(wǎng)址/status
# curl http://www.sss.com/status pool: www process manager: dynamic start time: 30/Jun/2017:14:14:02 +0800 start since: 94540 accepted conn: 75834 listen queue: 0 max listen queue: 2 listen queue len: 128 idle processes: 99 active processes: 1 total processes: 100 max active processes: 9 max children reached: 0 slow requests: 122
2.打開瀏覽器訪問
http://網(wǎng)址/status
內(nèi)容解釋:
pool: www --php-fpm池名 process manager: dynamic --進程管理方式 start time: 30/Jun/2017:14:14:02 +0800 --啟動日期,一旦你對php-fpm服務更新,它也同樣會更新 start since: 94540 --運行至現(xiàn)在的時長 accepted conn: 75834 --當前池所接受的請求數(shù) listen queue: 0 --請求等待隊列數(shù),若此值大于0,就要增加php-fpm進程數(shù)了 max listen queue: 2 --高的請求等待隊列數(shù) listen queue len: 128 --socket等待隊列長度 idle processes: 99 --空閑進程數(shù) active processes: 1 --活動的進程數(shù) total processes: 100 --總進程數(shù) max active processes: 9 --大活動進程數(shù) max children reached: 0 --大道進程大數(shù)限制次數(shù),同樣若此值不為0,需要將大進行時進程擴大來滿足需求 slow requests: 122 --緩慢請求數(shù)
php-fpm status 頁面非常友善的地方是在配合zabbix監(jiān)控時,不在需要你編寫shell腳本來獲取數(shù)據(jù)了,不錯吧,又可以偷懶了!
不信,在你的被監(jiān)控主機(即PHP-fpm主機)上試下下面的做法
1.訪問URL末尾添加?xml
curl http://www.sss.com/status?xmlwww dynamic 1498803242 95730 77180 0 2 128 99 1 100 9 0 122
2.訪問URL末尾添加?html
curl http:/www.sss.com/devopsfjjerpstatus?htmlPHP-FPM Status Page
pool | www |
---|---|
process manager | dynamic |
start time | 30/Jun/2017:14:14:02 +0800 |
start since | 95954 |
accepted conn | 77437 |
listen queue | 0 |
max listen queue | 2 |
listen queue len | 128 |
idle processes | 99 |
active processes | 1 |
total processes | 100 |
max active processes | 9 |
max children reached | 0 |
slow requests | 122 |
3.訪問URL末尾添加?json
# curl http://www.sss.com/status?json {"pool":"www","process manager":"dynamic","start time":1498803242,"start since":96133,"accepted conn":77639,"listen queue":0,"max listen queue":2,"listen queue len":128,"idle processes":99,"active processes":1,"total processes":100,"max active processes":9,"max children reached":0,"slow requests":122}
在被監(jiān)控機的zabbix agent 的配置里添加自定義的parameter
vim /data0/zabbix/etc/zabbix_agentd.conf ##monitoring for php-fpm status UserParameter=php-fpm.status[*],/usr/bin/curl -s "http://www.sss.com/devopsfjjerpstatus?xml" | grep "<$1>"| awk -F '>|<' '{ print $$3}'
為了讓修改的配置生效,我們要重啟下zabbix_agentd服務
# pkill -9 zabbix_agentd # /data0/zabbix/sbin/zabbix_agentd
目前在被監(jiān)控機器上的設(shè)定已經(jīng)基本結(jié)束,現(xiàn)在轉(zhuǎn)戰(zhàn)zabbix server,跟之前的操作一樣,只要在zabbix web管理界面上導入PHP-fpm監(jiān)控模板
注:有需要的朋友,可以在本文章末尾下載我的zabbix php-fpm監(jiān)控模板
出現(xiàn)上面的匯入成功后,在你的模板列表里查找是否已經(jīng)匯入
從上面的圖中可以看出有個叫做Template App PHP-FPM的模板已經(jīng)存在了。
查看監(jiān)控項目內(nèi)容
查看監(jiān)控觸發(fā)器
查看監(jiān)控圖形內(nèi)容
接下來將這個模板鏈接到你需要監(jiān)控php-fpm服務的主機即可,最簡單的方法是把主機納入到監(jiān)控模板內(nèi)
可以再到你的主機上看看,它是否已經(jīng)被連接到你的主機上
發(fā)現(xiàn)Template App PHP_FPM已經(jīng)在主機的連結(jié)模板內(nèi)了
如果模板不合適,可以自己一步一步建立監(jiān)控模板,可能zabbix監(jiān)控版本不同,但是大體是一樣的,根據(jù)自己的需求進行設(shè)定即可。
首先創(chuàng)建監(jiān)控模板
選好群組模板,然后填入想要的模板名稱以及需要納入到監(jiān)控模板內(nèi)的主機
2.配置好模板后,創(chuàng)建應用集
3.在應用集內(nèi)添加監(jiān)控項目
注:關(guān)于監(jiān)控項目可以參考我在上面貼出監(jiān)控項目內(nèi)容里的監(jiān)控項目名稱和鍵值作為參考
其他監(jiān)控項目和上面內(nèi)容,除了名稱、鍵值、備注描述信息,其他都是一樣的。
4.添加監(jiān)控告警
上面的告警是當php-fpm進程為零時,進行嚴重告警
5.添加監(jiān)控項目查看圖形
注:關(guān)于監(jiān)控圖形可以參考我在上面貼出監(jiān)控圖形內(nèi)容里的監(jiān)控圖形名稱作為參考,主要根據(jù)你自己的需求進行設(shè)定會比較精準
在名稱上填入你想要的監(jiān)控名稱,在監(jiān)控項選擇你已經(jīng)添加好的項目,反正就是根據(jù)你個人的需求進行設(shè)定即可
設(shè)定好上面的東西,那你就可以直接在監(jiān)控內(nèi)查看你的監(jiān)控圖形是否有數(shù)據(jù)產(chǎn)生了
至此所有創(chuàng)建動作結(jié)束,如果出圖,則說明設(shè)定成功啦!
附件:http://down.51cto.com/data/2366813另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。