Aracılığıyla paylaş


PostgreSQL için Azure Veritabanı - Tek Sunucuda denetim günlüğü

ŞUNLAR IÇIN GEÇERLIDIR: PostgreSQL için Azure Veritabanı - Tek Sunucu

Önemli

PostgreSQL için Azure Veritabanı - Tek Sunucu kullanımdan kaldırma yolundadır. PostgreSQL için Azure Veritabanı - Esnek Sunucu'ya yükseltmenizi kesinlikle öneririz. PostgreSQL için Azure Veritabanı - Esnek Sunucu'ya geçiş hakkında daha fazla bilgi için bkz. PostgreSQL için Azure Veritabanı Tek Sunucuya ne oluyor?.

PostgreSQL için Azure Veritabanı - Tek Sunucu'daki veritabanı etkinliklerinin denetim günlüğü, PostgreSQL Denetim uzantısı olan pgAudit aracılığıyla sağlanır. pgAudit uzantısı ayrıntılı oturum ve nesne denetim günlüğü sağlar.

Not

pgAudit uzantısı PostgreSQL için Azure Veritabanı önizleme aşamasındadır. Yalnızca genel amaçlı ve bellek için iyileştirilmiş sunucularda etkinleştirilebilir.

İşlem ve depolama ölçeklendirme gibi işlemler için Azure kaynak düzeyinde günlükler istiyorsanız bkz . Azure platform günlüklerine genel bakış.

Kullanımla ilgili dikkat edilmesi gerekenler

Varsayılan olarak, pgAudit günlük deyimleri Postgres standart günlük özelliği kullanılarak normal günlük deyimlerinizle birlikte yayılır. PostgreSQL için Azure Veritabanı bu .log dosyaları Azure portalı veya Azure CLI aracılığıyla indirilebilir. Dosya koleksiyonu için maksimum depolama alanı 1 GB'tır. Her dosya en fazla yedi gün kullanılabilir. Varsayılan değer üç gündür. Bu hizmet, kısa vadeli bir depolama seçeneğidir.

Alternatif olarak, Log Analytics'te daha sonraki analizler için tüm günlükleri Azure İzleyici Günlükleri deposuna gönderilecek şekilde yapılandırabilirsiniz. İzleyici kaynak günlüğünü etkinleştirirseniz, günlükleriniz tercihinize bağlı olarak otomatik olarak JSON biçiminde Azure Depolama, Azure Event Hubs veya İzleyici Günlükleri'ne gönderilir.

pgAudit'in etkinleştirilmesi, sunucuda performansı ve günlük depolamayı etkileyen büyük miktarda günlük oluşturur. Daha uzun süreli depolama seçenekleri ve analiz ve uyarı özellikleri sunan İzleyici Günlükleri'ni kullanmanızı öneririz. Ek günlüğün performans etkisini azaltmak için standart günlüğü kapatın:

  1. parametresini logging_collector KAPALI olarak ayarlayın.
  2. Bu değişikliği uygulamak için sunucuyu yeniden başlatın.

Depolama, Event Hubs veya İzleyici Günlükleri'nde günlüğe kaydetmeyi ayarlamayı öğrenmek için PostgreSQL için Azure Veritabanı - Tek Sunucu'daki Günlükler'in kaynak günlükleri bölümüne bakın.

pgAudit'i yükleme

pgAudit'i yüklemek için, bunu sunucunun paylaşılan önceden yüklenmiş kitaplıklarına eklemeniz gerekir. Postgres shared_preload_libraries parametresinde yapılan bir değişiklik, sunucunun yeniden başlatılmasını gerektirir. Portal, CLI veya REST API kullanarak parametreleri değiştirebilirsiniz.

Portalı kullanmak için:

  1. PostgreSQL için Azure Veritabanı sunucunuzu seçin.

  2. Sol taraftaki Ayarlar'ın altında Sunucu parametreleri'ni seçin.

  3. shared_preload_libraries arayın.

  4. PGAUDIT'i seçin.

    PGAUDIT için shared_preload_libraries etkinleştirme PostgreSQL için Azure Veritabanı gösteren ekran görüntüsü.

  5. Değişikliği uygulamak için sunucuyu yeniden başlatın.

  6. psql gibi bir istemci kullanarak sunucunuza bağlanın ve pgAudit uzantısını etkinleştirin:

    CREATE EXTENSION pgaudit;
    

İpucu

Bir hata görürseniz, kaydettikten shared_preload_librariessonra sunucunuzu yeniden başlattığınızdan emin olun.

pgAudit ayarları

pgAudit kullanarak oturum veya nesne denetim günlüğünü yapılandırabilirsiniz. Oturum denetim günlüğü , yürütülen deyimlerin ayrıntılı günlüklerini gösterir. Nesne denetim günlüğü , denetim kapsamının belirli ilişkilere göre belirlenmiş olmasıdır. Bir veya her iki günlük türünü de ayarlamayı seçebilirsiniz.

Not

pgAudit ayarları genel olarak belirtilir ve veritabanı veya rol düzeyinde belirtilmez.

pgAudit'i yükledikten sonra, günlüğe kaydetmeyi başlatmak için parametrelerini yapılandırabilirsiniz.

pgAudit'i yapılandırmak için portalda:

  1. PostgreSQL için Azure Veritabanı sunucunuzu seçin.

  2. Sol taraftaki Ayarlar'ın altında Sunucu parametreleri'ni seçin.

  3. pgaudit parametrelerini arayın.

  4. Düzenlemek için uygun ayarlar parametrelerini seçin. Örneğin, günlüğe kaydetmeye başlamak için pgaudit.log WRITE olarak ayarlayın.

    pgAudit ile günlüğe kaydetmeyi yapılandırmayı PostgreSQL için Azure Veritabanı gösteren ekran görüntüsü.

  5. Yaptığınız değişiklikleri kaydetmek için Kaydet'i seçin.

pgAudit belgeleri her parametrenin tanımını sağlar. Önce parametreleri test edin ve beklenen davranışı elde ettiğinizi onaylayın. Örneğin:

  • pgaudit.log_client ayarı açık olduğunda, günlükleri bir dosyaya yazılmak yerine psql gibi bir istemci işlemine yönlendirir. Genel olarak, bu ayarı devre dışı bırakın.
  • pgaudit.log_level parametresi yalnızca pgaudit.log_client açıkken etkinleştirilir.

Not

PostgreSQL için Azure Veritabanı pgaudit.log, pgAudit belgelerinde açıklandığı gibi eksi işareti kısayolu (-) kullanılarak ayarlanamaz. READ ve WRITE gibi tüm gerekli deyim sınıfları ayrı ayrı belirtilmelidir.

Denetim günlüğü biçimi

Her denetim girdisi, günlük satırının başına yakın bir şekilde belirtilir AUDIT: . Girdinin geri kalanının biçimi pgAudit belgelerinde ayrıntılı olarak açıklanmıştır.

Denetim gereksinimlerinizi karşılamak için başka alanlara ihtiyacınız varsa Postgres parametresini log_line_prefixkullanın. Dize log_line_prefix , her Postgres günlük satırının başında çıkıştır. Örneğin, aşağıdaki log_line_prefix ayar zaman damgası, kullanıcı adı, veritabanı adı ve işlem kimliği sağlar:

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

hakkında log_line_prefixdaha fazla bilgi edinmek için PostgreSQL belgelerine bakın.

Kullanmaya başlayın

Hızlı bir şekilde başlamak için pgaudit.log WRITE olarak ayarlayın. Ardından çıktıyı gözden geçirmek için günlüklerinizi açın.

Denetim günlüklerini görüntüleme

.log dosyaları kullanıyorsanız, denetim günlükleriniz PostgreSQL hata günlüklerinizle aynı dosyaya eklenir. Günlük dosyalarını portaldan veya CLI'dan indirebilirsiniz.

Azure kaynak günlüğünü kullanıyorsanız günlüklere erişme şekliniz seçtiğiniz uç noktaya bağlıdır. Depolama için bkz . Azure kaynak günlükleri. Event Hubs için bkz . Azure kaynak günlükleri.

Günlükleri İzle için günlükler seçtiğiniz çalışma alanına gönderilir. Postgres günlükleri, gösterildiği gibi tablodan sorgulanabilmeleri AzureDiagnostics için koleksiyon modunu kullanırAzureDiagnostics. Sorgulama ve uyarı verme hakkında daha fazla bilgi edinmek için bkz . Azure İzleyici'de sorguları günlüğe kaydetme.

Başlamak için bu sorguyu kullanın. Uyarıları sorgulara göre yapılandırabilirsiniz.

Son gün içinde belirli bir sunucu için tüm Postgres günlüklerini arayın:

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

Sonraki adımlar