Aracılığıyla paylaş


PostgreSQL için Azure Veritabanı - Tek Sunucu günlükleri

Ş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ı, Postgres'in standart günlüklerini yapılandırmanıza ve bu günlüklere erişmenize olanak tanır. Günlükler, yapılandırma hatalarını ve düşük performans sorunlarını belirlemek, gidermek ve onarmak için kullanılabilir. Yapılandırabileceğiniz ve erişebileceğiniz günlük bilgileri hatalar, sorgu bilgileri, otomatik vakum kayıtları, bağlantılar ve denetim noktaları içerir. (İşlem günlüklerine erişim kullanılamaz).

Denetim günlüğü bir PostgreSQL uzantısı olan pgaudit aracılığıyla kullanılabilir hale getirilir. Daha fazla bilgi edinmek için denetim kavramları makalesini ziyaret edin.

Günlük kaydetmeyi yapılandırma

Günlük sunucusu parametrelerini kullanarak sunucunuzda Postgres standart günlüğü yapılandırabilirsiniz. Her PostgreSQL için Azure Veritabanı sunucusunda log_checkpoints ve log_connections varsayılan olarak açıktır. Günlük gereksinimlerinize göre ayarlayabileceğiniz ek parametreler vardır:

PostgreSQL için Azure Veritabanı - Günlük parametreleri

Postgres günlük parametreleri hakkında daha fazla bilgi edinmek için Postgres belgelerinin Ne Zaman Günlüğe Kaydedilecek Ve Günlüğe KaydedilecekLer bölümlerini ziyaret edin. Postgres günlük parametrelerinin çoğu ancak tümü değil, PostgreSQL için Azure Veritabanı yapılandırılabilir.

PostgreSQL için Azure Veritabanı'da parametreleri yapılandırmayı öğrenmek için portal belgelerine veya CLI belgelerine bakın.

Not

Deyim günlüğü gibi yüksek hacimli günlüklerin yapılandırılması önemli bir performans yüküne neden olabilir.

Günlük dosyalarına erişin.

PostgreSQL için Azure Veritabanı varsayılan günlük biçimi .log. Bu günlükten örnek bir satır şöyle görünür:

2019-10-14 17:00:03 UTC-5d773cc3.3c-LOG: connection received: host=101.0.0.6 port=34331 pid=16216

PostgreSQL için Azure Veritabanı, .log dosyaları için kısa vadeli bir depolama konumu sağlar. Yeni bir dosya her 1 saatte bir veya 100 MB'da (hangisi önce gelirse) başlar. Postgres'ten gönderilen günlükler geçerli dosyaya eklenir.

parametresini kullanarak log_retention_period bu kısa süreli günlük depolama için bekletme süresini ayarlayabilirsiniz. Varsayılan değer 3 gün, en büyük değer ise 7 gündür. Kısa vadeli depolama konumu en fazla 1 GB günlük dosyasını barındırabilir. 1 GB'ın ardından, saklama süresi ne olursa olsun en eski dosyalar silinerek yeni günlüklere yer açılır.

Günlüklerin daha uzun süreli saklaması ve günlük analizi için .log dosyalarını indirebilir ve üçüncü taraf bir hizmete taşıyabilirsiniz. Azure portalını( Azure CLI) kullanarak dosyaları indirebilirsiniz. Alternatif olarak, günlüklerinizi (JSON biçiminde) daha uzun süreli konumlara otomatik olarak yayan Azure İzleyici tanılama ayarlarını yapılandırabilirsiniz. Aşağıdaki bölümde bu seçenek hakkında daha fazla bilgi edinin.

parametresini logging_collector KAPALI olarak ayarlayarak .log dosyaları oluşturma işlemini durdurabilirsiniz. Azure İzleyici tanılama ayarlarını kullanıyorsanız .log dosya oluşturmayı kapatmanız önerilir. Bu yapılandırma, ek günlüğün performans etkisini azaltır.

Not

Bu değişikliği uygulamak için sunucuyu yeniden başlatın.

Kaynak günlükleri

PostgreSQL için Azure Veritabanı, Azure İzleyici tanılama ayarlarıyla tümleşiktir. Tanılama ayarları, Postgres günlüklerinizi JSON biçiminde analiz ve uyarı için Azure İzleyici Günlükleri'ne, akış için Event Hubs'a ve arşivleme için Azure Depolama'ya göndermenizi sağlar.

Önemli

Sunucu günlükleri için bu tanılama özelliği yalnızca Genel Amaçlı ve Bellek için İyileştirilmiş fiyatlandırma katmanlarında kullanılabilir.

Tanılama ayarlarını yapılandırma

Azure portalı, CLI, REST API ve PowerShell'i kullanarak Postgres sunucunuz için tanılama ayarlarını etkinleştirebilirsiniz. Seçecek günlük kategorisi PostgreSQLLogs'dur. (Kullanıyorsanız yapılandırabileceğiniz başka günlükler de vardırSorgu Deposu.)

Azure portalını kullanarak kaynak günlüklerini etkinleştirmek için:

  1. Portalda, Postgres sunucunuzun gezinti menüsünde Tanılama Ayarları'na gidin.
  2. Tanılama Ayarı Ekle'yi seçin.
  3. Bu ayarı adlandır.
  4. Tercih ettiğiniz uç noktayı seçin (depolama hesabı, olay hub'ı, log analytics).
  5. PostgreSQL Sunucu Günlükleri günlük türünü seçin.
  6. Ayarınızı kaydedin.

PowerShell, CLI veya REST API kullanarak kaynak günlüklerini etkinleştirmek için tanılama ayarları makalesini ziyaret edin.

Kaynak günlüklerine erişme

Günlüklere erişme şekliniz hangi uç noktayı seçtiğinize bağlıdır. Azure Depolama için günlük depolama hesabı makalesine bakın. Event Hubs için Azure günlüklerini akışla aktarma makalesine bakın.

Azure İzleyici Günlükleri için günlükler seçtiğiniz çalışma alanına gönderilir. Postgres günlükleri AzureDiagnostics koleksiyon modunu kullanır, böylece AzureDiagnostics tablosundan sorgulanabilir. Tablodaki alanlar aşağıda açıklanmıştır. Azure İzleyici Günlükleri sorgusuna genel bakış bölümünde sorgulama ve uyarı oluşturma hakkında daha fazla bilgi edinin.

Başlamak için deneyebileceğiniz sorgular aşağıdadır. Uyarıları sorgulara göre yapılandırabilirsiniz.

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

AzureDiagnostics
| where LogicalServerName_s == "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d) 

Localhost olmayan tüm bağlantı girişimlerini arama

AzureDiagnostics
| where Message contains "connection received" and Message !contains "host=127.0.0.1"
| where Category == "PostgreSQLLogs" and TimeGenerated > ago(6h)

Yukarıdaki sorgu, bu çalışma alanında tüm Postgres sunucu günlüklerinin son 6 saat içindeki sonuçlarını gösterir.

Günlük biçimi

Aşağıdaki tabloda PostgreSQLLogs türü için alanlar açıklanmaktadır. Seçtiğiniz çıkış uç noktasına bağlı olarak, dahil edilen alanlar ve bunların görüntülenme sırası değişebilir.

Alan Açıklama
TenantId Kiracı kimliğiniz
SourceSystem Azure
TimeGenerated [UTC] Günlüğün UTC olarak kaydedildiği zaman damgası
Tür Günlüğün türü. Her zaman AzureDiagnostics
SubscriptionId Sunucunun ait olduğu abonelik için GUID
ResourceGroup Sunucunun ait olduğu kaynak grubunun adı
ResourceProvider Kaynak sağlayıcısının adı. Her zaman MICROSOFT.DBFORPOSTGRESQL
ResourceType Servers
ResourceId Kaynak URI
Kaynak sunucusunun adı
Kategori PostgreSQLLogs
OperationName LogEvent
errorLevel Günlük düzeyi, örnek: LOG, ERROR, NOTICE
İleti Birincil günlük iletisi
Domain Sunucu sürümü, örnek: postgres-10
Ayrıntı İkincil günlük iletisi (varsa)
ColumnName Sütunun adı (varsa)
SchemaName Şemanın adı (varsa)
DatatypeName Veri türünün adı (varsa)
LogicalServerName sunucusunun adı
_ResourceId Kaynak URI
Önek Günlük satırının ön eki

Sonraki adımlar