溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php-fpm 服務(wù)納入zabbix監(jiān)控

發(fā)布時間:2020-06-08 03:51:09 來源:網(wǎng)絡(luò) 閱讀:2953 作者:翹楚秦歌 欄目:web開發(fā)

前幾天弄了個Nginx 服務(wù)監(jiān)控,今天再試試php服務(wù)的監(jiān)控

操作系統(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服務(wù),讓查看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服務(wù),讓設(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準(zhǔn)備工作完畢,現(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

php-fpm 服務(wù)納入zabbix監(jiān)控

內(nèi)容解釋:

pool:         www --php-fpm池名
process manager:    dynamic  --進(jìn)程管理方式
start time:      30/Jun/2017:14:14:02 +0800 --啟動日期,一旦你對php-fpm服務(wù)更新,它也同樣會更新
start since:      94540 --運行至現(xiàn)在的時長
accepted conn:     75834 --當(dāng)前池所接受的請求數(shù)
listen queue:     0 --請求等待隊列數(shù),若此值大于0,就要增加php-fpm進(jìn)程數(shù)了
max listen queue:   2 --最高的請求等待隊列數(shù)
listen queue len:   128 --socket等待隊列長度
idle processes:    99 --空閑進(jìn)程數(shù)
active processes:   1 --活動的進(jìn)程數(shù)
total processes:    100 --總進(jìn)程數(shù)
max active processes: 9 --最大活動進(jìn)程數(shù)
max children reached: 0 --大道進(jìn)程最大數(shù)限制次數(shù),同樣若此值不為0,需要將最大進(jìn)行時進(jìn)程擴(kuò)大來滿足需求
slow requests:     122 --緩慢請求數(shù)

php-fpm status 頁面非常友善的地方是在配合zabbix監(jiān)控時,不在需要你編寫shell腳本來獲取數(shù)據(jù)了,不錯吧,又可以偷懶了!

不信,在你的被監(jiān)控主機(jī)(即PHP-fpm主機(jī))上試下下面的做法

1.訪問URL末尾添加?xml

curl http://www.sss.com/status?xml
<?xml version="1.0" ?>
<status>
<pool>www</pool>
<process-manager>dynamic</process-manager>
<start-time>1498803242</start-time>
<start-since>95730</start-since>
<accepted-conn>77180</accepted-conn>
<listen-queue>0</listen-queue>
<max-listen-queue>2</max-listen-queue>
<listen-queue-len>128</listen-queue-len>
<idle-processes>99</idle-processes>
<active-processes>1</active-processes>
<total-processes>100</total-processes>
<max-active-processes>9</max-active-processes>
<max-children-reached>0</max-children-reached>
<slow-requests>122</slow-requests>

php-fpm 服務(wù)納入zabbix監(jiān)控

2.訪問URL末尾添加?html

curl http:/www.sss.com/devopsfjjerpstatus?html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>PHP-FPM Status Page</title></head>
<body>
<table>
<tr><th>pool</th><td>www</td></tr>
<tr><th>process manager</th><td>dynamic</td></tr>
<tr><th>start time</th><td>30/Jun/2017:14:14:02 +0800</td></tr>
<tr><th>start since</th><td>95954</td></tr>
<tr><th>accepted conn</th><td>77437</td></tr>
<tr><th>listen queue</th><td>0</td></tr>
<tr><th>max listen queue</th><td>2</td></tr>
<tr><th>listen queue len</th><td>128</td></tr>
<tr><th>idle processes</th><td>99</td></tr>
<tr><th>active processes</th><td>1</td></tr>
<tr><th>total processes</th><td>100</td></tr>
<tr><th>max active processes</th><td>9</td></tr>
<tr><th>max children reached</th><td>0</td></tr>
<tr><th>slow requests</th><td>122</td></tr>
</table>
</body></html>

php-fpm 服務(wù)納入zabbix監(jiān)控

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}

php-fpm 服務(wù)納入zabbix監(jiān)控

在被監(jiān)控機(jī)的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服務(wù)

# pkill -9 zabbix_agentd
# /data0/zabbix/sbin/zabbix_agentd


目前在被監(jiān)控機(jī)器上的設(shè)定已經(jīng)基本結(jié)束,現(xiàn)在轉(zhuǎn)戰(zhàn)zabbix server,跟之前的操作一樣,只要在zabbix web管理界面上導(dǎo)入PHP-fpm監(jiān)控模板

注:有需要的朋友,可以在本文章末尾下載我的zabbix php-fpm監(jiān)控模板

php-fpm 服務(wù)納入zabbix監(jiān)控

php-fpm 服務(wù)納入zabbix監(jiān)控

php-fpm 服務(wù)納入zabbix監(jiān)控

php-fpm 服務(wù)納入zabbix監(jiān)控

出現(xiàn)上面的匯入成功后,在你的模板列表里查找是否已經(jīng)匯入

php-fpm 服務(wù)納入zabbix監(jiān)控

從上面的圖中可以看出有個叫做Template App PHP-FPM的模板已經(jīng)存在了。


查看監(jiān)控項目內(nèi)容

php-fpm 服務(wù)納入zabbix監(jiān)控


查看監(jiān)控觸發(fā)器

php-fpm 服務(wù)納入zabbix監(jiān)控


查看監(jiān)控圖形內(nèi)容

php-fpm 服務(wù)納入zabbix監(jiān)控


接下來將這個模板鏈接到你需要監(jiān)控php-fpm服務(wù)的主機(jī)即可,最簡單的方法是把主機(jī)納入到監(jiān)控模板內(nèi)

php-fpm 服務(wù)納入zabbix監(jiān)控


可以再到你的主機(jī)上看看,它是否已經(jīng)被連接到你的主機(jī)上

php-fpm 服務(wù)納入zabbix監(jiān)控

發(fā)現(xiàn)Template App PHP_FPM已經(jīng)在主機(jī)的連結(jié)模板內(nèi)了


如果模板不合適,可以自己一步一步建立監(jiān)控模板,可能zabbix監(jiān)控版本不同,但是大體是一樣的,根據(jù)自己的需求進(jìn)行設(shè)定即可。

  1. 首先創(chuàng)建監(jiān)控模板

php-fpm 服務(wù)納入zabbix監(jiān)控

php-fpm 服務(wù)納入zabbix監(jiān)控

選好群組模板,然后填入想要的模板名稱以及需要納入到監(jiān)控模板內(nèi)的主機(jī)

php-fpm 服務(wù)納入zabbix監(jiān)控


2.配置好模板后,創(chuàng)建應(yīng)用集

php-fpm 服務(wù)納入zabbix監(jiān)控

php-fpm 服務(wù)納入zabbix監(jiān)控


3.在應(yīng)用集內(nèi)添加監(jiān)控項目

注:關(guān)于監(jiān)控項目可以參考我在上面貼出監(jiān)控項目內(nèi)容里的監(jiān)控項目名稱和鍵值作為參考

php-fpm 服務(wù)納入zabbix監(jiān)控

php-fpm 服務(wù)納入zabbix監(jiān)控

php-fpm 服務(wù)納入zabbix監(jiān)控

其他監(jiān)控項目和上面內(nèi)容,除了名稱、鍵值、備注描述信息,其他都是一樣的。


4.添加監(jiān)控告警

php-fpm 服務(wù)納入zabbix監(jiān)控

php-fpm 服務(wù)納入zabbix監(jiān)控

上面的告警是當(dāng)php-fpm進(jìn)程為零時,進(jìn)行嚴(yán)重告警


5.添加監(jiān)控項目查看圖形

注:關(guān)于監(jiān)控圖形可以參考我在上面貼出監(jiān)控圖形內(nèi)容里的監(jiān)控圖形名稱作為參考,主要根據(jù)你自己的需求進(jìn)行設(shè)定會比較精準(zhǔn)

php-fpm 服務(wù)納入zabbix監(jiān)控

php-fpm 服務(wù)納入zabbix監(jiān)控

在名稱上填入你想要的監(jiān)控名稱,在監(jiān)控項選擇你已經(jīng)添加好的項目,反正就是根據(jù)你個人的需求進(jìn)行設(shè)定即可


設(shè)定好上面的東西,那你就可以直接在監(jiān)控內(nèi)查看你的監(jiān)控圖形是否有數(shù)據(jù)產(chǎn)生了

php-fpm 服務(wù)納入zabbix監(jiān)控

php-fpm 服務(wù)納入zabbix監(jiān)控

php-fpm 服務(wù)納入zabbix監(jiān)控

至此所有創(chuàng)建動作結(jié)束,如果出圖,則說明設(shè)定成功啦!

附件:http://down.51cto.com/data/2366813
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI