Teilen über


Protokolle in Azure Database for PostgreSQL – Einzelserver

GILT FÜR: Azure Database for PostgreSQL – Single Server

Wichtig

Azure Database for PostgreSQL – Single Server wird eingestellt. Es wird dringend empfohlen, ein Upgrade auf Azure Database for PostgreSQL – Flexible Server auszuführen. Weitere Informationen zum Migrieren zu Azure Database for PostgreSQL – Flexible Server finden Sie unter Was geschieht mit Azure Database for PostgreSQL – Single Server?

Azure Database for PostgreSQL ermöglicht es Ihnen, die Standardprotokolle von Postgres zu konfigurieren und darauf zuzugreifen. Die Protokolle dienen zur Identifizierung, Behebung und Reparatur von Konfigurationsfehlern und suboptimaler Leistung. Beispiele für Protokollierungsinformationen, für die die Konfiguration und der Zugriff möglich sind, sind Fehler, Abfrageinformationen, Autovacuum-Datensätze, Verbindungen und Prüfpunkte. (Der Zugriff auf Transaktionsprotokolle ist nicht verfügbar.)

Die Überwachungsprotokollierung wird über eine PostgreSQL-Erweiterung (pgaudit) bereitgestellt. Weitere Informationen finden Sie im Artikel zu den Konzepten zur Überwachung.

Konfigurieren der Protokollierung

Sie können die Postgres-Standardprotokollierung auf dem Server mit Serverparametern für die Protokollierung konfigurieren. Auf jedem Azure Database for PostgreSQL-Server sind log_checkpoints und log_connections standardmäßig aktiviert. Es gibt zusätzliche Parameter, die Sie entsprechend Ihren Protokollierungsanforderungen anpassen können:

Azure Database for PostgreSQL – Protokollierungsparameter

Weitere Informationen zu Postgres-Protokollparametern finden Sie in den Abschnitten zu den Themen Wann wird protokolliert? und Was wird protokolliert? der Postgres-Dokumentation. Die meisten (aber nicht alle) Postgres-Protokollierungsparameter sind für die Konfiguration in Azure Database for PostgreSQL verfügbar.

Weitere Informationen dazu, wie Sie Parameter in Azure Database for PostgreSQL konfigurieren, finden Sie in der Dokumentation zum Portal bzw. zur Befehlszeilenschnittstelle.

Hinweis

Das Konfigurieren einer großen Menge von Protokollen, z. B. bei der Protokollierung von Anweisungen, kann zu einem erheblich höheren Leistungsaufwand führen.

Zugreifen auf LOG-Dateien

Das Standardformat für Protokolle in Azure Database for PostgreSQL ist „.log“. Beispiel für eine Zeile aus diesem Protokoll:

2019-10-14 17:00:03 UTC-5d773cc3.3c-LOG: connection received: host=101.0.0.6 port=34331 pid=16216

Von Azure Database for PostgreSQL wird ein Ort für die kurzfristige Speicherung der LOG-Dateien bereitgestellt. Je nachdem, welcher Fall früher eintritt, wird nach einer Stunde oder nach dem Erreichen einer Größe von 100 MB eine neue Datei begonnen. Protokolle werden an die aktuelle Datei angehängt, wenn sie von Postgres ausgegeben werden.

Sie können den Aufbewahrungszeitraum für diesen kurzfristigen Protokollspeicher mit dem Parameter log_retention_period festlegen. Der Standardwert ist 3 Tage. Der Maximalwert beträgt 7 Tage. Der kurzfristige Speicherort kann bis zu 1 GB an Protokolldateien enthalten. Nach dem Erreichen einer Größe von 1 GB wird die älteste Datei unabhängig vom Aufbewahrungszeitraum gelöscht, um Platz für neue Protokolle zu schaffen.

Wenn Sie für Protokolle und Protokollanalysen eine Langzeitaufbewahrung wünschen, können Sie die LOG-Dateien herunterladen und an einen Speicherort eines Drittanbieterdiensts verschieben. Sie können die Dateien mit dem Azure-Portal oder der Azure CLI herunterladen. Alternativ können Sie die Azure Monitor-Diagnoseeinstellungen konfigurieren, damit Ihre Protokolle (im JSON-Format) automatisch an Orten abgelegt werden, die für eine längerfristige Speicherung bestimmt sind. Weitere Informationen zu dieser Option finden Sie im Abschnitt unten.

Sie können die Erstellung von LOG-Dateien beenden, indem Sie den Parameter logging_collector auf „Aus“ festlegen. Wir empfehlen Ihnen das Deaktivieren der Erstellung von LOG-Dateien, wenn Sie die Azure Monitor-Diagnoseeinstellungen verwenden. Mit dieser Konfiguration werden die Leistungseinbußen aufgrund der zusätzlichen Protokollierung verringert.

Hinweis

Starten Sie den Server neu, um diese Änderung zu übernehmen.

Ressourcenprotokolle

Azure Database for PostgreSQL ist in die Azure Monitor-Diagnoseeinstellungen integriert. Mit Diagnoseeinstellungen können Sie Ihre Postgres-Protokolle im JSON-Format an Azure Monitor-Protokolle (Analyse und Warnungen), Event Hubs (Streaming) und Azure Storage (Archivierung) senden.

Wichtig

Dieses Diagnosefeature für Serverprotokolle steht nur in den Tarifen „Universell“ und „Arbeitsspeicheroptimiert“ zur Verfügung.

Konfigurieren von Diagnoseeinstellungen

Sie können die Diagnoseeinstellungen für Ihren Postgres-Server über Azure-Portal, die CLI, die REST-API und PowerShell aktivieren. Die auszuwählende Protokollkategorie ist PostgreSQLLogs. (Sie können auch andere Protokolle konfigurieren, wenn Sie den Abfragespeicher nutzen.)

So aktivieren Sie Ressourcenprotokolle über das Azure-Portal:

  1. Wechseln Sie im Portal im Navigationsmenü Ihres Postgres-Servers zu Diagnoseeinstellungen.
  2. Wählen Sie Diagnoseeinstellung hinzufügen aus.
  3. Benennen Sie die Einstellung.
  4. Wählen Sie Ihren bevorzugten Endpunkt aus (Speicherkonto, Event Hub, Log Analytics).
  5. Wählen Sie den Protokolltyp PostgreSQL-Serverprotokolle aus.
  6. Speichern Sie die Einstellungen.

Informationen zum Aktivieren von Ressourcenprotokollen über PowerShell, die CLI oder die REST-API finden Sie im Artikel zu den Diagnoseeinstellungen.

Zugreifen auf Ressourcenprotokolle

Die Art und Weise, wie Sie auf die Protokolle zugreifen, hängt vom gewählten Endpunkt ab. Informationen zu Azure Storage finden Sie im Artikel Protokollspeicherkonto. Informationen zu Event Hubs finden Sie im Artikel zum Streamen von Azure-Protokollen.

Bei Azure Monitor-Protokollen werden die Protokolle an den von Ihnen ausgewählten Arbeitsbereich gesendet. Für die Postgres-Protokolle wird der Sammlungsmodus AzureDiagnostics verwendet, damit sie über die Tabelle „AzureDiagnostics“ abgefragt werden können. Die Felder der Tabelle sind unten beschrieben. Weitere Informationen zu Abfragen und Warnungen finden Sie in der Übersicht über Abfragen für Azure Monitor-Protokolle.

Hier sind Abfragen angegeben, die Sie als Einstieg ausprobieren können. Sie können Warnungen basierend auf Abfragen konfigurieren.

Suchen nach allen Postgres-Protokollen des letzten Tags für einen bestimmten Server

AzureDiagnostics
| where LogicalServerName_s == "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d) 

Suchen nach allen Nicht-Localhost-Verbindungsversuchen

AzureDiagnostics
| where Message contains "connection received" and Message !contains "host=127.0.0.1"
| where Category == "PostgreSQLLogs" and TimeGenerated > ago(6h)

In der oben stehenden Abfrage werden die Ergebnisse in den letzten 6 Stunden für eine beliebige Postgres-Serverprotokollierung in diesem Arbeitsbereich angezeigt.

Protokollformat

In der folgenden Tabelle sind die Felder für den Typ PostgreSQLLogs beschrieben. Je nach dem ausgewählten Ausgabeendpunkt können die enthaltenen Felder und ihre Reihenfolge variieren.

Feld Beschreibung
TenantId Ihre Mandanten-ID
SourceSystem Azure
TimeGenerated [UTC] Zeitstempel für den Aufzeichnungsbeginn des Protokolls in UTC
type Typ des Protokolls Immer AzureDiagnostics
SubscriptionId GUID für das Abonnement, zu dem der Server gehört
ResourceGroup Name der Ressourcengruppe, zu der der Server gehört
ResourceProvider Name des Ressourcenanbieters Immer MICROSOFT.DBFORPOSTGRESQL
ResourceType Servers
resourceId Ressourcen-URI
Resource Name des Servers
Category PostgreSQLLogs
Vorgangsname LogEvent
errorLevel Beispiel für die Protokollierungsstufe: LOG, ERROR, NOTICE
`Message` Primäre Protokollmeldung
Domain Serverversion, Beispiel: postgres-10
Detail Sekundäre Protokollmeldung (falls zutreffend)
ColumnName Name der Spalte (falls zutreffend)
SchemaName Name des Schemas (falls zutreffend)
DatatypeName Name des Datentyps (falls zutreffend)
LogicalServerName Name des Servers
_ResourceId Ressourcen-URI
Präfix Präfix der Protokollzeile

Nächste Schritte