SaltStack - Günlük Kaydı

Günlüğe kaydetme, çalışan yazılım olaylarını izlemek için kullanılır. Bir olay, isteğe bağlı olarak değişken verileri içerebilen açıklayıcı bir mesajla açıklanır. Tuz kaydı yaklaşımı, karşılaşabileceğiniz herhangi bir sorunu çözmek için kullanılır. Belirli günlük seviyeleri ile kontrol edebilirsiniz.

Yapılandırma ayarları

Günlük kaydı için farklı yapılandırma ayarlarını ayrıntılı olarak anlayalım.

LOG DOSYASI

Tuz günlük kayıtları, yerel yol adını veya tanımlama için ağ konumunu içeren dosyadan geçirilir. Bu dosya, günlük dosyası olarak kabul edilir.

log_file: /var/log/salt/master

Burada, ikiliye bağlı olan dosya ana bilgisayarda yürütülüyor. Benzer şekilde, aşağıda gösterilen minyonda da uygulayabilirsiniz.

log_file: /var/log/salt/minion

Uzak adresi de kullanabilirsiniz. Uzak adresi kullanmak için sözdizimi - <dosya | udp | tcp>: // <ana bilgisayar | soket yolu>: <bağlantı noktası gerekiyorsa> / <günlük-tesis> şeklindedir.

log_file: udp://loghost:port

Burada, Günlük tesisi varsayılan olarak LOG_USER'dır.

LOG_LEVEL

Günlük seviyeleri, sayısal olarak atanan bir değerde sıralanır. Python kitaplığı varsayılan olarak günlük kayıt düzeylerinin çoğunu tanımlamıştır. Buna ek olarak, Tuz biraz daha fazla seviye kullanır. Bazı seviyeler aşağıda açıklanmıştır.

  • log_level: error; level value is 40 - Hatalı günlük deyimi kaydını gösterir.

  • log_level: quiet; level value is 1000 - Bu düzeyde hiçbir şeyin günlüğe kaydedilmemesi gerektiğini gösterir.

  • log_level: info; level value is 20 - Normal günlük bilgilerini gösterir.

  • log_level: warn; level value is 30 - Uyarı anında günlük bildirim kaydını gösterir.

  • log_level: debug; level value is 10 - Hem tuz uygulamalarında hem de tuz kodunda hata ayıklamak için yararlı bilgiler.

  • log_level: trace; level value is 5 - Daha ayrıntılı kod hata ayıklama bilgileri.

LOG_LEVEL_LOGFILE

Günlük dosyasına gönderilecek mesajların düzeyini tanımlar.

log_level_logfile: info

LOG_DATEFMT

Günlük tarih formatını tanımlar. Varsayılan olarak,% Y-% m-% d% H:% M:% S şeklinde temsil edilir.

log_datefmt_logfile: '%Y-%m-%d %H:%M:%S'

LOG_FMT_CONSOLE

Mesajları günlüğe kaydeden konsolun formatını tanımlar. Tuz bir gelenek kullanırLogRecordkonsol günlük çıktısını renklendirmek için özellikler. Aşağıdaki sözdizimini izler -

'%(colorlevel)s'       # log level name colorized by level
'%(colorname)s'        # colorized module name
'%(colorprocess)s'     # colorized process number
'%(colormsg)s'         # colorized messages name

LOG_FMT_LOGFILE

Mesajların günlüğünü tutan günlük dosyasının biçimini tanımlar. Temel sözdizimi aşağıdaki gibidir -

%(asctime)s,%(msecs)03d [%(name)-17s][%(levelname)-8s] %(message)s

LOG_GRANULAR_LEVELS

Bu seviye, günlük kaydı seviyelerini daha spesifik olarak kontrol etmek için kullanılır.

log_granular_levels:
   'salt': 'info'
   'salt.modules': ‘trace'

Burada, 'bilgi' düzeyindeki Ana tuz kitaplığı, salt.modules izleme düzeyinde oturum açmak için.

Harici Günlük İşleyicisi

Salt, günlük kaydı için LogStash ve Sentry harici günlük işleyicisini kullanır. Bu bölümde ayrıntılı olarak anlayalım.

LOGSTASH İşleyici

LogStash açık bir kaynaktır; sunucu tarafı güvenli veri işleme hattı. Salt'ta LogStash kullanan basit bir UDP günlük işleyicisini düşünelim.

Salt ana dosyasında aşağıdaki değişiklikleri belirtin -

logstash_udp_handler:
   host: 127.0.0.1
   port: 9999
   version: 1
   msg_type: logstash

Ardından değişiklikleri Logstash yapılandırma dosyasına ekleyin -

input {
   udp {
      port ⇒ 9999
      codec ⇒ json
   }
}

Buraya, UDP - bir biçime sahip olması gereken girdidir json_event, biz de tel üzerinden gönderdiklerimiz.

SENTRY Günlük İşleyicisi

Sentry, üretim dağıtımlarında gerçek zamanlı hata takibi ve çökmeleri yeniden oluşturmak ve düzeltmek için gereken bilgilerdir. Ana dosyadaki varsayılan konfigürasyon aşağıda tanımlanmıştır.

sentry_handler:
   dsn: https://pub-key:[email protected]/app-id
   log_level: debug

Burada, nöbetçi işleyici için varsayılan günlük kaydı seviyesi ERROR'dur, ancak hata ayıklamayı tanımladık log_level sentry_handler yapılandırma anahtarı altında.