Überwachungsprotokollierung 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?

Die Überwachungsprotokollierung von Datenbankaktivitäten in Azure Database for PostgreSQL (Einzelserver) ist über die PostgreSQL-Überwachungserweiterung pgAudit verfügbar. Die pgAudit-Erweiterung bietet detaillierte Sitzungs- und Objektüberwachungsprotokollierung.

Hinweis

Die pgAudit-Erweiterung befindet sich in Azure Database for PostgreSQL in der Vorschau. Sie kann nur auf universellen und arbeitsspeicheroptimierten Servern aktiviert werden.

Wenn Sie Azure-Protokolle auf Ressourcenebene für Vorgänge wie Compute- und Speicherskalierung erfassen möchten, lesen Sie Übersicht über Protokolle der Azure-Plattform.

Überlegungen zur Verwendung

Standardmäßig werden pgAudit-Protokollanweisungen zusammen mit Ihren regulären Protokollanweisungen mithilfe der Postgres-Standardprotokollierungsfunktion ausgegeben. In Azure Database for PostgreSQL können diese LOG-Dateien über das Azure-Portal oder die Azure-Befehlszeilenschnittstelle heruntergeladen werden. Der maximale Speicher für die Sammlung von Dateien beträgt 1 GB. Jede Datei ist maximal sieben Tage lang verfügbar. Der Standardwert ist drei Tage. Bei diesem Dienst handelt es sich um eine kurzfristige Speicheroption.

Alternativ können Sie alle Protokolle so konfigurieren, dass sie an den Azure Monitor-Protokollspeicher für spätere Analysen in Log Analytics gesendet werden. Wenn Sie die Monitor-Ressourcenprotokollierung aktivieren, werden Ihre Protokolle abhängig von Ihrer Wahl automatisch im JSON-Format an Azure Storage, Azure Event Hubs oder Monitor-Protokolle gesendet.

Durch das Aktivieren von pgAudit wird ein großes Volumen von Protokollierung auf einem Server generiert, was Auswirkungen auf die Leistung und den Protokollspeicher hat. Es wird empfohlen, Monitor-Protokolle zu verwenden, die langfristigere Speicheroptionen sowie Analyse- und Benachrichtigungsfunktionen bieten. Deaktivieren Sie die Standardprotokollierung, um die Auswirkungen der zusätzlichen Protokollierung auf die Leistung zu reduzieren:

  1. Legen Sie den Parameter logging_collector auf OFF (AUS) fest.
  2. Starten Sie den Server neu, um diese Änderung zu übernehmen.

Informationen zum Einrichten der Protokollierung für Storage, Event Hubs oder Monitor-Protokolle finden Sie im Abschnitt „Ressourcenprotokolle“ unter Protokolle in Azure Database for PostgreSQL – Einzelserver.

Installieren von pgAudit

Um pgAudit installieren zu können, müssen Sie es in die freigegebenen im Voraus geladenen Bibliotheken des Servers einbeziehen. Damit eine Änderung des Postgres-Parameters shared_preload_libraries wirksam wird, ist ein Serverneustart erforderlich. Sie können Parameter mithilfe des Portals, der Befehlszeilenschnittstelle oder der REST-API ändern.

So verwenden Sie das Portal

  1. Wählen Sie Ihre Azure Database for PostgreSQL-Server aus.

  2. Wählen Sie links unter Einstellungen die Option Serverparameter aus.

  3. Suchen Sie nach shared_preload_libraries.

  4. Wählen Sie PGAUDIT aus.

    Screenshot: Azure Database for PostgreSQL: Aktivieren von shared_preload_libraries für PGAUDIT

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

  6. Verbinden Sie Ihren Server mithilfe eines Clients wie psql, und aktivieren Sie die pgAudit-Erweiterung:

    CREATE EXTENSION pgaudit;
    

Tipp

Wenn ein Fehler angezeigt wird, vergewissern Sie sich, dass Sie nach dem Speichern von shared_preload_libraries Ihren Server neu gestartet haben.

pgAudit-Einstellungen

Mit pgAudit können Sie die Sitzungs- oder Objektüberwachungsprotokollierung konfigurieren. Bei der Sitzungsüberwachungsprotokollierung werden detaillierte Protokolle von ausgeführten Anweisungen ausgegeben. Bei der Objektüberwachungsprotokollierung ist die Überwachung auf bestimmte Beziehungen gerichtet. Sie können auswählen, ob Sie einen oder beide Protokollierungstypen einrichten möchten.

Hinweis

Die Einstellungen von pgAudit werden global angegeben, nicht auf Datenbank- oder Rollenebene.

Nachdem Sie pgAudit installiert haben, können Sie die zugehörigen Parameter so konfigurieren, dass die Protokollierung gestartet wird.

So konfigurieren Sie pgAudit im Portal

  1. Wählen Sie Ihre Azure Database for PostgreSQL-Server aus.

  2. Wählen Sie links unter Einstellungen die Option Serverparameter aus.

  3. Suchen Sie nach den pgaudit-Parametern.

  4. Wählen Sie die entsprechenden Einstellungsparameter aus, die bearbeitet werden sollen. Legen Sie beispielsweise zum Starten der Protokollierung pgaudit.log auf WRITE fest.

    Screenshot: Azure Database for PostgreSQL – Konfigurieren der Protokollierung mit pgAudit

  5. Wählen Sie Speichern, um Ihre Änderungen zu speichern.

Die pgAudit-Dokumentation stellt die Definition der einzelnen Parameter bereit. Testen Sie zuerst die Parameter, und vergewissern Sie sich, dass sie das erwartete Verhalten aufweisen. Beispiel:

  • Wenn die Einstellung pgaudit.log_client aktiviert wird, werden Protokolle an einen Clientprozess wie psql umgeleitet, anstatt in eine Datei geschrieben zu werden. Lassen Sie diese Einstellung im Allgemeinen deaktiviert.
  • Der Parameter pgaudit.log_level wird nur aktiviert, wenn pgaudit.log_client aktiviert ist.

Hinweis

In Azure Database for PostgreSQL kann pgaudit.log nicht mit einer Minuszeichenverknüpfung (-) festgelegt werden, wie in der pgAudit-Dokumentation beschrieben. Alle erforderlichen Anweisungsklassen, wie READ und WRITE, sollten einzeln angegeben werden.

Format der Überwachungsprotokolle

Jeder Überwachungseintrag wird durch AUDIT: am Anfang der Protokollzeile gekennzeichnet. Das Format des restlichen Eintrags wird in der pgAudit-Dokumentation ausführlich erläutert.

Wenn Sie weitere Felder benötigen, um Ihre Überwachungsanforderungen zu erfüllen, verwenden Sie den Postgres-Parameter log_line_prefix. Die Zeichenfolge log_line_prefix wird am Anfang jeder Postgres-Protokollzeile ausgegeben. Die folgende log_line_prefix-Einstellung stellt beispielsweise den Zeitstempel, den Benutzernamen, den Datenbanknamen und die Prozess-ID bereit:

t=%m u=%u db=%d pid=[%p]:

Weitere Informationen zu log_line_prefix finden Sie in der PostgreSQL-Dokumentation.

Erste Schritte

Legen Sie für den schnellen Einstieg pgaudit.log auf WRITE fest. Öffnen Sie dann Ihre Protokolle, um die Ausgabe zu überprüfen.

Anzeigen von Überwachungsprotokollen

Wenn Sie LOG-Dateien verwenden, sind Ihre Überwachungsprotokolle in derselben Datei enthalten wie Ihre PostgreSQL-Fehlerprotokolle. Sie können Protokolldateien über das Portal oder die Befehlszeilenschnittstelle herunterladen.

Wenn Sie Azure-Ressourcenprotokollierung verwenden, hängt die Art und Weise, wie Sie auf die Protokolle zugreifen, vom gewählten Endpunkt ab. Für Storage lesen Sie Azure-Ressourcenprotokolle. Für Event Hubs lesen Sie ebenfalls Azure-Ressourcenprotokolle.

Für Monitor-Protokolle 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, wie dargestellt. Weitere Informationen zu Abfragen und Warnungen finden Sie unter Protokollabfragen in Azure Monitor.

Verwenden Sie diese Abfrage für den Einstieg. Sie können Warnungen basierend auf Abfragen konfigurieren.

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

AzureDiagnostics
| where LogicalServerName_s == "myservername"
| where TimeGenerated > ago(1d) 
| where Message contains "AUDIT:"

Nächste Schritte