Untuk tujuan logging kernel, mengapa saya memiliki tiga level logging non-inklusif yang berbeda di antara /var/log/messages
, /var/log/syslog
, dan /var/log/kern.log
?
Jawaban Terbaik
Syslog adalah fasilitas logging standar. Ini mengumpulkan pesan dari berbagai program dan layanan termasuk kernel, dan menyimpannya, tergantung pada pengaturan, dalam banyak file log biasanya di bawah /var/log
. Di beberapa pengaturan pusat data ada ratusan perangkat masing-masing dengan log sendiri; syslog berguna di sini juga. Seseorang baru saja menyiapkan server syslog khusus yang mengumpulkan semua log perangkat individual melalui jaringan. Syslog juga dapat menyimpan log ke database, dan klien lain.
Menurut /etc/syslog.conf
saya , default /var/log/kern.log
hanya menangkap pesan kernel dari level log apa pun; yaitu keluaran dari dmesg
.
/var/log/messages
alih-alih bertujuan untuk menyimpan pesan yang berharga, non-debug, dan non-kritis. Log ini harus dianggap sebagai log “aktivitas sistem umum”.
/var/log/syslog
pada gilirannya mencatat semuanya, kecuali pesan terkait autentikasi.
Log standar menarik lainnya yang dikelola oleh syslog adalah /var/log/auth.log
, /var/log/mail.log
.
Pembaruan 2020
Anda mungkin masih menemukan syslog; tetapi defaultnya telah berubah.
journald
telah menggantikan syslog, di sebagian besar sistem, termasuk Ubuntu.
Ini relevan karena Anda tidak akan menemukan /var/log/messages
yang sering lagi. journald
tidak menulis log teks biasa — ia menggunakan formatnya sendiri, terkompresi, dan sebagian diautentikasi.
Cari online untuk mis. lembar contekan journalctl , atau cukup pelajari man 8 systemd-journald
, man 1 journalctl
sendiri.
Syslog dan journald, pada tingkat tertentu, kompatibel-silang; Anda dapat mengangkut log di antara mereka di kedua arah. Namun, Anda tidak akan mendapatkan log teks biasa a-la /var/log/messages
dengan jurnal; dan Anda tidak akan menjadi terstruktur (journalctl -o json-pretty
) dan logging yang diautentikasi dengan syslog.