Supported OS Windows Mac OS

Versión de la integración5.1.0

información general de PHP

Información general

El check de PHP-FPM monitoriza el estado de tu grupo de FPM y realiza un seguimiento del rendimiento de las solicitudes.

Configuración

Instalación

El check de PHP-FPM está incluido en el paquete del Datadog Agent, por lo que no necesitas instalar nada más en tu servidor.

Configuración

Sigue las instrucciones de abajo para configurar este check para un Agent que se ejecuta en un host. En el caso de entornos en contenedores, consulta la sección En contenedores.

Host

Para configurar este check para un Agent que se ejecuta en un host:

  1. Edita el archivo php_fpm.d/conf.yaml, que se encuentra en la carpeta conf.d/ en la raíz del directorio de configuración del Agent. Para ver todas las opciones de configuración disponibles, consulta el marathon.d/conf.yaml de ejemplo:

    init_config:
    
    instances:
      ## @param status_url - string - required
      ## Get metrics from your FPM pool with this URL
      ## The status URLs should follow the options from your FPM pool
      ## See http://php.net/manual/en/install.fpm.configuration.php
      ##   * pm.status_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.
      #
      - status_url: http://localhost/status
    
        ## @param ping_url - string - required
        ## Get a reliable service check of your FPM pool with `ping_url` parameter
        ## The ping URLs should follow the options from your FPM pool
        ## See http://php.net/manual/en/install.fpm.configuration.php
        ##   * 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.
        #
        ping_url: http://localhost/ping
    
        ## @param use_fastcgi - boolean - required - default: false
        ## Communicate directly with PHP-FPM using FastCGI
        #
        use_fastcgi: false
    
        ## @param ping_reply - string - required
        ## Set the expected reply to the ping.
        #
        ping_reply: pong
    
  2. Reinicia el Agent.

Contenedores

En el caso de los entornos en contenedores, consulta las plantillas de integración de Autodiscovery para obtener orientación sobre la aplicación de los parámetros que se indican a continuación.

ParámetroValor
<INTEGRATION_NAME>php_fpm
<INIT_CONFIG>en blanco o {}
<INSTANCE_CONFIG>{"status_url":"http://%%host%%/status", "ping_url":"http://%%host%%/ping", "use_fastcgi": false, "ping_reply": "pong"}

Extras

Grupos múltiples

Es posible monitorizar múltiples grupos de PHP-FPM utilizando el mismo servidor proxy, un escenario común cuando se ejecuta en Kubernetes. Para ello, modifica las rutas de tu servidor para que apunten a diferentes instancias PHP-FPM. Este es un ejemplo de configuración de NGINX:

server {
    ...

    location ~ ^/(status1|ping1)$ {
        access_log off;
        fastcgi_pass instance1_ip:instance1_port;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ ^/(status2|ping2)$ {
        access_log off;
        fastcgi_pass instance2_ip:instance2_port;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Si esta estrategia a escala te resulta demasiado tediosa, configurar use_fastcgi como true instruye al check para que omita cualquier servidor proxy y se comunique directamente con PHP-FPM a través de FastCGI. El puerto por defecto es 9000 cuando se omite status_url o ping_url.

Sockets Unix

Si tu instalación de PHP-FPM utiliza sockets Unix, debes utilizar la siguiente sintaxis para status_url, ping_url y habilitar use_fastcgi:

ParámetroValor
status_urlunix:///<FILE_PATH>.sock/status
ping_urlunix:///<FILE_PATH>.sock/ping
ping_replypong
use_fastcgitrue

Nota: Con Autodiscovery, si el Agent se ejecuta en un(a) contenedor/tarea/pod separado(a), no tendrá acceso al archivo de sockets Unix de tu grupo de FPM. Para solucionar este inconveniente, ejecuta el Agent como sidecar.

Validación

Ejecuta el subcomando status del Agent y busca php_fpm en la sección Checks.

Datos recopilados

Métricas

Eventos

El check de PHP-FPM no incluye eventos.

Checks de servicios

Solucionar problemas

¿Necesitas ayuda? Ponte en contacto con el servicio de asistencia de Datadog.