zabbix 如何監控php-fpm?
zabbix監控php-fpm主要是通過nginx配置php-fpm的狀態輸出頁面,在正則取值.要nginx能輸出php-fpm的狀態首先要先修改php-fpm的配置,沒有開啟nginx是沒有法輸出php-fpm status。
第一個裏程:修改文件php-fpm
vim /application/php-5.5.32/etc/php-fpm.conf文件
第二個裏程:修改nginx配置文件
vim vim /application/nginx/conf/extra/www.conf,在server 區塊下添加一行內容
重啟nginx
第三個裏程:curl 127.0.0.1/php_status 我們可以看到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
;;
esac
vim /etc/zabbix/zabbix_agentd.d/test.conf
UserParameter=php_status[*],/bin/sh /server/scripts/php_fpm-status.sh $1
第六個裏程:重啟服務
在服務端測試
第七個裏程:在web端進行配置
這時候我們再來看最新監控數據,就可以看到我們監控的內容了
配置到這,我們PHP狀態監控基本完成,根據需求配置相應的觸發器,即可。
zabbix 如何監控php-fpm?