1. 程式人生 > >開啟nginx和php-fpm的status狀態監控

開啟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

  • 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_status

  • 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.