

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.

# RDS für PostgreSQL-Datenbankprotokolldateien
<a name="USER_LogAccess.Concepts.PostgreSQL"></a>

Sie können die folgenden Arten von Protokolldateien überwachen:
+ PostgreSQL-Protokoll
+ Protokoll aktualisieren
+ Fehlerprotokoll zur IAM-Datenbankauthentifizierung
**Anmerkung**  
Um Fehlerprotokolle für die IAM-Datenbankauthentifizierung zu aktivieren, müssen Sie zunächst die IAM-Datenbankauthentifizierung für Ihre DB-Instances von RDS für PostgreSQL aktivieren. Weitere Informationen zur Aktivierung der IAM-Datenbankauthentifizierung finden Sie unter [Aktivieren und Deaktivieren der IAM-Datenbank-Authentifizierung](UsingWithRDS.IAMDBAuth.Enabling.md).

RDS für PostgreSQL protokolliert Datenbankaktivitäten in der PostgreSQL-Standardprotokolldatei. Bei einer On-Premises PostgreSQL-DB-Instance werden diese Nachrichten in `log/postgresql.log` lokal gespeichert. Für eine DB-Instance von RDS für PostgreSQL ist die Protokolldatei auf der Amazon-RDS-Instance verfügbar. Auf diese Protokolle kann auch über die zugegriffen werden AWS-Managementkonsole, wo Sie sie ansehen oder herunterladen können. Die Standardprotokollierungsebene erfasst Anmeldefehler, schwerwiegende Serverfehler, Deadlocks und Abfragefehler.

Weitere Informationen zum Anzeigen, Herunterladen und Überwachen von dateibasierten Datenbankprotokollen finden Sie unter [Überwachen von Amazon RDS-Protokolldateien](USER_LogAccess.md). Weitere Informationen zu PostgreSQL-Protokollen finden Sie unter [Arbeiten mit Amazon RDS und Aurora-PostgreSQL-Protokollen: Teil 1](https://aws.amazon.com/blogs/database/working-with-rds-and-aurora-postgresql-logs-part-1/) und [Arbeiten mit Amazon RDS und Aurora-PostgreSQL-Protokollen: Teil 2](https://aws.amazon.com/blogs/database/working-with-rds-and-aurora-postgresql-logs-part-2/). 

Zusätzlich zu den in diesem Thema behandelten PostgreSQL-Standardprotokollen unterstützt RDS für PostgreSQL auch die PostgreSQL-Audit-Erweiterung (`pgAudit`). Die meisten regulierten Branchen und Regierungsbehörden müssen ein Auditprotokoll oder einen Audit-Trail für die Änderungen von Daten führen, um die gesetzlichen Bestimmungen zu erfüllen. Weitere Informationen zur Installation und Verwendung von pgAudit finden Sie unter [Verwenden von pgAudit zur Protokollierung der Datenbankaktivität](Appendix.PostgreSQL.CommonDBATasks.pgaudit.md).

**Topics**
+ [

# Parameter für die Protokollierung in RDS für PostgreSQL
](USER_LogAccess.Concepts.PostgreSQL.overview.parameter-groups.md)
+ [

# Aktivieren der Abfrageprotokollierung für Ihren
](USER_LogAccess.Concepts.PostgreSQL.Query_Logging.md)
+ [

## PostgreSQL-Protokolle in Amazon Logs veröffentlichen CloudWatch
](#USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs)

# Parameter für die Protokollierung in RDS für PostgreSQL
<a name="USER_LogAccess.Concepts.PostgreSQL.overview.parameter-groups"></a>

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](USER_WorkingWithDBInstanceParamGroups.md).


| Parameter | Standard | Description | 
| --- | --- | --- | 
| log\$1destination | stderr | Legt das Ausgabeformat für das Protokoll fest. Die Standardeinstellung ist `stderr`, aber Sie können auch das CSV-Format angeben, indem Sie der Einstellung `csvlog` hinzufügen. Weitere Informationen finden Sie unter [Festlegen des Protokollziels (`stderr`, `csvlog`)](#USER_LogAccess.Concepts.PostgreSQL.Log_Format).  | 
| log\$1filename |  postgresql.log.%Y-%m-%d-%H  | Gibt das Muster für den Namen der Protokolldatei an. Zusätzlich zur Standardeinstellung unterstützt dieser Parameter `postgresql.log.%Y-%m-%d` und `postgresql.log.%Y-%m-%d-%H%M` für das Dateinamenmuster.  | 
| log\$1line\$1prefix | %t:%r:%u@%d:[%p]: | Definiert das Präfix für jede Protokollzeile, die in `stderr` geschrieben wird, um die Uhrzeit (%t), den Remote-Host (%r), den Benutzer (%u), die Datenbank (%d) und die Prozess-ID (%p) anzugeben. | 
| log\$1rotation\$1age | 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](#USER_LogAccess.Concepts.PostgreSQL.log_rotation).  | 
| log\$1rotation\$1size | – | Die Größe (kB), bei der das Protokoll automatisch rotiert wird. Standardmäßig wird dieser Parameter nicht verwendet, da die Protokolle auf der Grundlage des `log_rotation_age` Parameters rotiert werden. Weitere Informationen hierzu finden Sie unter [Festlegen der Rotation der Protokolldatei](#USER_LogAccess.Concepts.PostgreSQL.log_rotation). | 
| rds.log\$1retention\$1period | 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](#USER_LogAccess.Concepts.PostgreSQL.log_retention_period). | 

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 Ihren ](USER_LogAccess.Concepts.PostgreSQL.Query_Logging.md). 

In den folgenden Themen finden Sie Informationen darüber, wie Sie verschiedene Parameter festlegen, die die grundlegenden Details Ihrer PostgreSQL-Protokolle steuern. 

**Topics**
+ [

## Festlegen des Aufbewahrungszeitraums für Protokolle
](#USER_LogAccess.Concepts.PostgreSQL.log_retention_period)
+ [

## Festlegen der Rotation der Protokolldatei
](#USER_LogAccess.Concepts.PostgreSQL.log_rotation)
+ [

## Festlegen des Protokollziels (`stderr`, `csvlog`)
](#USER_LogAccess.Concepts.PostgreSQL.Log_Format)
+ [

## Grundlagen des Parameters log\$1line\$1prefix
](#USER_LogAccess.Concepts.PostgreSQL.Log_Format.log-line-prefix)

## Festlegen des Aufbewahrungszeitraums für Protokolle
<a name="USER_LogAccess.Concepts.PostgreSQL.log_retention_period"></a>

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, dass Sie Ihre Protokolle routinemäßig in Amazon CloudWatch Logs veröffentlichen, damit Sie Systemdaten noch 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 [PostgreSQL-Protokolle in Amazon Logs veröffentlichen CloudWatch](USER_LogAccess.Concepts.PostgreSQL.md#USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs).  

## Festlegen der Rotation der Protokolldatei
<a name="USER_LogAccess.Concepts.PostgreSQL.log_rotation"></a>

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 [https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-AGE](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-AGE) und [https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-SIZE](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-SIZE) in der PostgreSQL-Dokumentation.

## Festlegen des Protokollziels (`stderr`, `csvlog`)
<a name="USER_LogAccess.Concepts.PostgreSQL.Log_Format"></a>

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\$1line\$1prefix](#USER_LogAccess.Concepts.PostgreSQL.Log_Format.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\$1fdw für den Zugriff auf das DB-Protokoll mithilfe von SQL](CHAP_PostgreSQL.Extensions.log_fdw.md).

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_period`und 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](https://aws.amazon.com/blogs/database/working-with-rds-and-aurora-postgresql-logs-part-1/).

## Grundlagen des Parameters log\$1line\$1prefix
<a name="USER_LogAccess.Concepts.PostgreSQL.Log_Format.log-line-prefix"></a>

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 

# Aktivieren der Abfrageprotokollierung für Ihren
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging"></a>

Sie können detailliertere Informationen über Ihre Datenbankaktivitäten sammeln, einschließlich Abfragen, Abfragen, die auf Sperren warten, Prüfpunkte und viele andere Details, indem Sie einige der in der folgenden Tabelle aufgeführten Parameter festlegen. Dieses Thema konzentriert sich auf das Protokollieren von Abfragen.


| Parameter | Standard | Description | 
| --- | --- | --- | 
| log\$1connections | – | Protokolliert jede erfolgreiche Verbindung.  | 
| log\$1disconnections | – | Protokolliert das Ende jeder Sitzung und ihre Dauer.  | 
| log\$1checkpoints | 1 | Protokolliert jeden Checkpoint.  | 
| log\$1lock\$1waits | – | Protokolliert lange Sperrenwartezeiten. Dieser Parameter ist standardmäßig nicht festgelegt. | 
| log\$1min\$1duration\$1sample | – | (ms) Legt die Mindestausführungszeit fest, jenseits der stichprobenartig Anweisungen protokolliert werden. Die Stichprobengröße wird mit dem log\$1statement\$1sample\$1rate-Parameter festgelegt. | 
| log\$1min\$1duration\$1statement | – | Jede SQL-Anweisung, die mindestens für die angegebene Zeit oder länger ausgeführt wird, wird protokolliert. Dieser Parameter ist standardmäßig nicht festgelegt. Die Aktivierung dieses Parameters kann Sie dabei unterstützen, nicht optimierte Abfragen zu finden. | 
| log\$1statement | – | Legt den Typ der protokollierten Anweisungen fest. Standardmäßig ist dieser Parameter nicht festgelegt, aber Sie können ihn in `all`, `ddl` oder `mod` ändern, um die Typen von SQL-Anweisungen anzugeben, die protokolliert werden sollen. Wenn Sie etwas anderes als `none` für diesen Parameter angeben, sollten Sie auch zusätzliche Maßnahmen ergreifen, um die Offenlegung von Passwörtern in den Protokolldateien zu verhindern. Weitere Informationen finden Sie unter [Reduzieren des Risikos der Offenlegung von Passwörtern bei der Verwendung der AbfrageprotokollierungReduzieren des Risikos der Offenlegung von Passwörtern](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk).  | 
| log\$1statement\$1sample\$1rate | – | Der Prozentsatz der Anweisungen, die die in `log_min_duration_sample` angegebene Zeit bei der Protokollierung überschreiten. Diese Angabe wird als Gleitkommawert zwischen 0,0 und 1,0 ausgedrückt.  | 
| log\$1statement\$1stats | – | Schreibt kumulative Leistungsstatistiken in das Serverprotokoll. | 

## Verwendung der Protokollierung, um Abfragen mit langsamer Ausführung zu suchen
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging.using"></a>

Sie können SQL-Anweisungen und Abfragen protokollieren, um Abfragen zu finden, die langsam ausgeführt werden. Sie aktivieren diese Funktion, indem Sie die Einstellungen der Parameter `log_statement` und `log_min_duration` wie in diesem Abschnitt beschrieben ändern. Bevor Sie die Abfrageprotokollierung für Ihre DB-Instance von RDS für PostgreSQL aktivieren, sollten Sie sich der möglichen Offenlegung von Passwörtern in den Protokollen bewusst sein und wissen, wie Sie die Risiken minimieren können. Weitere Informationen finden Sie unter [Reduzieren des Risikos der Offenlegung von Passwörtern bei der Verwendung der AbfrageprotokollierungReduzieren des Risikos der Offenlegung von Passwörtern](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk). 

Nachstehend finden Sie Referenzinformationen zu den Parametern `log_statement` und `log_min_duration`.log\$1statement

Dieser Parameter gibt den Typ der SQL-Anweisungen an, die an das Protokoll gesendet werden sollen. Der Standardwert ist `none`. Wenn Sie diesen Parameter in `all`, `ddl` oder `mod` ändern, stellen Sie sicher, dass Sie die empfohlenen Maßnahmen ergreifen, um das Risiko einer Offenlegung von Passwörtern in den Protokollen zu reduzieren. Weitere Informationen finden Sie unter [Reduzieren des Risikos der Offenlegung von Passwörtern bei der Verwendung der AbfrageprotokollierungReduzieren des Risikos der Offenlegung von Passwörtern](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk). 

**all**  
Protokolliert alle Anweisungen. Diese Einstellung wird für Debugging-Zwecke empfohlen.

**ddl**  
Protokolliert alle Data Definition Language (DDL)-Anweisungen wie CREATE, ALTER, DROP usw.

**mod**  
Protokolliert alle DDL-Anweisungen und Data Manipulation Language (DML)-Anweisungen wie INSERT, UPDATE und DELETE, die die Daten modifizieren.

**Keine**  
Es werden keine SQL-Anweisungen protokolliert. Wir empfehlen diese Einstellung, um das Risiko zu vermeiden, dass Passwörter in den Protokollen offengelegt werden.log\$1min\$1duration\$1statement

Jede SQL-Anweisung, die mindestens für die angegebene Zeit oder länger ausgeführt wird, wird protokolliert. Dieser Parameter ist standardmäßig nicht festgelegt. Die Aktivierung dieses Parameters kann Sie dabei unterstützen, nicht optimierte Abfragen zu finden.

**–1–2147483647**  
Die Laufzeit in Millisekunden (ms), in der eine Anweisung protokolliert wird.

**So richten Sie die Abfrageprotokollierung ein**

Bei diesen Schritten wird davon ausgegangen, dass Ihr Die DB-Instance von RDS für PostgreSQL verwendet eine benutzerdefinierte DB-Parametergruppe. 

1. Stellen Sie den Parameter `log_statement` auf `all` ein. Im folgenden Beispiel werden die Informationen gezeigt, die bei dieser Parametereinstellung in die Datei `postgresql.log` geschrieben werden.

   ```
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: statement: SELECT feedback, s.sentiment,s.confidence
   FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s
   ORDER BY s.confidence DESC;
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: QUERY STATISTICS
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:DETAIL: ! system usage stats:
   ! 0.017355 s user, 0.000000 s system, 0.168593 s elapsed
   ! [0.025146 s user, 0.000000 s system total]
   ! 36644 kB max resident size
   ! 0/8 [0/8] filesystem blocks in/out
   ! 0/733 [0/1364] page faults/reclaims, 0 [0] swaps
   ! 0 [0] signals rcvd, 0/0 [0/0] messages rcvd/sent
   ! 19/0 [27/0] voluntary/involuntary context switches
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: SELECT feedback, s.sentiment,s.confidence
   FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s
   ORDER BY s.confidence DESC;
   2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:ERROR: syntax error at or near "ORDER" at character 1
   2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: ORDER BY s.confidence DESC;
   ----------------------- END OF LOG ----------------------
   ```

1. Legen Sie den Parameter `log_min_duration_statement` fest. Im folgenden Beispiel werden die Informationen gezeigt, die in die Datei `postgresql.log` geschrieben werden, wenn der Parameter auf `1` festgelegt wird.

   Abfragen, die die im `log_min_duration_statement`-Parameter angegebene Dauer überschreiten, werden protokolliert. Es folgt ein Beispiel. Sie können die Protokolldatei für Ihre DB-Instance von RDS für PostgreSQL in der Amazon-RDS-Konsole anzeigen. 

   ```
   2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: statement: DROP table comments;
   2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: duration: 167.754 ms
   2022-10-05 19:08:07 UTC::@:[355]:LOG: checkpoint starting: time
   2022-10-05 19:08:08 UTC::@:[355]:LOG: checkpoint complete: wrote 11 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=1.013 s, sync=0.006 s, total=1.033 s; sync files=8, longest=0.004 s, average=0.001 s; distance=131028 kB, estimate=131028 kB
   ----------------------- END OF LOG ----------------------
   ```

### Reduzieren des Risikos der Offenlegung von Passwörtern bei der Verwendung der Abfrageprotokollierung
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk"></a>

Wir empfehlen, für `log_statement` die Einstellung `none` beizubehalten, um zu vermeiden, dass Passwörter offengelegt werden. Wenn Sie `log_statement` auf `all`, `ddl` oder `mod` festlegen, sollten Sie einen oder mehrere der folgenden Schritte auszuführen.
+ Verschlüsseln Sie vertrauliche Informationen für den Client. Weitere Informationen finden Sie unter [Verschlüsselungsoptionen](https://www.postgresql.org/docs/current/encryption-options.html) der PostgreSQL-Dokumentation. Verwenden Sie die Optionen `ENCRYPTED` und `UNENCRYPTED` der `CREATE`- und `ALTER`-Anweisungen. Weitere Informationen finden Sie im Abschnitt [CREATE USER](https://www.postgresql.org/docs/current/sql-createuser.html) der PostgreSQL-Dokumentation.
+ Richten Sie für Ihre DB-Instance von RDS für PostgreSQL die PostgreSQL Auditing (PGAudit)-Erweiterung ein und verwenden Sie sie. Diese Erweiterung redigiert sensible Informationen in CREATE- und ALTER-Anweisungen, die an das Protokoll gesendet werden. Weitere Informationen finden Sie unter [Verwenden von pgAudit zur Protokollierung der Datenbankaktivität](Appendix.PostgreSQL.CommonDBATasks.pgaudit.md). 
+ Beschränkt den Zugriff auf die CloudWatch Protokolle.
+ Verwenden Sie stärkere Authentifizierungsmechanismen wie IAM.

## PostgreSQL-Protokolle in Amazon Logs veröffentlichen CloudWatch
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs"></a>

Um Ihre PostgreSQL-Protokolldatensätze in einem äußerst langlebigen Speicher zu speichern, können Sie Amazon CloudWatch Logs verwenden. Mit CloudWatch Logs können Sie auch Protokolldaten in Echtzeit analysieren und diese zur Anzeige von Metriken und CloudWatch zur Erstellung von Alarmen verwenden. Wenn Sie beispielsweise `log_statement` auf `ddl` festlegen, können Sie einen Alarm einrichten, der immer dann ausgelöst wird, wenn eine DDL-Anweisung ausgeführt wird. Sie können wählen, ob Ihre CloudWatch PostgreSQL-Protokolle während der Erstellung Ihrer RDS for PostgreSQL-DB-Instance in Logs hochgeladen werden sollen. Wenn Sie zu diesem Zeitpunkt keine Protokolle hochladen möchten, können Sie Ihre Instance später so ändern, dass ab diesem Zeitpunkt mit dem Hochladen von Protokollen begonnen wird. Mit anderen Worten, vorhandene Protokolle werden nicht hochgeladen. Es werden nur neue Protokolle hochgeladen, da sie auf Ihrer modifizierten DB-Instance von RDS für PostgreSQL erstellt werden.

Alle derzeit verfügbaren Versionen von RDS für PostgreSQL unterstützen die Veröffentlichung von Protokolldateien in Logs. CloudWatch Weitere Informationen finden Sie unter [Aktualisierungen von Amazon RDS für PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-versions.html) im Abschnitt *Versionshinweise für Amazon RDS für PostgreSQL*. 

Um mit CloudWatch Logs zu arbeiten, konfigurieren Sie Ihre RDS for PostgreSQL-DB-Instance so, dass Protokolldaten in einer Protokollgruppe veröffentlicht werden.

Sie können die folgenden Protokolltypen in CloudWatch Logs for RDS for PostgreSQL veröffentlichen: 
+ PostgreSQL-Protokoll
+ Protokoll aktualisieren 
+ Fehlerprotokoll zur IAM-Datenbankauthentifizierung

Nachdem Sie die Konfiguration abgeschlossen haben, veröffentlicht Amazon RDS die Protokollereignisse, um Streams innerhalb einer CloudWatch Protokollgruppe zu protokollieren. Beispielsweise werden die PostgreSQL-Protokolldaten innerhalb der Protokollgruppe gespeicher `/aws/rds/instance/my_instance/postgresql`. Um Ihre Protokolle einzusehen, öffnen Sie die CloudWatch Konsole unter [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

### Konsole
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs.CON"></a>

**So veröffentlichen Sie PostgreSQL-Protokolle mithilfe der Konsole in CloudWatch Logs**

1. Öffnen Sie die Amazon RDS-Konsole unter [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Wählen Sie im Navigationsbereich **Datenbanken** aus.

1. Wählen Sie die zu ändernde DB-Instance aus und klicken Sie anschließend auf **Modify (Ändern)**.

1. Wählen Sie im Abschnitt **Protokollexporte** die Protokolle aus, die Sie in Logs veröffentlichen möchten CloudWatch .

   Der Abschnitt **Protokollexporte** ist nur für PostgreSQL-Versionen verfügbar, die das Veröffentlichen in Logs unterstützen. CloudWatch 

1. Wählen Sie **Weiter** und dann auf der zusammenfassenden Seite **Modify DB Instance** (DB-Instance ändern) aus.

### AWS CLI
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs.CLI"></a>

Sie können PostgreSQL-Protokolle mit dem veröffentlichen. AWS CLI Sie können den Befehl [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) mit den folgenden Parametern aufrufen.
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**Anmerkung**  
Eine Änderung der Option `--cloudwatch-logs-export-configuration` wird immer sofort auf die DB-Instance angewendet. Aus diesem Grund sind die Optionen `--apply-immediately` und `--no-apply-immediately` wirkungslos.

Sie können PostgreSQL-Protokolle auch veröffentlichen, indem Sie die folgenden CLI-Befehle aufrufen:
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

Führen Sie einen dieser CLI-Befehle mit den folgenden Optionen aus: 
+ `--db-instance-identifier`
+ `--enable-cloudwatch-logs-exports`
+ `--db-instance-class`
+ `--engine`

Je nach verwendetem CLI-Befehl müssen möglicherweise noch weitere Optionen angegeben werden.

**Example Ändern Sie eine Instanz, um Protokolle in Logs zu veröffentlichen CloudWatch**  
Das folgende Beispiel ändert eine bestehende PostgreSQL-DB-Instance, um Protokolldateien in Logs zu veröffentlichen. CloudWatch Der `--cloudwatch-logs-export-configuration`-Wert ist ein JSON-Objekt. Der Schlüssel für dieses Objekt ist `EnableLogTypes` und dessen Wert ist ein Array von Zeichenfolgen mit einer beliebigen Kombination aus `postgresql` und `upgrade`.  
Für Linux, macOS oder Unix:  

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql", "upgrade"]}'
```
Für Windows:  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql","upgrade"]}'
```

**Example Erstellen Sie eine Instanz, um Protokolle in Logs zu veröffentlichen CloudWatch**  
Im folgenden Beispiel wird eine PostgreSQL-DB-Instance erstellt und Protokolldateien in Logs veröffentlicht. CloudWatch Der Wert `--enable-cloudwatch-logs-exports` ist ein JSON-Array mit Zeichenfolgen. Die Zeichenfolgen können eine beliebige Kombination aus `postgresql` und `upgrade` sein.  
Für Linux, macOS oder Unix:  

```
1. aws rds create-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' \
4.     --db-instance-class db.m4.large \
5.     --engine postgres
```
Für Windows:  

```
1. aws rds create-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' ^
4.     --db-instance-class db.m4.large ^
5.     --engine postgres
```

### RDS-API
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs.API"></a>

Sie können PostgreSQL-Protokolle mit der RDS-API veröffentlichen. Die Aktion [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) kann dazu mit den folgenden Parametern aufgerufen werden: 
+ `DBInstanceIdentifier`
+ `CloudwatchLogsExportConfiguration`

**Anmerkung**  
Eine Änderung des Parameters `CloudwatchLogsExportConfiguration` wird immer sofort auf die DB-Instance angewendet. Aus diesem Grund ist der Parameter `ApplyImmediately` wirkungslos.

Sie können PostgreSQL-Protokolle auch veröffentlichen, indem Sie die folgenden RDS-API-Operationen aufrufen: 
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html)

Führen Sie eine dieser RDS-API-Operationen mit den folgenden Parametern aus: 
+ `DBInstanceIdentifier`
+ `EnableCloudwatchLogsExports`
+ `Engine`
+ `DBInstanceClass`

Je nach ausgeführter Operation müssen möglicherweise noch weitere Parameter angegeben werden.

 