PostgreSQL REPORTING AND LOGGING

PostgreSQL REPORTING AND LOGGING (Raporlama ve Günlükleme) parametreleri, veritabanı sunucusunun davranışını izlemek, hata ayıklamak ve performansı izlemek için kullanılır. Bu parametreler, veritabanı sunucusunun ne tür bilgileri kaydedeceğini ve nasıl raporlayacağını belirler.

PostgreSQL’de yaygın olarak kullanılan PostgreSQL REPORTING AND LOGGING parametreleri:

log_destination:
Sunucu mesajlarının günlüğe kaydedileceği yerleri belirtir. Geçerli değerler platforma bağlı olarak stderr, csvlog, jsonlog, syslog ve eventlog kombinasyonlarıdır csvlog ve jsonlog seçenekleri, logging_collector’ın açık olmasını gerektirir.

 

logging_collector:
stderr, jsonlog ve csvlog’u günlük dosyalarına yönlendiren arka plan sürecini etkinleştirircsvlogs ve jsonlogs için bu seçeneğin açık olması gerekir.

 

log_directory:
Günlük dosyalarının yazılacağı dizini belirtir. Bu değer PGDATA’ya göre mutlak veya göreceli olabilir.

 

log_filename:
Günlük dosyası adı desenini belirtir strftime() kaçışlarını içerebilir.

 

log_file_mode:
Günlük dosyalarının oluşturulma modunu belirtir0 ile başlamak, sekizli gösterimi kullanmak içindir.

 

log_rotation_age:
Günlük dosyalarının otomatik olarak ne zaman döndürüleceğini belirtir ‘0’ bu özelliği devre dışı bırakır.

 

log_rotation_size:
Günlük dosyalarının ne kadar günlük çıktıdan sonra otomatik olarak döndürüleceğini belirtir ‘0’ bu özelliği devre dışı bırakır.

 

log_truncate_on_rotation:
Açık olduğunda, yeni günlük dosyası ile aynı ada sahip mevcut bir günlük dosyası kesilir ve üzerine yazılır. Ancak, bu kesme işlemi yalnızca zamanla sürülen döndürme sırasında gerçekleşir, yeniden başlatmalarda veya boyutla sürülen döndürmede değil.

 

syslog_facility :

Bu parametre, PostgreSQL’in syslog için kullanacağı tesis kodunu belirler. Syslog, UNIX ve benzeri işletim sistemlerinde olay günlüğü mesajlarını işlemek için yaygın olarak kullanılan bir sistem günlüğüdür.


syslog_ident :

Bu parametre, PostgreSQL’in syslog’e gönderdiği mesajların kimliğini belirler. Bu, syslog tarafından tanınan bir kimlik veya etikettir.

 

syslog_sequence_numbers :

Bu parametre, syslog mesajlarının sıra numaralarının eklenip eklenmeyeceğini belirler. Bu, her mesaja benzersiz bir sıra numarası ekleyerek olayların sıralanmasını sağlar.

 

syslog_split_messages :

Bu parametre, PostgreSQL’in syslog’e gönderdiği mesajları birden çok satıra bölüp bölmemesi gerektiğini belirler. Uzun mesajlar için kullanışlıdır.

 

event_source :

Bu parametre, Windows’ta olay günlüğüne kaydedilen olayların kaynağını belirler. Bu, Windows Event Viewer’da PostgreSQL olaylarını tanımlamak için kullanılır.

 

log_min_messages :

Bu parametre, hangi tür olayların olay günlüğüne kaydedileceğini belirler. Öncelikle bu parametre, log_min_error_statement değerine eşit veya daha büyük olduğunda olayların kaydedilip kaydedilmeyeceğini belirler.

 

log_min_error_statement :

Bu parametre, hangi hata seviyesinin veya daha yüksek hata seviyelerinin olay günlüğüne kaydedileceğini belirler.

 

log_min_duration_statement :

Bu parametre, hangi sorgu sürelerinin olay günlüğüne kaydedileceğini belirler. Negatif bir değer, bu özelliğin devre dışı bırakılmasını sağlar.

 

log_min_duration_sample :

Bu parametre, örnekleme sorgularının ve sürelerinin olay günlüğüne kaydedilip kaydedilmeyeceğini belirler.

 

log_statement_sample_rate :

Bu parametre, belirli bir sorgu süresinin log_min_duration_sample değerinden büyük olması durumunda olay günlüğüne kaydedilen sorgu örnekleme oranını belirler.

 

log_transaction_sample_rate :

Bu parametre, belirli bir işlem için tüm sorguların kaydedilip kaydedilmeyeceğini belirler.

 

log_startup_progress_interval :

Bu parametre, PostgreSQL başlatma sürecindeki ilerlemenin ne sıklıkla günlüğe kaydedileceğini belirler. Uzun süren başlatma işlemlerinde kullanışlıdır.

debug_print_parse :

Bu parametre, SQL sorgularının analiz edildiğinde ekrana yazdırılmasını kontrol eder. Varsayılan olarak kapalıdır.

 

debug_print_rewritten :

Bu parametre, sorguların tekrar düzenlendiğinde ekrana yazdırılmasını kontrol eder. Varsayılan olarak kapalıdır.

 

debug_print_plan :

Bu parametre, sorguların planlanması sırasında ekrana yazdırılmasını kontrol eder. Varsayılan olarak kapalıdır.

 

debug_pretty_print :

Bu parametre, SQL sorgularının insan tarafından daha okunabilir bir biçimde yazdırılmasını kontrol eder. Varsayılan olarak açıktır.

 

log_autovacuum_min_duration :

Bu parametre, otomatik vakumlamaların olay günlüğüne kaydedilip kaydedilmeyeceğini belirler. Negatif bir değer, bu özelliğin devre dışı bırakılmasını sağlar.

 

log_checkpoints :

Bu parametre, denetim noktalarının (checkpoint) olay günlüğüne kaydedilip kaydedilmeyeceğini belirler.

 

log_connections :

Bu parametre, veritabanına yapılan bağlantıların olay günlüğüne kaydedilip kaydedilmeyeceğini belirler. Varsayılan olarak kapalıdır.

 

log_disconnections:

Bu parametre, veritabanından yapılan bağlantı kesmelerin olay günlüğüne kaydedilip kaydedilmeyeceğini belirler. Varsayılan olarak kapalıdır.

log_duration :

Bu parametre, her sorgunun çalışma süresinin olay günlüğüne kaydedilip kaydedilmeyeceğini belirler. Varsayılan olarak kapalıdır.

 

log_error_verbosity :

Bu parametre, hata mesajlarının detay düzeyini belirler. Varsayılan olarak “default” olarak ayarlanmıştır.

 

log_hostname:

Bu parametre, olay günlüğüne yazılan her girişin hangi makineden geldiğini belirlemek için ana makinenin adını ekler. Varsayılan olarak kapalıdır.

 

log_line_prefix = ‘%m [%p] ‘

 

Bu parametre, her log girdisinin başında yer alacak metnin formatını belirler. Özel değerler kullanılarak bu format özelleştirilebilir.

 

  • %a = Uygulama adı (application name)
  • %u = Kullanıcı adı (user name)
  • %d = Veritabanı adı (database name)
  • %r = Uzak ana bilgisayar ve bağlantı noktası (remote host and port)
  • %h = Uzak ana bilgisayar (remote host)
  • %b = Arka uç türü (backend type)
  • %p = İşlem Kimliği (process ID)
  • %P = Paralel grup lideri işlem kimliği (process ID of parallel group leader)
  • %t = Milisaniyesiz zaman damgası (timestamp without milliseconds)
  • %m = Milisaniyeli zaman damgası (timestamp with milliseconds)
  • %n = Milisaniyeli zaman damgası (Unix epoch olarak) (timestamp with milliseconds as a Unix epoch)
  • %Q = Sorgu Kimliği (query ID) (0 ise hiçbiri veya hesaplanmamışsa)
  • %i = Komut etiketi (command tag)
  • %e = SQL durumu (SQL state)
  • %c = Oturum Kimliği (session ID)
  • %l = Oturum satır numarası (session line number)
  • %s = Oturum başlangıç zaman damgası (session start timestamp)
  • %v = Sanal işlem kimliği (virtual transaction ID)
  • %x = İşlem Kimliği (transaction ID) (0 ise hiçbiri)
  • %q = Burada durma (stop here in non-session processes)
  • %% = ‘%’ karakteri

Örneğin, ‘%m [%p] ‘ önek formatı, log satırlarını, zaman damgası ve işlem kimliği ile biçimlendirir.


log_lock_waits
:

 

Bu parametre, kilit beklemelerinin olay günlüğüne kaydedilip kaydedilmeyeceğini belirler. Özellikle deadlock_timeout süresini aşan kilit beklemelerini kaydeder.

 

log_recovery_conflict_waits:

 

Bu parametre, standby kurtarma çatışma bekleme sürelerinin olay günlüğüne kaydedilip kaydedilmeyeceğini belirler. Özellikle deadlock_timeout süresini aşan bekleme sürelerini kaydeder.

 

log_parameter_max_length :

Bu parametre, bir sorgunun parametre değerlerinin olay günlüğüne kaydedilip kaydedilmeyeceğini belirler. Negatif bir değer, bu özelliğin devre dışı bırakılmasını sağlar.

 

log_parameter_max_length_on_error :

Bu parametre, bir hatanın parametre değerlerinin olay günlüğüne kaydedilip kaydedilmeyeceğini belirler. Sıfır değeri, bu özelliğin devre dışı bırakılmasını sağlar.

 

log_statement :

Bu parametre, SQL ifadelerinin olay günlüğüne kaydedilip kaydedilmeyeceğini belirler. DDL (Veri Tanım Dili) ifadelerini, veri değiştirme ifadelerini veya tüm ifadeleri kaydetme seçenekleri arasından seçim yapılabilir.

  • none: Herhangi bir SQL ifadesi günlüğe kaydedilmez.
  • ddl: Yalnızca DDL (Data Definition Language) ifadeleri (CREATE, ALTER, DROP vb.) günlüğe kaydedilir.
  • mod: DDL ifadeleri ve veri değiştirme (INSERT, UPDATE, DELETE vb.) ifadeleri günlüğe kaydedilir.
  • all: Tüm SQL ifadeleri günlüğe kaydedilir.

log_replication_commands :

 

Bu parametre, replikasyon komutlarının olay günlüğüne kaydedilip kaydedilmeyeceğini belirler. Özellikle çoğaltma işlemlerini izlemek için kullanışlıdır.

 

log_temp_files :

Bu parametre, belirli bir boyuttan büyük geçici dosyaların olay günlüğüne kaydedilip kaydedilmeyeceğini belirler. Negatif bir değer, bu özelliğin devre dışı bırakılmasını sağlar.

 

log_timezone :

Bu parametre, olay günlüğüne yazılan tarih ve saat bilgisinin hangi zaman diliminde gösterileceğini belirler. Varsayılan olarak “GMT” olarak ayarlanmıştır.

Postgresql.conf ile ilgili daha fazla detay için postgresql.conf yazıma göz atabilirsiniz.

Loading