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:
- parametresini
logging_collector
KAPALI olarak ayarlayın. - 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:
PostgreSQL için Azure Veritabanı sunucunuzu seçin.
Sol taraftaki Ayarlar'ın altında Sunucu parametreleri'ni seçin.
shared_preload_libraries arayın.
PGAUDIT'i seçin.
Değişikliği uygulamak için sunucuyu yeniden başlatın.
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_libraries
sonra 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:
PostgreSQL için Azure Veritabanı sunucunuzu seçin.
Sol taraftaki Ayarlar'ın altında Sunucu parametreleri'ni seçin.
pgaudit parametrelerini arayın.
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.
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_prefix
kullanı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_prefix
daha 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
- PostgreSQL için Azure Veritabanı oturum açma hakkında bilgi edinin.
- Azure portalını, Azure CLI'yı veya REST API'yi kullanarak parametreleri ayarlamayı öğrenin.