SaltStack - Pencatatan

Logging digunakan untuk melacak aktivitas perangkat lunak yang sedang berjalan. Peristiwa dijelaskan dengan pesan deskriptif, yang secara opsional dapat berisi data variabel. Pendekatan penebangan garam digunakan untuk mendapatkan masalah apa pun, yang mungkin Anda hadapi. Anda dapat memeriksa dengan level log tertentu.

Pengaturan konfigurasi

Biarkan kami memahami pengaturan konfigurasi yang berbeda untuk logging, secara detail.

LOG_FILE

Catatan log garam melewati file, yang berisi nama jalur lokal atau lokasi jaringan untuk identifikasi. File ini dianggap sebagai file log.

log_file: /var/log/salt/master

Di sini, file yang bergantung pada biner dieksekusi di master. Demikian pula, Anda juga dapat mengeksekusi di minion, yang ditunjukkan di bawah ini.

log_file: /var/log/salt/minion

Anda juga dapat menggunakan alamat jarak jauh. Sintaks untuk menggunakan alamat jarak jauh adalah - <file | udp | tcp>: // <host | socketpath>: <port-if-required> / <log-facility>.

log_file: udp://loghost:port

Di sini, fasilitas Log secara default adalah LOG_USER.

LOG_LEVEL

Tingkat log diurutkan dalam nilai yang ditetapkan secara numerik. Library Python telah mendefinisikan sebagian besar level logging secara default. Selain itu, Salt menggunakan beberapa level lagi. Beberapa level dijelaskan di bawah ini.

  • log_level: error; level value is 40 - Ini menunjukkan catatan pernyataan log pada kesalahan.

  • log_level: quiet; level value is 1000 - Ini menunjukkan bahwa tidak ada yang harus dicatat pada level ini.

  • log_level: info; level value is 20 - Ini menunjukkan informasi log normal.

  • log_level: warn; level value is 30 - Ini menunjukkan catatan pernyataan log pada peringatan.

  • log_level: debug; level value is 10 - Informasi yang berguna untuk men-debug implementasi salt dan kode salt.

  • log_level: trace; level value is 5 - Informasi kode-debugging yang lebih detail.

LOG_LEVEL_LOGFILE

Ini menentukan tingkat pesan untuk dikirim ke file log.

log_level_logfile: info

LOG_DATEFMT

Ini mendefinisikan format tanggal log. Secara default, ini direpresentasikan sebagai% Y-% m-% d% H:% M:% S.

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

LOG_FMT_CONSOLE

Ini mendefinisikan format konsol yang mencatat pesan. Garam menggunakan kebiasaanLogRecordatribut untuk mewarnai keluaran log konsol. Ini mengikuti sintaks berikut -

'%(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

Ini mendefinisikan format file log yang mencatat pesan. Sintaks dasarnya adalah sebagai berikut -

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

LOG_GRANULAR_LEVELS

Level ini digunakan untuk mengontrol level logging secara lebih spesifik.

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

Di sini, pustaka garam Utama di tingkat 'info' menyetel salt.modules untuk mencatat di tingkat jejak.

Penangan Log Eksternal

Salt menggunakan LogStash dan penangan log eksternal Sentry untuk logging. Mari kita pahami secara detail di bab ini.

Penangan LOGSTASH

LogStash adalah open source; pipeline pemrosesan data aman sisi server. Mari kita pertimbangkan handler logging UDP sederhana di Salt yang menggunakan LogStash.

Tentukan perubahan berikut dalam file master Salt -

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

Kemudian tambahkan perubahan di file konfigurasi Logstash -

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

Sini, UDP - adalah masukan yang harus memiliki format sebagai json_event, itulah yang kami kirimkan melalui kawat.

SENTRY Logging Handler

Sentry adalah pelacakan kesalahan waktu nyata dalam penerapan produksi dan informasi untuk mereproduksi dan memperbaiki kerusakan. Konfigurasi default di file master ditentukan di bawah ini.

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

Di sini, level logging default untuk sentry handler adalah ERROR, tetapi kami mendefinisikan debugnya log_level di bawah kunci konfigurasi sentry_handler.