Cloud Logging für PHP einrichten

Sie können Logs von PHP-Anwendungen in Cloud Logging schreiben, indem Sie die Cloud Logging-Bibliothek für PHP direkt verwenden.

Hinweise

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. Cloud Logging API aktivieren.

    Aktivieren Sie die API

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

    Go to project selector

  6. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  7. Cloud Logging API aktivieren.

    Aktivieren Sie die API

Cloud Logging-Bibliothek für PHP installieren

Die Cloud Logging-Bibliothek für PHP bietet eine einfache Implementierung des PSR-3-Loggings für PHP-Web-Frameworks.

Sie können Logs aus Ihrer Anwendung heraus verfassen, wenn Sie die Cloud Logging-Bibliothek für PHP zu Ihrer composer.json hinzufügen:

composer require google/cloud-logging

PSR-3-Logger erstellen

Mit diesem Code können Sie einen PSR-3-Logger erstellen:

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

Stapelverarbeitungsoption aktivieren

Der PSR-3 Logger sendet die Logs synchron. Das bedeutet, dass jedes Mal, wenn Sie ein Log ausgeben, die RPC-Latenz der Nutzeranfrage erhöht wird. Besonders wenn Sie mehrere Logs in einer einzelnen Anfrage ausgeben, erhöht sich die Latenz erheblich. Das wollen Sie wahrscheinlich vermeiden.

Mit diesem Code erstellen Sie einen PSR-3-Logger, der mehrere Logs zu einem einzigen RPC-Aufruf zusammenfasst:

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

Standardmäßig fasst dieser Logger die Logs in einem einzigen Vorgang zusammen. In der flexiblen App Engine-Umgebung können Sie die Cloud Logging-Bibliothek für PHP so konfigurieren, dass der Durchsatz weiter erhöht und die Latenz minimiert wird. Weitere Informationen finden Sie unter Log-Daemon konfigurieren.

Cloud Logging-Bibliothek für PHP konfigurieren

Sie können das Verhalten der Cloud Logging-Bibliothek für PHP anpassen. Eine Liste der möglichen Konfigurationsoptionen finden Sie im Konfigurationsdokument.

PSR-3-Logger verwenden

Sobald der Logger erstellt wurde, können Sie ihn in Ihrer Anwendung verwenden:

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

Weitere Informationen zur Installation finden Sie in der Dokumentation zur Cloud Logging-Bibliothek für PHP. Probleme können Sie über die Problemverfolgung melden.

Logs mit der Cloud Logging-Clientbibliothek schreiben

Informationen zur direkten Verwendung der Cloud Logging-Clientbibliothek für PHP finden Sie unter Cloud Logging-Clientbibliotheken.

In Google Cloud ausführen

Damit eine Anwendung Logs mithilfe der Cloud Logging-Bibliothek für PHP schreiben kann, muss das Dienstkonto für die zugrunde liegende Ressource die IAM-Rolle Logautor (roles/logging.logWriter) haben. In den meisten Google Cloud-Umgebungen wird das Standarddienstkonto automatisch so konfiguriert, dass diese Rolle zugewiesen wird.

App Engine

Cloud Logging ist für App Engine automatisch aktiviert und das Standarddienstkonto Ihrer Anwendung hat standardmäßig die IAM-Berechtigungen zum Schreiben von Logeinträgen.

Weitere Informationen finden Sie unter Logs schreiben und ansehen.

Es empfiehlt sich jedoch, den PSR-3-Logger zu verwenden. Dieser ergänzt Ihre Logs automatisch um Metadaten, sodass Ihre Anwendungslogs den Anfragelogs zugeordnet werden können.

Daemon für die flexible App Engine-Umgebung konfigurieren

In der flexiblen App Engine-Umgebung können Sie die Cloud Logging-Bibliothek für PHP zur Verwendung eines externen Daemon-Programms konfigurieren, um den Logdurchsatz zu maximieren und die Latenz der Anwendung zu minimieren. Fügen Sie die folgende Zeile in den Abschnitt runtime_config in app.yaml ein, um diese Funktion zu aktivieren:

enable_stackdriver_integration: true

Google Kubernetes Engine (GKE)

GKE weist dem Standarddienstkonto automatisch die IAM-Rolle Logautor (roles/logging.logWriter) zu. Wenn Sie Workload Identity mit diesem Standarddienstkonto verwenden, damit Arbeitslasten auf bestimmte Google Cloud APIs zugreifen können, ist keine zusätzliche Konfiguration erforderlich. Wenn Sie Workload Identity jedoch mit einem benutzerdefinierten IAM-Dienstkonto verwenden, muss das benutzerdefinierte Dienstkonto die Rolle des Logautors (roles/logging.logWriter) haben.

Bei Bedarf können Sie auch den folgenden Befehl verwenden, um beim Erstellen des Clusters den Zugriffsbereich logging.write hinzuzufügen:

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

Compute Engine

Wenn Sie Compute Engine-VM-Instanzen verwenden, fügen Sie der jeweiligen Instanz den Zugriffsbereich für cloud-platform hinzu. Wenn Sie eine neue Instanz über die Google Cloud Console erstellen, können Sie dies im Bereich Instanz erstellen unter Identität und API-Zugriff tun. Verwenden Sie das Compute Engine-Standarddienstkonto oder ein anderes Dienstkonto und wählen Sie im Abschnitt Identität und API-Zugriff die Option Uneingeschränkten Zugriff auf alle Cloud APIs zulassen aus. Achten Sie bei jedem ausgewählten Dienstkonto darauf, dass diesem im Abschnitt IAM & Verwaltung der Google Cloud Console die Rolle „Log-Autor“ zugewiesen ist.

Lokal und extern ausführen

Wenn Sie die Cloud Logging-Bibliothek für PHP außerhalb von Google Cloud verwenden möchten, beispielsweise auf Ihrer eigenen Workstation, auf den Computern Ihres Rechenzentrums oder auf den VM-Instanzen eines anderen Cloud-Anbieters, müssen Sie Ihre Google Cloud-Projekt-ID und die entsprechenden Dienstkonto-Anmeldedaten direkt in der Cloud Logging-Bibliothek für PHP angeben.

Bei vorhandenen Dienstkonten gehen Sie so vor:

  1. Gewähren Sie dem Dienstkonto die IAM-Rolle Logautor (roles/logging.logWriter). Weitere Informationen zu IAM-Rollen finden Sie unter Zugriffssteuerung.

  2. Standardanmeldedaten für Anwendungen einrichten

Wenn Sie kein Dienstkonto haben, erstellen Sie eines. Weitere Informationen zu diesem Vorgang finden Sie unter Dienstkonten erstellen.

Allgemeine Informationen zu den Authentifizierungsmethoden finden Sie unter Terminologie: Dienstkonten.

Logs ansehen

Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

Zum Log-Explorer

Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

Im Log-Explorer müssen Sie eine oder mehrere Ressourcen angeben. Die Auswahl der Ressourcen ist jedoch möglicherweise nicht offensichtlich. Hier sind ein paar Tipps für den Einstieg.

  • Wenn Sie Ihre Anwendung für App Engine bereitstellen oder die App Engine-spezifischen Bibliotheken verwenden, setzen Sie die Ressource auf GAE-Anwendung.

  • Wenn Sie Ihre Anwendung auf der Compute Engine bereitstellen, setzen Sie die Ressource auf GCE-VM-Instanz.

  • Wenn Sie Ihre Anwendung in Google Kubernetes Engine bereitstellen, wird der Ressourcentyp der Logeinträge von der Loggingkonfiguration des Clusters bestimmt. Weitere Informationen zu den Legacy-Lösungen von Google Cloud Observability und zu Kubernetes Monitoring für Google Cloud Observability sowie zu den Auswirkungen dieser Optionen auf den Ressourcentyp finden Sie unter Zu Google Cloud Observability Kubernetes Monitoring migrieren.

  • Wenn Ihre Anwendung die Cloud Logging API direkt nutzt, ist die Ressource von der API und Ihrer Konfiguration abhängig. Sie können in Ihrer Anwendung zum Beispiel eine Ressource angeben oder eine Standardressource verwenden.

  • Wenn im Log-Explorer keine Logs zu sehen sind, wechseln Sie zum erweiterten Abfragemodus und verwenden Sie eine leere Abfrage, um alle Logeinträge zu sehen.

    1. Klicken Sie oben im Log-Explorer auf das Dreipunkt-Menü (▾) und wählen Sie In erweiterten Filter umwandeln aus, um zum erweiterten Abfragemodus zu wechseln.
    2. Löschen Sie den Inhalt, der im Filterfeld angezeigt wird.
    3. Klicken Sie auf Filter senden.

    Sie können die einzelnen Einträge prüfen, um Ihre Ressourcen zu identifizieren.

Weitere Informationen finden Sie unter Log-Explorer verwenden.