日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php fpm 测试,zabbix4.2 监控PHP-FPM运行状态的数据

發布時間:2024/4/18 php 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php fpm 测试,zabbix4.2 监控PHP-FPM运行状态的数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

監控PHP-FPM

PHP-FPM監控原理

PHP-FPM程序提供了其運行狀態的數據,通過修改配置文件即可獲取數據。

PHP-FPM狀態數據配置的開啟

開啟PHP-FPM狀態數據配置,需要修改/etc/php-fpm.conf的配置

vim /etc/php-fpm.d/www.conf

pm.status_path = /phpfpmstatus

重啟php服務

systemctl restart php-fpm.service

修改/etc/nginx/nginx.conf配置文件

通過Nginx訪問PHP-FPM的狀態。

vim /etc/nginx/conf.d/monitor.conf

server {

listen 127.0.0.1:80;

server_name 127.0.01;

location /nginxstatus {

stub_status on;

access_log off;

allow 127.0.0.1;

deny all;

}

location ~ ^/ (phpfpmstatus)$ {

include fastcgi_params;

fastcgi_pass 127.0.0.1:9000;

fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;

}

}

PHP-FPM監控腳本的實現

1.PHP-FPM監控腳本1

vim /etc/zabbix/monitor_phpfpm_status.sh

#!/bin/bash

source /etc/bashrc >/dev/null 2>&1

source /etc/profile >/dev/null 2>&1

PHPFPM_FILE=/var/log/zabbix/phpfpmstatus.tmp

CMD () {

curl http://127.0.0.1/phpfpmstatus >${PHPFPM_FILE} 2>&1

}

if [ -e ${PHPFPM_FILE} ];then

TIMEFROM='stat -c %Y ${TMP_MYSQL_STATUS}'

TIMENOW='data +%s'

if [ 'expr $TIMENOW - $TIMEFROM' -gt 60 ];then

rm -f ${PHPFPM_FILE}

CMD

fi

else

CMD

fi

pool() {

awk '/pool/ {print $NF}' ${PHPFPM_FILE}

}

process_manager() {

awk '/process manager/ {print $NF}' ${PHPFPM_FILE}

}

start() {

awk '/^start since:/ {print $NF}' ${PHPFPM_FILE}

}

accepted_conn() {

awk '/^accepted conn:/ {print $NF}' ${PHPFPM_FILE}

}

listen_queue() {

awk '/^listen queue:/ {print $NF}' ${PHPFPM_FILE}

}

max_listen_queue() {

awk '/^max listen queue:/ {print $NF}' ${PHPFPM_FILE}

}

listen_queue_len() {

awk '/^listen queue len:/ {print $NF}' ${PHPFPM_FILE}

}

idle_processes() {

awk '/^idle processes:/ {print $NF}' ${PHPFPM_FILE}

}

active_processes() {

awk '/^active processes:/ {print $NF}' ${PHPFPM_FILE}

}

total_processes() {

awk '/^total processes:/ {print $NF}' ${PHPFPM_FILE}

}

max_active_processes() {

awk '/^max active processes:/ {print $NF}' ${PHPFPM_FILE}

}

max_children_reached() {

awk '/^max children reached:/ {print $NF}' ${PHPFPM_FILE}

}

case "$1" in

pool)

pool

;;

process_manager)

process_manager

;;

start_since)

start_since

;;

listen_queue)

listen_queue

;;

max_listen_queue)

max_listen_queue

;;

listen_queue_len)

listen_queue_len

;;

idle_processes)

idle_processes

;;

active_processes)

active_processes

;;

total_processes)

total_processes

;;

max_active_processes)

max_active_processes

;;

max_children_reached)

max_children_reached

;;

*)

echo "Usage: $0 {pool|process_manager|start_since|max_listen_queue|listen_queue_len|idle_processes|active_processes|total_processes|max_active_processes|max_children_reached}"

esac

PHP-FPM監控腳本2

#!/bin/bash

PHPFPM_COMMAND=$1

PHPFPM_PORT=80

start_since(){

/usr/bin/curl -s "http://localhost:"$PHPFPM_PORT"/phpfpmstatus" |awk '/^start since:/ {print $NF}'

}

accepted_conn(){

/usr/bin/curl -s "http://localhost:"$PHPFPM_PORT"/phpfpmstatus" |awk '/^accepted conn:/ {print $NF}'

}

listen_queue(){

/usr/bin/curl -s "http://localhost:"$PHPFPM_PORT"/phpfpmstatus" |awk '/^listen queue:/ {print $NF}'

}

max_listen_queue(){

/usr/bin/curl -s "http://localhost:"$PHPFPM_PORT"/phpfpmstatus" |awk '/^max listen queue:/ {print $NF}'

}

listen_queue_len(){

/usr/bin/curl -s "http://localhost:"$PHPFPM_PORT"/phpfpmstatus" |awk '/^listen queue len:/ {print $NF}'

}

idle_processes(){

/usr/bin/curl -s "http://localhost:"$PHPFPM_PORT"/phpfpmstatus" |awk '/^idle processes:/ {print $NF}'

}

active_processes(){

/usr/bin/curl -s "http://localhost:"$PHPFPM_PORT"/phpfpmstatus" |awk '/^active processes:/ {print $NF}'

}

total_processes(){

/usr/bin/curl -s "http://localhost:"$PHPFPM_PORT"/phpfpmstatus" |awk '/^total processes:/ {print $NF}'

}

max_active_processes(){

/usr/bin/curl -s "http://localhost:"$PHPFPM_PORT"/phpfpmstatus" |awk '/^max active processes:/ {print $NF}'

}

max_children_reached(){

/usr/bin/curl -s "http://localhost:"$PHPFPM_PORT"/phpfpmstatus" |awk '/^max children reached:/ {print $NF}'

}

slow_requests(){

/usr/bin/curl -s "http://localhost:"$PHPFPM_PORT"/phpfpmstatus" |awk '/^slow requests:/ {print $NF}'

}

case $PHPFPM_COMMAND in

start_since)

start_since;

;;

accepted_conn)

accepted_conn;

;;

listen_queue)

listen_queue;

;;

max_listen_queue)

max_listen_queue;

;;

listen_queue_len)

listen_queue_len;

;;

idle_processes)

idle_processes;

;;

active_processes)

active_processes;

;;

total_processes)

total_processes;

;;

max_active_processes)

max_active_processes;

;;

max_children_reached)

max_children_reached;

;;

slow_requests)

slow_requests;

;;

*)

echo $"USAGE:$0 {start_since|accepted_conn|listen_queue|max_listen_queue|listen_queue_len|idle_processes|active_processes|total_processes|max_active_processes|max_children_reached}"

esac

添加執行權限

cd /etc/zabbix/

chmod +x? monitor_phpfpm_status.sh

更改腳本的所有者和所屬組

[root@localhost zabbix]# chown zabbix:zabbix monitor_phpfpm_status.sh

編輯zabbix_agentd.conf的配置文件

vim /etc/zabbix/zabbix_agentd.conf

UserParameter=php-fpm.status[*],/bin/bash /etc/zabbix/monitor_phpfpm_status.sh "$1"

重啟zabbix-agent修改配置文件必須重啟

編譯安裝客戶端重啟命令

systemctl restart zabbix_agentd

yum源安裝客戶端重啟命令

systemctl restart? zabbix-agent.service

php-fpm狀態解釋

pool

fpm池子名稱,大多數為www

process manager

進程管理方式,值:static, dynamic or ondemand. dynamic

start time

啟動日期,如果reload了php-fpm,時間會更新

start since

運行時長

accepted conn

當前池子接受的請求數

listen queue

請求等待隊列,如果這個值不為0,那么要增加FPM的進程數量

max listen queue

請求等待隊列最高的數量

listen queue len

socket等待隊列長度

idle processes

空閑進程數量

active processes

活躍進程數量

total processes

總進程數量

max active processes

最大的活躍進程數量(FPM啟動開始算)

max children reached

大道進程最大數量限制的次數,如果這個數量不為0,那說明你的最大進程數量太小了,請改大一點。

slow requests

啟用了php-fpm slow-log,緩慢請求的數量

PHP-FPM監控key的配置

zabbix-server端測試獲取key

zabbix_get -s 192.168.6.134 -k php-fpm.status[listen_queue_len]

最新數據

總結

以上是生活随笔為你收集整理的php fpm 测试,zabbix4.2 监控PHP-FPM运行状态的数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。