Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Überwachungsprotokollierung von Datenbankaktivitäten in Azure Database for PostgreSQL ist über die pgaudit Erweiterung verfügbar.
pgaudit bietet detaillierte Sitzungs- und/oder Objektüberwachungsprotokollierung.
Wenn Sie Azure-Protokolle auf Ressourcenebene für Vorgänge wie Compute- und Speicherskalierung benötigen, lesen Sie das Azure-Aktivitätsprotokoll.
Überlegungen zur Nutzung
Standardmäßig pgaudit werden Protokollanweisungen und Ihre regulären Protokollanweisungen mithilfe der Standardmäßigen Protokollierungseinrichtung von Postgres ausgegeben. In der Azure-Datenbank für PostgreSQL können Sie alle Protokolle so konfigurieren, dass sie zur späteren Analyse in Log Analytics an den Azure Monitor-Protokollspeicher gesendet werden. Wenn Sie die Azure Monitor-Ressourcenprotokollierung aktivieren, werden Ihre Protokolle automatisch (im JSON-Format) an Azure Storage-, Event Hubs- und/oder Azure Monitor-Protokolle gesendet, je nach Ihrer Wahl.
Informationen zum Einrichten der Protokollierung bei Azure Storage-, Event Hubs- oder Azure Monitor-Protokollen finden Sie im Abschnitt "Ressourcenprotokolle" des Artikels "Serverprotokolle".
Installieren der Erweiterung
Um die Erweiterung verwenden pgaudit zu können, müssen Sie die Erweiterung in der Datenbank erstellen, für die Sie die Erweiterung verwenden möchten.
Konfigurieren von Erweiterungseinstellungen
pgaudit ermöglicht ihnen die Konfiguration der Sitzungs- oder Objektüberwachungsprotokollierung.
Die Sitzungsüberwachungsprotokollierung gibt detaillierte Protokolle von ausgeführten Anweisungen aus.
Die Objektüberwachungsprotokollierung ist auf bestimmte Beziehungen festgelegt. Sie können eine oder beide Protokollierungstypen einrichten.
Nachdem Sie diese Option aktiviert pgaudithaben, können Sie die Parameter so konfigurieren, dass die Protokollierung gestartet wird.
Zum Konfigurieren pgauditkönnen Sie die folgenden Anweisungen befolgen:
Verwenden des Azure-Portals:
Wählen Sie Ihre Instanz der Azure-Datenbank für die PostgreSQL aus.
Wählen Sie im Ressourcenmenü unter "Einstellungen"die Option "Serverparameter" aus.
Suchen Sie nach den
pgauditParametern.Wählen Sie den entsprechenden Zu bearbeitenden Parameter aus. Um beispielsweise mit der Protokollierung
INSERT,UPDATE, ,DELETE,TRUNCATEundCOPYAnweisungen zu beginnen, aufpgaudit.log.WRITEWählen Sie die Schaltfläche " Speichern " aus, um Änderungen zu speichern.
Die offizielle Dokumentation enthält pgaudit die Definition der einzelnen Parameter. Testen Sie zuerst die Parameter, und vergewissern Sie sich, dass Sie das erwartete Verhalten erhalten.
So schreibt die Einstellung pgaudit.log_clientON beispielsweise nicht nur Überwachungsereignisse in das Serverprotokoll, sondern sendet sie auch an Clientprozesse (z. B. psql). Diese Einstellung sollte im Allgemeinen deaktiviert bleiben.
pgaudit.log_level ist nur aktiviert, wenn pgaudit.log_client sie aktiviert ist.
In Azure Database for PostgreSQL pgaudit.log kann keine (Minus)-Zeichenverknüpfung wie in der pgaudit Dokumentation beschrieben festgelegt - werden. Alle erforderlichen Anweisungsklassen (READ, WRITE usw.) sollten einzeln angegeben werden.
Wenn Sie den log_statement Parameter auf DDL oder ALL ausführen und einen CREATE ROLE/USER ... WITH PASSWORD ... ; oder ALTER ROLE/USER ... WITH PASSWORD ... ;, Befehl ausführen, erstellt PostgreSQL einen Eintrag in den PostgreSQL-Protokollen, in denen das Kennwort in Klartext protokolliert wird, was zu einem potenziellen Sicherheitsrisiko führen kann. Es ist das erwartete Verhalten gemäß dem Design der PostgreSQL-Engine.
Sie können jedoch die pgaudit Erweiterung verwenden und auf DDLpgaudit.log festlegen , die keine Anweisung im Postgres-Serverprotokoll zeichnetCREATE/ALTER ROLE, im Gegensatz dazu, wenn Sie auf .log_statementDDL Wenn Sie diese Anweisungen protokollieren müssen, können Sie auch festlegenpgaudit.logROLE, auf welche das Kennwort aus Protokollen während der Protokollierung CREATE/ALTER ROLEredagiert wird.
Überwachungsprotokollformat
Jeder Überwachungseintrag beginnt mit AUDIT:. Das Format des restlichen Eintrags ist in der Dokumentation beschrieben pgaudit.
Erste Schritte
Um schnell zu beginnen, legen Sie die Serverprotokolle fest pgaudit.logALL, und öffnen Sie sie, um die Ausgabe zu überprüfen.
Anzeigen von Überwachungsprotokollen
Die Art und Weise, wie Sie auf die Protokolle zugreifen, hängt davon ab, welchen Endpunkt Sie auswählen. Weitere Informationen finden Sie im Artikel zum Protokollspeicherkonto für Azure Storage. Weitere Informationen finden Sie im Stream-Artikel zu Azure-Protokollen für Event Hubs.
Für Azure Monitor-Protokolle werden Protokolle an den von Ihnen ausgewählten Arbeitsbereich gesendet. Die Postgres-Protokolle verwenden den AzureDiagnostics-Sammlungsmodus , sodass sie aus der AzureDiagnostics-Tabelle abgefragt werden können. Erfahren Sie mehr über Abfragen und Warnungen in der Azure Monitor Logs-Abfrageübersicht .
Sie können diese Abfrage verwenden, um zu beginnen. Sie können Warnungen basierend auf Abfragen konfigurieren.
Suchen nach allen pgaudit Einträgen in Postgres-Protokollen für einen bestimmten Server am letzten Tag
AzureDiagnostics
| where Resource =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"
Upgrade der Hauptversion mit installierter pgaudit-Erweiterung
Während eines Hauptversionsupgrades wird die pgaudit-Erweiterung automatisch gelöscht und nach Abschluss des Upgrades neu erstellt. Während die Erweiterung wiederhergestellt wird, werden alle benutzerdefinierten Konfigurationen, die in pgaudit.log oder andere verwandte Parameter festgelegt sind, nicht automatisch beibehalten.