Configura Cloud Logging para PHP

Puedes escribir registros en Cloud Logging desde aplicaciones de PHP directamente con la biblioteca de Cloud Logging para PHP.

Antes de comenzar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Logging API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Logging API.

    Enable the API

Instala la biblioteca de Cloud Logging para PHP

La biblioteca de Cloud Logging para PHP proporciona un PSR-3 simple implementación de logger en frameworks web de PHP.

A fin de escribir registros desde tu app, agrega la biblioteca de Cloud Logging para PHP a tu composer.json:

composer require google/cloud-logging

Crea un registrador PSR-3

Usa el siguiente código para crear un registrador PSR-3:

use Google\Cloud\Logging\LoggingClient;
$logging = new LoggingClient([
    'projectId' => $projectId
]);
$logger = $logging->psrLogger('app');

Habilita la opción de agrupación por lotes

El registrador PSR-3 envía los registros de forma sincronizada. Esto significa que cuando emitas un registro, agregará latencia de RPC a la solicitud del usuario. En particular, si emites varios registros en una única solicitud, la latencia agregada será significativa. Es probable que quieras evitar eso.

El siguiente código crea un registrador PSR-3 que agrupará por lotes a varios registros en una sola llamada RCP:

$logger = LoggingClient::psrBatchLogger('app');

De forma predeterminada, este registrador agrupa a los registros dentro de un solo proceso. En el entorno flexible de App Engine, puedes configurar la biblioteca de Cloud Logging para PHP con una capacidad de procesamiento aún mayor y una latencia más baja. Para obtener más información, consulta Configura el daemon de registro.

Configura la biblioteca de Cloud Logging para PHP

Puedes personalizar el comportamiento de la biblioteca de Cloud Logging para PHP. Consulta el documento de configuración para obtener una lista de las opciones de configuración posibles.

Usa el registrador PSR-3

Una vez que el registrador se crea, puedes usarlo en tu aplicación:

$logger->info('Hello World');
$logger->error('Oh no');

Para obtener más información sobre la instalación, consulta la documentación de la biblioteca de Cloud Logging para PHP. También puedes informar problemas con la Herramienta de seguimiento de errores.

Cómo escribir registros con la biblioteca cliente de Cloud Logging

Para obtener información sobre cómo usar directamente la biblioteca cliente de Cloud Logging para PHP, consulta Bibliotecas cliente de Cloud Logging.

Ejecuta en Google Cloud

Para que una aplicación escriba registros con la biblioteca de Cloud Logging para PHP, la cuenta de servicio del recurso subyacente debe tener el rol de IAM Escritor de registros (roles/logging.logWriter). La mayoría de los entornos de Google Cloud configuran automáticamente cuenta de servicio tengan este rol.

App Engine

Cloud Logging se habilita automáticamente para App Engine, y la cuenta de servicio predeterminada de tu app tiene los permisos de IAM de forma predeterminada para escribir entradas de registro.

Para obtener más información, consulta Escribe y visualiza registros.

Sin embargo, te recomendamos que uses el registrador PSR-3 que agrega a tus registros metadatos de forma automática para que los registros de tu aplicación estén correlacionados con los registros de solicitud.

Configura el daemon para el entorno flexible de App Engine

En el entorno flexible de App Engine, puedes configurar la biblioteca de Cloud Logging para PHP de modo que use un programa daemon externo y así maximizar la capacidad de procesamiento de registro y minimizar la latencia de la app. Para habilitar esta función, agrega la siguiente línea a la sección runtime_config en app.yaml:

enable_stackdriver_integration: true

Google Kubernetes Engine (GKE)

GKE otorga automáticamente a la cuenta de servicio predeterminada el rol de IAM Escritor de registros (roles/logging.logWriter). Si usas Federación de identidades para cargas de trabajo para GKE con esta cuenta de servicio predeterminada para permitir que las cargas de trabajo accedan a recursos las APIs de Google Cloud, no se requiere ninguna configuración adicional. Sin embargo, si usas la Federación de identidades para cargas de trabajo para GKE con una cuenta de servicio de IAM personalizada y, luego, asegúrate de que la cuenta tiene el rol de Escritor de registros (roles/logging.logWriter).

Si es necesario, también puedes usar el siguiente comando para agregar el permiso de acceso logging.write cuando creas el clúster:

gcloud container clusters create example-cluster-name \
    --scopes https://www.googleapis.com/auth/logging.write

Compute Engine

Cuando uses las instancias de VM de Compute Engine, agrega el permiso de acceso cloud-platform a cada instancia. Cuando crees una instancia nueva a través del consola de Google Cloud, puedes hacerlo en la sección Identidad y acceso a la API del panel Crear instancia. Usa la cuenta de servicio predeterminada de Compute Engine o una cuenta de servicio diferente y selecciona Permitir acceso total a las API de Cloud en la sección Identidad y acceso a la API. Cualquiera que sea el servicio que selecciones, asegúrate de que se le haya otorgado la El rol de escritor de registros en IAM y Administrador de la Consola de Google Cloud

Ejecuta de forma local y en otros lugares

Si deseas usar la biblioteca de Cloud Logging para PHP fuera de Google Cloud, sigue estos pasos: incluida la ejecución de la biblioteca en tu propia estación de trabajo, en la infraestructura computadoras o en las instancias de VM de otro proveedor de servicios en la nube, debes suministra tu ID del proyecto de Google Cloud y cuenta de servicio las credenciales directamente en la biblioteca de Cloud Logging para PHP.

Para cuentas de servicio existentes, haz lo siguiente:

  1. Otorga a la cuenta de servicio el rol de IAM de Escritor de registros (roles/logging.logWriter). Para obtener más información sobre los roles de IAM, consulta Control de acceso.

  2. Configura credenciales predeterminadas de la aplicación.

Si no tienes una cuenta de servicio, crea una. Para obtener información sobre este proceso, consulta Crea cuentas de servicio.

Si quieres obtener información general sobre los métodos que puedes usar para la autenticación, consulta Terminología: cuentas de servicio.

Consulta los registros

En la consola de Google Cloud, ve a la página Explorador de registros.

Ir al Explorador de registros

Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

En el Explorador de registros, debes especificar uno o más recursos, aunque la selección de recursos puede no ser obvia. Aquí encontrarás algunas sugerencias que te ayudarán a comenzar:

  • Si implementas tu aplicación en App Engine o utilizas las bibliotecas específicas de App Engine, configura tu recurso como Aplicación de GAE.

  • Si implementas tu aplicación en Compute Engine, configura el recurso como Instancia de VM de GCE.

  • Si implementas tu aplicación en Google Kubernetes Engine, la configuración de registro de tu clúster determina el tipo de recurso de las entradas de registro. Para obtener información detallada sobre Google Cloud Observability heredado y las soluciones de Kubernetes Monitoring de Google Cloud Observability, y cómo esas opciones afectan el tipo de recurso, consulta Cómo migrar a Kubernetes Monitoring de Google Cloud Observability.

  • Si la aplicación usa la API de Cloud Logging directamente, el recurso depende de la API y de tu configuración. Por ejemplo, en la aplicación, puedes especificar un recurso o usar un recurso predeterminado.

  • Si no ves ningún registro en el Explorador de registros, cambia al modo de consulta avanzada y usa una consulta vacía para ver todas las entradas de registro.

    1. Para cambiar al modo de consulta avanzada, haz clic en menú (▾) en la parte superior del visor de registros y selecciona Convertir a filtro avanzado.
    2. Borra el contenido que aparece en el cuadro de filtro.
    3. Haz clic en Enviar filtro.

    Puedes examinar las entradas individuales para identificar tus recursos.

Para obtener información adicional, consulta Usa el Explorador de registros.