Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Parameter für die Protokollierung in RDS für PostgreSQL
Sie können das Protokollierungsverhalten für Ihre DB-Instance von RDS für PostgreSQL anpassen, indem Sie verschiedene Parameter ändern. In der folgenden Tabelle finden Sie unter anderem die Parameter, die sich darauf auswirken, wie lange die Protokolle gespeichert werden, wann das Protokoll rotiert werden soll und ob das Protokoll im CSV-Format (Comma-Separated Value) ausgegeben werden soll. Außerdem ist abgesehen von anderen Einstellungen die Textausgabe angegeben, die an STDERR gesendet wurde. Wenn Sie die Einstellungen für die modifizierbaren Parameter ändern möchten, verwenden Sie eine benutzerdefinierte DB-Parametergruppe für Ihren . Instance von RDS für PostgreSQL Weitere Informationen finden Sie unter DB-Parametergruppen für DB-Instances von Amazon RDS.
| Parameter | Standard | Beschreibung |
|---|---|---|
log_destination |
stderr |
Legt das Ausgabeformat für das Protokoll fest. Die Standardeinstellung ist |
log_filename |
postgresql.log.%Y-%m-%d-%H |
Gibt das Muster für den Namen der Protokolldatei an. Zusätzlich zur Standardeinstellung unterstützt dieser Parameter |
log_line_prefix |
%t:%r:%u@%d:[%p]: |
Definiert das Präfix für jede Protokollzeile, die in |
log_rotation_age |
60 |
Minuten, nach denen die Protokolldatei automatisch rotiert wird. Sie können diesen Wert im Bereich von 1 Minute bis 1.440 Minuten ändern. Weitere Informationen finden Sie unter Festlegen der Rotation der Protokolldatei. |
log_rotation_size |
– |
Die Größe (kB), bei der das Protokoll automatisch rotiert wird. Standardmäßig wird dieser Parameter nicht verwendet, da Protokolle basierend auf dem |
rds.log_retention_period |
4320 |
PostgreSQL-Protokolle, die älter als die angegebene Anzahl von Minuten sind, werden gelöscht. Mit dem Standardwert von 4.320 Minuten werden Protokolldateien nach 3 Tagen gelöscht. Weitere Informationen finden Sie unter Festlegen des Aufbewahrungszeitraums für Protokolle. |
Anwendungsprobleme können Sie identifizieren, indem Sie im Protokoll nach Abfragefehlern, Anmeldefehlern, Deadlocks und schwerwiegenden Serverfehlern suchen. Angenommen, Sie haben eine Legacy-Anwendung von Oracle in Amazon RDS PostgreSQL konvertiert, wobei jedoch nicht alle Abfragen ordnungsgemäß umgewandelt wurden. Diese falsch formatierten Abfragen generieren Fehlermeldungen in den Protokollen, mit denen Sie Probleme identifizieren können. Weitere Informationen zur Protokollierung von Abfragen finden Sie unter Aktivieren der Abfrageprotokollierung für Ihre DB-Instance von RDS für PostgreSQL.
In den folgenden Themen finden Sie Informationen darüber, wie Sie verschiedene Parameter festlegen, die die grundlegenden Details Ihrer PostgreSQL-Protokolle steuern.
Themen
Festlegen des Aufbewahrungszeitraums für Protokolle
Der rds.log_retention_period-Parameter gibt an, wie lange Ihre DB-Instance von RDS für PostgreSQL die entsprechenden Protokolldateien aufbewahrt. Die Standardeinstellung ist 3 Tage (4 320 Minuten). Sie können diese Einstellung jedoch auf einen beliebigen Wert zwischen 1 Tag (1 440 Minuten) und 7 Tagen (10 080 Minuten) festlegen. Stellen Sie sicher, dass Ihre DB-Instance von RDS für PostgreSQL über ausreichend Speicherplatz verfügt, um die Protokolldateien für diesen Zeitraum zu speichern.
Wir empfehlen Ihnen, Ihre Protokolle routinemäßig in Amazon CloudWatch Logs veröffentlichen zu lassen, damit Sie Systemdaten lange nach dem Entfernen der Protokolle aus Ihrem anzeigen und analysieren können. DB-Instance von RDS für PostgreSQL Weitere Informationen finden Sie unter Veröffentlichen von PostgreSQL-Protokollen in Amazon CloudWatch Logs.
Festlegen der Rotation der Protokolldatei
Neue Protokolldateien werden von Amazon RDS standardmäßig jede Stunde erstellt. Das Timing wird vom Parameter log_rotation_age kontrolliert. Dieser Parameter hat einen Standardwert von 60 (Minuten). Sie können ihn jedoch auf jeden beliebigen Wert zwischen 1 Minute und 24 Stunden (1 440 Minuten) festlegen. Wenn die Rotation ansteht, wird eine neue eindeutige Protokolldatei erstellt. Die Datei wird nach dem Muster benannt, das durch den Parameter log_filename angegeben wird.
Protokolldateien können auch entsprechend ihrer Größe gedreht werden, wie im Parameter log_rotation_size angegeben. Dieser Parameter gibt an, dass das Protokoll rotiert werden soll, wenn es die angegebene Größe (in Kilobyte) erreicht. Bei einer RDS-for-PostgreSQL-DB-Instance wird log_rotation_size nicht festgelegt, das heißt, es wird kein Wert angegeben. Der Parameter ermöglicht jedoch die Einstellung von 0-2 097 151 kB (Kilobyte).
Die Protokolldateinamen basieren auf dem Dateinamenmuster des Parameters log_filename. Die verfügbaren Einstellungen für diesen Parameter lauten wie folgt:
-
postgresql.log.%Y-%m-%d– Standardformat für den Namen der Protokolldatei. Nimmt das Jahr, den Monat und das Datum in den Namen der Protokolldatei auf. -
postgresql.log.%Y-%m-%d-%H– Nimmt die Stunde in das Format des Protokolldateinamens auf.
Weitere Informationen finden Sie unter log_rotation_agelog_rotation_size
Festlegen des Protokollziels (stderr, csvlog)
Standardmäßig generiert Amazon RDS PostgreSQL Protokolle im Standardfehlerformat (stderr). Dieses Format ist die Standardeinstellung des Parameters log_destination. Jede Nachricht erhält ein Präfix nach dem im log_line_prefix-Parameter angegebenen Muster. Weitere Informationen finden Sie unter Grundlagen des Parameters log_line_prefix.
RDS für PostgreSQL kann die Protokolle auch im csvlog-Format generieren. Das csvlog-Format ist nützlich, um die Protokolldaten als CSV-Daten zu analysieren. Angenommen, Sie verwenden die Erweiterung log_fdw, um mit Ihren Protokollen als Fremdtabellen zu arbeiten. Die Fremdtabelle, die für stderr-Protokolldateien erstellt wurde, enthält eine einzelne Spalte mit Protokollereignisdaten. Durch Hinzufügen von csvlog zum log_destination-Parameter erhalten Sie die Protokolldatei im CSV-Format mit Abgrenzungen für die verschiedenen Spalten der Fremdtabelle. Sie können Ihre Protokolle jetzt einfacher sortieren und analysieren. Informationen dazu, wie Sie log_fdw mit csvlog verwenden, finden Sie unter Verwenden der Erweiterung log_fdw für den Zugriff auf das DB-Protokoll mithilfe von SQL.
Wenn Sie csvlog für diesen Parameter angeben, beachten Sie, dass sowohl stderr- als auch csvlog-Dateien generiert werden. Achten Sie auf den von den Protokollen verbrauchten Speicher und berücksichtigen Sie dabei die rds.log_retention_periodund andere Einstellungen, die sich auf den Protokollspeicher und Turnover auswirken. Wenn Sie stderr und csvlog verwenden, verdoppelt sich der von den Protokollen verbrauchte Speicher.
Wenn Sie csvlog zu log_destination hinzufügen und zu stderr allein zurückkehren möchten, müssen Sie den Parameter zurücksetzen. Rufen Sie dazu die Amazon-RDS-Konsole auf und öffnen Sie die benutzerdefinierte DB-Parametergruppe für Ihre Instance. Wählen Sie den log_destination-Parameter, die Option Edit parameter (Parameter bearbeiten) und dann Reset (Zurücksetzen) aus.
Weitere Informationen zum Konfigurieren der Protokollierung finden Sie unter Arbeiten mit Amazon-RDS- und Aurora-PostgreSQL-Protokollen: Teil 1
Grundlagen des Parameters log_line_prefix
Das Protokollformat stderr wird jeder Protokollnachricht mit den Details vorangestellt, die durch den Parameter log_line_prefix angegeben werden. Der Standardwert ist:
%t:%r:%u@%d:[%p]:t
Ab Aurora-PostgreSQL-Version 16 können Sie auch Folgendes auswählen:
%m:%r:%u@%d:[%p]:%l:%e:%s:%v:%x:%c:%q%a
Jeder Protokolleintrag, der an stderr gesendet wird, enthält die folgenden Informationen, die auf dem ausgewählten Wert basieren:
-
%t– Zeitpunkt des Protokolleintrags ohne Millisekunden -
%m– Zeitpunkt des Protokolleintrags mit Millisekunden -
%r– Adresse des Remote-Hosts -
%u@%d– Benutzername und Datenbankname -
[%p]– Prozess-ID, falls verfügbar -
%l– Nummer der Protokollzeile pro Sitzung -
%e– SQL-Fehlercode -
%s– Start-Zeitstempel des Prozesses -
%v– ID der virtuellen Transaktion -
%x– Transaktions-ID -
%c– Sitzungs-ID -
%q– Nicht für Sitzungen vorgesehene Begrenzung -
%a– Anwendungsname