Configurazione di Cloud Logging per PHP

Puoi scrivere log su Cloud Logging da applicazioni PHP utilizzando direttamente la libreria Cloud Logging per PHP.

Prima di iniziare

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Attiva Cloud Logging API.

    Abilita l'API

  5. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  6. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  7. Attiva Cloud Logging API.

    Abilita l'API

Installazione della libreria di Cloud Logging per PHP

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

Per scrivere i log dall'app, aggiungi la libreria Cloud Logging per PHP al file Composerr.json:

composer require google/cloud-logging

Creazione di un logger PSR-3

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

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

Abilitazione dell'opzione di raggruppamento

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

Il codice seguente 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 unico processo. Nell'ambiente flessibile di App Engine, puoi configurare la libreria Cloud Logging per PHP per una velocità effettiva ancora più elevata e una latenza minore. Per maggiori dettagli, consulta Configurazione del daemon di logging.

Configurazione della libreria di 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.

Utilizzo del logger PSR-3

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

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

Per ulteriori informazioni sull'installazione, consulta la documentazione per la libreria Cloud Logging per PHP. Puoi anche segnalare i problemi utilizzando Issue Tracker.

Scrivere log con la libreria client di Cloud Logging

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

Esegui su Google Cloud

Affinché un'applicazione scriva log utilizzando la libreria Cloud Logging per PHP, l'account di servizio per la risorsa sottostante deve avere il ruolo Writer log (roles/logging.logWriter) IAM. La maggior parte degli ambienti Google Cloud configura automaticamente l'account di servizio predefinito con questo ruolo.

App Engine

Cloud Logging è abilitato automaticamente per App Engine e l'account di servizio predefinito della tua app dispone per impostazione predefinita delle autorizzazioni IAM per la scrittura di voci di log.

Per ulteriori informazioni, consulta Scrittura e visualizzazione dei log.

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

Configurazione del daemon per l'ambiente flessibile di App Engine

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

enable_stackdriver_integration: true

Google Kubernetes Engine (GKE)

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

Se necessario, puoi anche utilizzare il comando seguente 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 l'ambito di accesso cloud-platform a ogni istanza. Quando crei una nuova istanza tramite la console Google Cloud, puoi farlo nella sezione Identità e accesso API del riquadro Crea istanza. Utilizza l'account di servizio predefinito di Compute Engine o un altro account di servizio a tua scelta e seleziona Consenti l'accesso completo a tutte le API Cloud nella sezione Identità e accesso API. Qualunque account di servizio seleziona, assicurati che gli sia stato concesso il ruolo Writer log nella sezione IAM e amministrazione della console Google Cloud.

Esegui in locale e altrove

Per utilizzare la libreria di Cloud Logging per PHP al di fuori di Google Cloud, compresa l'esecuzione della libreria sulla tua workstation, sui computer del tuo data center o sulle istanze VM di un altro cloud provider, devi fornire l'ID progetto Google Cloud e le credenziali appropriate dell'account di servizio direttamente nella libreria Cloud Logging per PHP.

Per gli account di servizio esistenti:

  1. Concedi all'account di servizio il ruolo IAM Writer log (roles/logging.logWriter). Per ulteriori informazioni sui ruoli IAM, consulta Controllo dell'accesso.

  2. Configura le credenziali predefinite dell'applicazione.

Se non hai un account di servizio, creane uno. Per informazioni su questo processo, consulta Creare account di servizio.

Per informazioni generali sui metodi che puoi utilizzare per l'autenticazione, consulta Terminologia: account di servizio.

Visualizza i log

Nel pannello di navigazione della console Google Cloud, seleziona Logging, quindi Esplora log:

Vai a Esplora log

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

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

  • Se esegui il deployment della tua applicazione su Compute Engine, imposta la risorsa su Istanza VM GCE.

  • Se esegui il deployment della tua applicazione su 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 di Google Cloud per l'osservabilità e sull'osservabilità di Google Cloud, e su come queste opzioni influiscono sul tipo di risorsa, consulta Migrazione a Google Cloud Observability Kubernetes Monitoring.

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

  • Se non vedi log in Esplora log, per vedere 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, quindi seleziona Converti in filtro avanzato.
    2. Cancella i contenuti visualizzati nella casella dei filtri.
    3. Fai clic su Invia filtro.

    Puoi esaminare le singole voci per identificare le risorse.

Per ulteriori informazioni, consulta Utilizzo di Esplora log.