Configurazione di Cloud Logging per PHP

Puoi scrivere log in Cloud Logging dalle applicazioni PHP utilizzando direttamente la libreria Cloud Logging per PHP.

Prima di iniziare

  1. Accedi al tuo Google Cloud account. Se non hai mai utilizzato Google Cloud, crea un account per valutare il rendimento dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per eseguire, testare ed eseguire il deployment dei carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Logging API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Logging API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

Installare la libreria Cloud Logging per PHP

La libreria Cloud Logging per PHP fornisce una semplice PSR-3 PSR-3 per i framework web PHP.

Per scrivere log dalla tua app, aggiungi la libreria Cloud Logging per PHP a composer.json:

composer require google/cloud-logging

Creare un logger PSR-3

Utilizza il seguente codice per creare un logger PSR-3:

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

Abilitare l'opzione di batching

Il logger PSR-3 invia i log in modo sincrono. Ciò significa che ogni volta che emetti un log, aggiungerà la latenza RPC alla richiesta dell'utente. Soprattutto se emetti più log in una singola richiesta, la latenza aggiunta sarà significativa. Probabilmente vorrai evitarlo.

Il seguente codice crea un logger PSR-3 che raggruppa più log in una singola chiamata RPC:

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

Per impostazione predefinita, questo logger raggruppa i log in un singolo processo. Nell'ambiente flessibile di App Engine, puoi configurare la libreria Cloud Logging per PHP per una velocità effettiva ancora maggiore e una latenza inferiore. Per maggiori dettagli, vedi Configurare il daemon di logging.

Configurare la libreria Cloud Logging per PHP

Puoi personalizzare il comportamento della libreria Cloud Logging per PHP. Consulta il documento di configurazione per un elenco delle possibili opzioni di configurazione.

Utilizzare il logger PSR-3

Una volta creato il logger, puoi utilizzarlo nella tua applicazione:

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

Per ulteriori informazioni sull'installazione, consulta la documentazione della libreria Cloud Logging per PHP. Puoi anche segnalare problemi utilizzando il tracker dei problemi.

Scrivere log con la libreria client di Cloud Logging

Per informazioni sull'utilizzo diretto della libreria client di Cloud Logging per PHP, vedi Librerie client di Cloud Logging.

Eseguire su Google Cloud

Affinché un'applicazione possa scrivere log utilizzando la libreria Cloud Logging per PHP, il account di servizio della risorsa sottostante deve avere il ruolo IAMroles/logging.logWriter Writer di log (). La maggior parte degli Google Cloud ambienti configura automaticamente il account di servizio predefinito in modo che abbia questo ruolo.

App Engine

Cloud Logging è abilitato automaticamente per App Engine e il service account predefinito della tua app dispone delle autorizzazioni IAM per scrivere voci di log.

Per saperne di più, vedi Scrivere e visualizzare i log.

Tuttavia, ti consigliamo di utilizzare il logger PSR-3 che aggiunge automaticamente i metadati ai log in modo che i log dell'applicazione siano correlati ai log delle richieste.

Configurare il daemon per l'ambiente flessibile di App Engine

Nell'ambiente flessibile di App Engine, puoi configurare la libreria Cloud Logging per PHP in modo che utilizzi un programma daemon esterno per massimizzare la velocità effettiva dei log e ridurre al minimo la latenza dell'app. Per abilitare questa funzionalità, aggiungi la seguente riga alla sezione runtime_config in app.yaml:

enable_stackdriver_integration: true

Google Kubernetes Engine (GKE)

GKE concede automaticamente al account di servizio predefinito il ruolo IAM Writer di log (roles/logging.logWriter). Se utilizzi Workload Identity Federation for GKE con questo account di servizio predefinito per consentire ai carichi di lavoro di accedere ad API specifiche Google Cloud , non è necessaria alcuna configurazione aggiuntiva. Tuttavia, se utilizzi Workload Identity Federation for GKE con un account di servizio IAM personalizzato, assicurati che il service account personalizzato abbia il ruolo Writer di log (roles/logging.logWriter).

Se necessario, puoi anche utilizzare il seguente comando per aggiungere l'ambito di accesso logging.write durante la creazione del cluster:

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

Compute Engine

Quando utilizzi le istanze VM di Compute Engine, aggiungi lo cloud-platform ambito di accesso a ogni istanza. Quando crei una nuova istanza tramite la Google Cloud console, puoi farlo nella sezione Identità e accesso API del riquadro Crea istanza. Utilizza il service account predefinito di Compute Engine o un altro account di servizio di tua scelta e seleziona Consenti l'accesso completo a tutte le API Cloud nella sezione Identità e accesso API. Qualunque sia il service account selezionato, assicurati che gli sia stato concesso il ruolo Writer di log nella sezione IAM e amministrazione della Google Cloud console.

Eseguire localmente e altrove

Per utilizzare la libreria Cloud Logging per PHP al di fuori di Google Cloud, inclusa l'esecuzione della libreria sulla tua workstation, sui computer del tuo data center o sulle istanze VM di un altro provider cloud, devi configurare le credenziali predefinite dell'applicazione (ADC) nel tuo ambiente locale per autenticarti alla libreria Cloud Logging per PHP.

Per saperne di più, consulta Configurare ADC per on-premise o un altro provider cloud.

Visualizzare i log

Nella Google Cloud console, vai alla pagina Esplora log:

Vai a Esplora log

Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

In Esplora log, devi specificare una o più risorse, ma la selezione delle risorse potrebbe non essere ovvia. Ecco alcuni suggerimenti per iniziare:

  • Se esegui il deployment dell'applicazione in App Engine o utilizzi le librerie specifiche di App Engine, imposta la risorsa su Applicazione GAE.

  • Se esegui il deployment dell'applicazione su Compute Engine, imposta la risorsa su Istanza VM di GCE.

  • Se esegui il deployment dell'applicazione in Google Kubernetes Engine, la configurazione di logging del cluster determina il tipo di risorsa delle voci di log. Per una discussione dettagliata sulle soluzioni Legacy Google Cloud Observability e Google Cloud Observability Kubernetes Monitoring e su come queste opzioni influiscono sul tipo di risorsa, vedi Eseguire la migrazione a Google Cloud Observability Kubernetes Monitoring.

  • Se la tua applicazione utilizza direttamente l'API Cloud Logging, la risorsa dipende dall'API e dalla configurazione. Ad esempio, nella tua applicazione puoi specificare una risorsa o utilizzare una risorsa predefinita.

  • Se non vedi log in Esplora log, per visualizzare tutte le voci di log, passa alla modalità di query avanzata e utilizza una query vuota.

    1. Per passare alla modalità di query avanzata, fai clic su menu (▾) nella parte superiore di Esplora log e seleziona Converti in filtro avanzato.
    2. Cancella i contenuti visualizzati nella casella del filtro.
    3. Fai clic su Invia filtro.

    Puoi esaminare le singole voci per identificare le tue risorse.

Per ulteriori informazioni, vedi Utilizzo di Esplora log.