PHP FPM
PHP-FPM 是一个 PHPFastCGI 管理器,是只用于 PHP 的。PHP-FPM 其实是 PHP 源代码的一个补丁,旨在将 FastCGI 进程管理整合进 PHP 包中。
Cloud Insight 收集 PHP-FPM 状态页信息监控 PHP 相关进程,可视化其性能。
性能指标
Cloud Insight 采集 PHP FPM 以下性能指标:
指标 | 单位 | 具体含义 |
---|---|---|
php_fpm.listen_queue.size | 请求等待队列最高的数量 | |
php_fpm.processes.active | 活跃进程数量 | |
php_fpm.processes.idle | 空闲进程数量 | |
php_fpm.processes.max_reached | 最大的活跃进程数量 | |
php_fpm.processes.total | 总进程数量 | |
php_fpm.requests.accepted | 当前池子接受的请求数 | |
php_fpm.requests.slow | 缓慢请求的数量 |
配置 PHP FPM 监控
开启 PHP-FPM 状态页监控
确保 PHP-FPM 状态页处于开启状态。详细说明见:PHP-FPM 官方文档,首先打开 php-fpm 状态功能:
pm.status_path = /status
默认情况下为 /status,此处也可以改成其他的例如 /phpfpm_status 等
在默认主机里面加上 location
本文以 Nginx 为例,在 Nginx 的 server 里面添加一个 location 地址:
server {
location /status {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
配置完 Nginx 重启 php-fpm Nginx 使之生效,之后可以访问配置的这个 URL http://127.0.0.1/status,如果输出 php-fpm 的状态页信息即为配置成功。
编辑配置文件
编辑配置文件 conf.d/php_fpm.yaml,使 Cloud Insight Agent 可以与 FPM 终端通信,有关终端信息请查看线程池配置。
init_config:
instances:
- # Get metrics from your FPM pool with this URL
status_url: http://127.0.0.1/status
# Get a reliable service check of you FPM pool with that one
ping_url: http://127.0.0.1/ping
# These 2 URLs should follow the options from your FPM pool
# See http://php.net/manual/en/install.fpm.configuration.php
# * pm.status_path
# * ping.path
# You should configure your fastcgi passthru (nginx/apache) to
# catch these URLs and redirect them through the FPM pool target
# you want to monitor (FPM `listen` directive in the config, usually
# a UNIX socket or TCP socket.
#
# Use this if you have basic authentication on these pages
# user: Cloud Insight
# password: Cloud Insight
#
# Array of custom tags
# By default metrics and service check will be tagged by pool and host
# tags:
# - tag_key:tag_value
配置文件中的 status_url
要和你开启状态页的路径一致,本文统一是 /status。
重启 Agent
重启 Cloud Insight Agent,使配置生效。
您也可以通过查看 Agent Info 信息,来验证配置是否成功。当出现以下信息,则代表安装成功。
Checks
======
[...]
php_fpm
------
- instance #0 [OK]
- Collected 8 metrics & 0 events
有关 Agent Info 信息的查看,请访问帮助中心,查看 Cloud Insight Agent 常用操作。
默认标签
Cloud Insight 采集 PHP-FPM 以下默认主机标签:
标签种类 | 标签含义 |
---|---|
pool | 进程池名称(例如 "www") |
常见问题
- PHP FPM 异常报错
- 若要在同一个服务器上监控多个相同的平台服务,参考如何监控多个平台服务。
- 有任何关于产品的使用疑惑,参考常见问题。