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.