Saya menggunakan Centos 6, rsyslog logging. Konsol dibanjiri dengan pesan-pesan kernel.
- Klogd tidak berjalan (saya menggunakan rsyslog)
- Konfigurasi rsyslog tidak mengarahkan apa pun ke konsol
- Bahkan mencoba menghentikan rsyslog sama sekali
Masih ada sesuatu yang membanjiri konsol saya dengan pesan log kernel. Apa itu dan bagaimana cara menghentikannya?
Pembaruan : Ini adalah pesan yang dihasilkan oleh kernel (perangkat keras, iptables, dll.), Hal-hal yang keluar /proc/kmsg
, seperti ini:
Shorewall: pub2loc: DROP: IN = br0 OUT = MAC = xxx SRC = xxx DST = xxx LEN = 60 TOS = 0x00 PREC = 0x00 TTL = 128 ID = 15731 DF PROTO = TCP SPT = 63767 DPT = 3493 WINDOW = 8192 RES = 0x00 SYN URGP = 0
xterm
jendela, jadi jika konsol dibanjiri tidak mengganggu saya.)Jawaban:
Saya sarankan Anda mengubah
/etc/sysctl.conf
. Khususnya, Anda ingin mengubah baris kernel.printk .Saya tidak yakin apa pengaturan default centos, tapi sepertinya saya memiliki hal-hal yang lebih tepat daripada yang Anda butuhkan.
Juga lihat bagian shorewall tentang logging. Anda tidak harus menggunakan target LOG untuk login, Anda dapat menggunakan alat lain, atau menyesuaikan keparahan log, dan mengubah hal-hal untuk mengontrol ke mana Anda pergi.
sumber
Untuk mengatur nilai saat runtime, gunakan
sysctl
. (Saya kira seseorang dapat menulis/proc/sys/kernel/printk
juga secara langsung dan ternyata Anda juga dapat menggunakandmesg -n CUR
seperti yang dijelaskan di sini )Tampilan:
Pemisah dalam output adalah tab tunggal, btw.
Set. Di sini separator hanya ruang. Bekerja juga.
Lihat
man sysctl
- "konfigurasikan parameter kernel saat runtime" untuk informasi lebih lanjut.Pengingat tingkat keparahan dan empat nilai kernel.printk yang diberikan oleh Brian di atas:
Tentang CentOS saya: 7 4 1 7
Ini terlalu berisik, saya hanya ingin kritis dan ke atas (tidak ada kesalahan). Pesan yang tidak berlabel harus dianggap sebagai peringatan, jadi DEF baik:
Set ke: 3 4 1 3
sumber
man klogctl
juga menjelaskan levelnya.Saya menemukan ini bermanfaat juga. Pada distro berbasis RHEL Anda dapat
cat /proc/sys/kernel/printk
melihat apa pengaturan Anda saat ini.Empat nilai ditemukan dalam file printk. Masing-masing nilai ini menetapkan aturan berbeda untuk menangani pesan kesalahan. Nilai pertama, yang disebut konsol loglevel, menentukan prioritas terendah dari pesan yang dicetak ke konsol. (Perhatikan bahwa, semakin rendah prioritas, semakin tinggi nomor loglevel.) Nilai kedua menetapkan loglevel default untuk pesan tanpa loglevel eksplisit yang menyertainya. Nilai ketiga menetapkan konfigurasi loglevel serendah mungkin untuk konsol loglevel. Nilai terakhir menetapkan nilai default untuk konsol Google.
Penggunaan parameter LOGLEVEL di / etc / sysconfig / init untuk mengatur konsol loglevel tidak lagi didukung. Untuk mengatur konsol loglevel di Red Hat Enterprise Linux 6, berikan loglevel = 'sebagai parameter waktu boot. Misalnya, loglevel = 6 akan mencetak semua pesan kurang dari 6 (tidak sama dengan hanya kurang dari).
Kredit untuk:
sumber
Inilah cara "resmi" untuk melakukannya, menurut RedHat :
sumber
Anda juga dapat menekan sementara semua kernel logging ke konsol dengan menggunakan:
Lihat juga: https://askubuntu.com/questions/97256/how-do-i-disable-messages-or-logging-from-printing-on-the-console-virtual-termin
sumber
Apa yang Anda lihat adalah pesan log kernel yang dicetak ke konsol. Pesan log apa yang mencapai konsol tergantung pada level log konsol yang saat ini ditetapkan.
Ketika cmdline kernel menyertakan
quiet
parameter kernel, level log konsol yang dihasilkan adalah4
(yaitu kesalahan dan lebih buruk). Tanpa itu diatur ke7
(yaitu info dan lebih buruk).Anda dapat melihat parameter kernel aktif dengan
cat /proc/cmdline
dan level log konsol Anda saat inisysctl kernel.printk
. Itu dapat secara dinamis diubah dengandmesg -n X
(atau bahkan dengansysctl -w
).Untuk membuat perubahan permanen, Anda dapat menambahkan parameter kernel ke cmdline kernel (mis
quiet
dan / atauloglevel=X
) atau menambahkan.conf
file sysctl di bawah/etc/sysctl.d
.Parameter kernel dapat ditambahkan seperti ini:
sumber
Karena ini adalah situs yang berhubungan dengan stack overflow, saya akan mulai dengan mengatakan Anda tidak harus mematikan output, Anda harus mengatasi kesalahan.
Jika Anda berada di konsol dan bahkan tidak dapat melihat apa yang Anda lakukan karena pesannya coba ketikkan ini.
sudo dmesg -D
Itu harus membuatnya cukup tenang untuk melihat solusi lain.
sumber
Jika Anda benar-benar mengalami kemacetan, Anda bisa menonaktifkan layanan syslog untuk sementara jika ada banjir sehingga Anda tidak dapat melihat atau mengetik sesuatu dengan benar.
sumber