跳转至

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")

5分钟,开启你的跨云监控之旅 (`⌄´ )


常见问题