zabbix 如何監控php-fpm?

zabbix監控php-fpm主要是經過nginx配置php-fpm的狀態輸出頁面,在正則取值.要nginx能輸出php-fpm的狀態首先要先修改php-fpm的配置,沒有開啓nginx是沒有法輸出php-fpm status。php

第一個里程:修改文件php-fpmnginx

vim /application/php-5.5.32/etc/php-fpm.conf文件web

第二個里程:修改nginx配置文件sql

vim vim /application/nginx/conf/extra/www.conf,在server 區塊下添加一行內容vim

重啓nginxapp

第三個里程:curl 127.0.0.1/php_status 咱們能夠看到php-fpm 的狀態信息curl

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
字段 含義
pool php-fpm pool的名稱,大多數狀況下爲www
process manager 進程管理方式,現今大多都爲dynamic,不要使用static
start time php-fpm上次啓動的時間
start since php-fpm已運行了多少秒
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
當pm試圖啓動更多的children進程時,卻達到了進程數的限制,達到一次記錄一次,若是不爲0,須要增長
php-fpm pool進程的最大數
slow requests 當啓用了php-fpm slow-log功能時,若是出現php-fpm慢請求這個計數器會增長,通常不當的Mysql查詢會觸發這個值

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第四個里程:編寫監控腳本和監控文件php-fpm

vim /server/scripts/php_fpm-status.sh測試

#!/bin/sh
#php-fpm status
case $1 in
ping) #檢測php-fpm進程是否存在
/sbin/pidof php-fpm | wc -l
;;
start_since) #提取status中的start since數值
/usr/bin/curl 127.0.0.1/php_status 2>/dev/null | awk 'NR==4{print $3}'
;;
conn) #提取status中的accepted conn數值
/usr/bin/curl 127.0.0.1/php_status 2>/dev/null | awk 'NR==5{print $3}'
;;
listen_queue) #提取status中的listen queue數值
/usr/bin/curl 127.0.0.1/php_status 2>/dev/null | awk 'NR==6{print $3}'
;;
max_listen_queue) #提取status中的max listen queue數值
/usr/bin/curl 127.0.0.1/php_status 2>/dev/null | awk 'NR==7{print $4}'
;;
listen_queue_len) #提取status中的listen queue len
/usr/bin/curl 127.0.0.1/php_status 2>/dev/null | awk 'NR==8{print $4}'
;;
idle_processes) #提取status中的idle processes數值
/usr/bin/curl 127.0.0.1/php_status 2>/dev/null | awk 'NR==9{print $3}'
;;
active_processes) #提取status中的active processes數值
/usr/bin/curl 127.0.0.1/php_status 2>/dev/null | awk 'NR==10{print $3}'
;;
total_processes) #提取status中的total processess數值
/usr/bin/curl 127.0.0.1/php_status 2>/dev/null | awk 'NR==11{print $3}'
;;
max_active_processes) #提取status中的max active processes數值
/usr/bin/curl 127.0.0.1/php_status 2>/dev/null | awk 'NR==12{print $4}'
;;
max_children_reached) #提取status中的max children reached數值
/usr/bin/curl 127.0.0.1/php_status 2>/dev/null | awk 'NR==13{print $4}'
;;
slow_requests) #提取status中的slow requests數值
/usr/bin/curl 127.0.0.1/php_status 2>/dev/null | awk 'NR==14{print $3}'
;;
*)
echo "Usage: $0 {conn|listen_queue|max_listen_queue|listen_queue_len|idle_processes|active_processess|total_processes|max_active_processes|max_children_reached|slow_requests}"
exit 1
;;
esacurl

vim /etc/zabbix/zabbix_agentd.d/test.conf

UserParameter=php_status[*],/bin/sh /server/scripts/php_fpm-status.sh $1

第六個里程:重啓服務

 在服務端測試

第七個里程:在web端進行配置

 

這時候咱們再來看最新監控數據,就能夠看到咱們監控的內容了

 

配置到這,咱們PHP狀態監控基本完成,根據需求配置相應的觸發器,便可。

你要的模板

連接:https://pan.baidu.com/s/1bnoYn1gD7xdQTEUzFj44eA 提取碼:47sv

相關文章
相關標籤/搜索