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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

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

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

監(jiān)控PHP-FPM

PHP-FPM監(jiān)控原理

PHP-FPM程序提供了其運(yùn)行狀態(tài)的數(shù)據(jù),通過修改配置文件即可獲取數(shù)據(jù)。

PHP-FPM狀態(tài)數(shù)據(jù)配置的開啟

開啟PHP-FPM狀態(tài)數(shù)據(jù)配置,需要修改/etc/php-fpm.conf的配置

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

pm.status_path = /phpfpmstatus

重啟php服務(wù)

systemctl restart php-fpm.service

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

通過Nginx訪問PHP-FPM的狀態(tài)。

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監(jiān)控腳本的實(shí)現(xiàn)

1.PHP-FPM監(jiān)控腳本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監(jiān)控腳本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

添加執(zhí)行權(quán)限

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狀態(tài)解釋

pool

fpm池子名稱,大多數(shù)為www

process manager

進(jìn)程管理方式,值:static, dynamic or ondemand. dynamic

start time

啟動(dòng)日期,如果reload了php-fpm,時(shí)間會(huì)更新

start since

運(yùn)行時(shí)長

accepted conn

當(dāng)前池子接受的請(qǐng)求數(shù)

listen queue

請(qǐng)求等待隊(duì)列,如果這個(gè)值不為0,那么要增加FPM的進(jìn)程數(shù)量

max listen queue

請(qǐng)求等待隊(duì)列最高的數(shù)量

listen queue len

socket等待隊(duì)列長度

idle processes

空閑進(jìn)程數(shù)量

active processes

活躍進(jìn)程數(shù)量

total processes

總進(jìn)程數(shù)量

max active processes

最大的活躍進(jìn)程數(shù)量(FPM啟動(dòng)開始算)

max children reached

大道進(jìn)程最大數(shù)量限制的次數(shù),如果這個(gè)數(shù)量不為0,那說明你的最大進(jìn)程數(shù)量太小了,請(qǐng)改大一點(diǎn)。

slow requests

啟用了php-fpm slow-log,緩慢請(qǐng)求的數(shù)量

PHP-FPM監(jiān)控key的配置

zabbix-server端測試獲取key

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

最新數(shù)據(jù)

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。