Zabbix6.0 通过status_path监控php-fpm

289 阅读1分钟

1. php-fpm 的 status_path

  php-fpm 和 nginx 一样 (nginx 的 stub_status),内建了个状态页,可以通过该状态页了解监控 php-fpm 的状态。

  1. 配置开启,找到 php-fpm 的配置文件,添加以下配置:

    # 访问路径,可自定义
    pm.status_path = /php-fpm-status
    
  2. 找到 nginx 的配置文件,添加以下配置:

     http {
      # 在http中添加一个 server {}
    
      server {
        listen 80;
        # 提供给本地的zabbix-agent2服务使用,所以server_name设置为localhost
        server_name localhost;
        
        # 配置此路径 对应php-fpm配置中的pm.status_path 仅允许本地127.0.0.1访问(阻止外部访问) 用于Zabbix监控php-fpm时获取status信息
        location /php-fpm-status {
          fastcgi_pass 127.0.0.1:9000;
          include fastcgi_params;
          fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
          # 仅允许127.0.0.1访问
          allow 127.0.0.1;
          deny all;
        }
      }
    
    }
    
    
  3. 配置完成,重载Nginx、php-fpm,打开上面配置的 status_path 页面 (localhost/php-fpm-status),如下图: image.png 可以看到返回了一段文本,包含 php-fpm 的一些信息,Zabbix 监控时会解析这段文本拿到数据进行监控。

2. php-fpm 的 ping

  ping 和 status_path 类似,也是一个状态页,主要用来检测 php-fpm 是否存活、是否可以响应请求。

  1. 配置开启,找到 php-fpm 的配置文件,添加以下配置:

    # 访问路径,可自定义
    ping.path = /php-fpm-ping
    # 还可以配置 ping.response , ping 页面的返回值
    # 默认值为 ping.response = pong
    # 一般无特殊需求不需要更改
    
  2. 找到 nginx 的配置文件,添加以下配置:

     http {
      # 在http中添加一个 server {}
    
      server {
        listen 80;
        # 提供给本地的zabbix-agent2服务使用,所以server_name设置为localhost
        server_name localhost;
        
        # 配置此路径 对应php-fpm配置中的ping.path 仅允许本地127.0.0.1访问(阻止外部访问) 用于Zabbix监控php-fpm时确认php-fpm的存活状态
        location /php-fpm-ping {
          fastcgi_pass 127.0.0.1:9000;
          include fastcgi_params;
          fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
          # 仅允许127.0.0.1访问
          allow 127.0.0.1;
          deny all;
        }
      }
    
    }
    
    
  3. 配置完成,重载Nginx、php-fpm,打开上面配置的 ping 页面 (localhost/php-fpm-ping),如下图: image.png 可以看到返回了一段文本,文本内容即 ping.response 配置的返回值,由于上文中没有配置,所以是默认值“pong”,Zabbix 监控时会获取到这段文本,确认 php-fpm 是否正常工作。

3. 配置模板:PHP-FPM by Zabbix agent

  1. 查看一下此模板的宏,从中选出我们需要填写的 image.png 基本监控需要填写:目标Nginx的 HOST、PORT、STATUS.PAGE、PING.PAGE、PING.REPLY

  2. 添加模板,添加宏,填入目标Nginx的HOST,填入上文Nginx中配置好的 PATH、PORT image.png

  3. 保存,查看主机 -> 最新数据,稍等片刻即可获取到php-fpm相关的数据。