在 Ubuntu 上監控 PHP-FPM 的性能和狀態,可以通過多種方法實現。以下是幾種常用的方法:
systemd
查看 PHP-FPM 狀態如果你的 PHP-FPM 是通過 systemd
管理的(這是大多數現代 Ubuntu 版本的默認設置),你可以使用以下命令查看其狀態:
sudo systemctl status php-fpm
或者查看更詳細的日志:
sudo journalctl -u php-fpm
top
或 htop
實時監控top
和 htop
是實時監控系統資源使用情況的工具,可以幫助你查看 PHP-FPM 進程的 CPU 和內存使用情況。
安裝 htop
(如果尚未安裝):
sudo apt update
sudo apt install htop
運行 htop
并查找 PHP-FPM 進程:
打開 htop
后,可以使用搜索功能(通常是按 /
鍵)輸入 php-fpm
來過濾相關進程。
php-fpm
的內置狀態頁面PHP-FPM 提供了一個內置的狀態頁面,可以通過配置來啟用。這對于實時監控和調試非常有用。
編輯 PHP-FPM 配置文件
通常位于 /etc/php/{版本號}/fpm/pool.d/www.conf
,例如 /etc/php/7.4/fpm/pool.d/www.conf
。
sudo nano /etc/php/7.4/fpm/pool.d/www.conf
啟用 pm.status_path
找到并取消注釋(刪除行首的 ;
)以下行:
pm.status_path = /status
重啟 PHP-FPM 服務
sudo systemctl restart php7.4-fpm
訪問狀態頁面
在瀏覽器中訪問 http://your_server_ip_or_domain/status
,你需要提供一個用戶名和密碼。這些憑據可以在同一配置文件中設置:
; 設置訪問狀態頁面的認證
pm.status_path = /status
ping.path = /ping
security.limit_extensions = .php .html
然后,設置用戶名和密碼:
; 在 [www] 池中添加以下行
php_admin_value[security.limit_extensions] = .php .html
php_admin_value[security.limit_request_field_size] = 51200
php_admin_value[request_slowlog_timeout] = 0
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 32M
為了設置認證,可以使用 htpasswd
工具創建一個密碼文件:
sudo apt install apache2-utils
sudo htpasswd -c /etc/php/{版本號}/fpm/user {用戶名}
替換 {版本號}
和 {用戶名}
,然后輸入并確認密碼。
訪問認證后的狀態頁面
現在,訪問 http://your_server_ip_or_domain/status
并輸入你設置的用戶名和密碼,即可查看 PHP-FPM 的詳細狀態信息。
為了更全面地監控 PHP-FPM 以及其他系統指標,可以考慮使用監控工具,如 Prometheus 結合 Grafana,或者 Zabbix。
安裝 Prometheus 和 Grafana
sudo apt update
sudo apt install prometheus grafana
配置 Prometheus 抓取 PHP-FPM 指標
編輯 Prometheus 的配置文件 /etc/prometheus/prometheus.yml
,添加 PHP-FPM 的 scrape 配置。
設置 Grafana 數據源為 Prometheus
在 Grafana 中添加 Prometheus 作為數據源,并創建儀表盤來展示 PHP-FPM 的指標。
PHP-FPM 的日志文件通常位于 /var/log/php-fpm/
目錄下。你可以使用工具如 grep
、awk
或日志管理工具(如 ELK Stack
)來分析日志,監控錯誤和性能問題。
# 查看最近的 PHP-FPM 錯誤日志
sudo tail -f /var/log/php7.4-fpm.log
php-fpmstat
php-fpmstat
是一個用于監控 PHP-FPM 性能的小型工具。
sudo apt install php-fpmstat
php-fpmstat -c /etc/php/7.4/fpm/pool.d/www.conf
這將顯示 PHP-FPM 的各種性能指標。
根據你的需求和熟悉程度,可以選擇適合的方法來監控 PHP-FPM:
systemctl
和 journalctl
top
或 htop
php-fpmstat
快速查看性能指標選擇合適的方法組合,可以有效地監控和優化 PHP-FPM 在 Ubuntu 上的性能。