開啟nginx和php-fpm的status狀態監控
本文基於ubuntu16.04 php7.0
最近伺服器的php-fpm程序偶爾會異常飆升,於是想在zabbix上配置監控伺服器的nginx和php-fpm的狀態。前提是需要開啟nginx和php-fpm的status功能。
啟用nginx status配置
- 配置server,一般我們在預設的主機下配置:
server {
#listen 80;
listen 80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name 127.0 .0.1;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location /ngx_status {
allow 127.0.0.1;
deny all;
stub_status on;
access_log off;
}
}
- 重啟nginx,測試訪問
sudo /etc/init.d/nginx retart
- nginx status 引數說明
active connections – 活躍的連線數量
server accepts handled requests — 總共處理了4個連線 , 成功建立4次握手, 總共處理了4個請求
reading — 讀取客戶端的連線數.
writing — 響應資料到客戶端的數量
waiting — 開啟 keep-alive 的情況下,這個值等於 active – (reading+writing), 意思就是 Nginx 已經處理完正在等候下一次請求指令的駐留連線.
啟用 php-fpm status 配置
- 修改php-fpm配置,將 status 開啟
vim /etc/php/7.0/fpm/pool.d/www.conf
pm.status_path = /fpm_status
- 配置 server
server {
#listen 80;
listen 80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name 127.0.0.1;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /fpm_status$ {
allow 127.0.0.1;
deny all;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
- 重啟 php-fpm 和 nginx,測試訪問
- php-fpm 引數說明
pool #fpm池名稱,大多數為www
process manager #程序管理方式dynamic或者static
start time #啟動日誌,如果reload了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,那說明你的最大程序數量過小,可以適當調整。
Happy Coding.