在 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 上的性能。