Как отключить вход ядра в журнал systemd?

1239
Luke F

Я использую устройство, которое чрезмерно спамит сообщения ядра (10-100 сообщений в секунду, драйверы Mediatek ...), где невозможно удалить логи из самого ядра (распространяются на сотни файлов).

Я признал, что dmesg практически бесполезен на этом устройстве, но, к сожалению, на системный журнал также влияют.

Можно ли отфильтровать / отключить запись сообщений ядра в журнал systemd?

3
Вместо того, чтобы отключать запись сообщений ядра, я бы исследовал причину, по которой драйверы mediatek выдают такой высокий уровень вывода, и что с этим можно сделать. Сообщения ядра довольно полезны. MariusMatutiae 6 лет назад 0
Я полностью согласен, но вывод этих драйверов Mediatek просто смешной. Он разбивает несколько строк (всех доступных приоритетов) на такие вещи, как включение / выключение ядра процессора или изменение напряжения батареи на ничтожную величину. Нет никакого способа остановить спам, который я вижу, каждый драйвер использует свою жестко запрограммированную конфигурацию регистрации, лучшее, что я могу сделать, это закомментировать худших преступников Luke F 6 лет назад 0

2 ответа на вопрос

4
baelx

Хорошая практика Linux / Sysadmin рекомендует вам использовать что-то наподобие решения fzbd, в котором вы отключаете конкретный журнал, который вам не нужен, вместо того, чтобы отключать оптовые сообщения ядра.

Тем не менее, стоит упомянуть, что в systemd 235 есть опция для отключения сообщений ядра внутри journald.confфайла. В основных документах journal.conf упоминается эта опция, которая позволяет отключить чтение journald /dev/kmsg.

Версия 235 может пока не быть найдена во многих дистрибутивах, поэтому вы можете проверить свою версию systemd с помощью:

systemctl --version 

Если у вас версия 235 или выше, вы можете сначала создать резервную копию исходного файла /etc/systemd/journald.conf, а затем раскомментировать соответствующую строку и изменить ее yesна no:

ReadKMsg=no 

Сохраните, выйдите и перезапустите службу journald:

sudo systemctl restart systemd-journald.service 
Большое спасибо, установленный systemd из stretch-backports и ReadKMsg = no сделали свое дело! Luke F 6 лет назад 1
Вместо редактирования /etc/systemd/journald.conf лучше переопределить его с помощью /etc/systemd/journald.conf.d/kfilter.conf (например). Oleg Kr 6 лет назад 0
@ Олег Да, делать вещи более модульными, как правило, хорошая практика, когда это возможно, так что да, это тоже отличный вариант. baelx 6 лет назад 0
3
fzbd

Посмотрите, есть ли в модуле ядра вашего устройства какой-либо параметр logging / debug, который вы можете отключить:

modprobe $module_name ls /sys/module/$module_name/parameters 

Если нет, то для systemd с версией <235 лучшее, что вы можете сделать, - это отфильтровать сообщения по уровню журнала, например:

journalctl --priority=3 

Вы можете проверить значения журнала с man syslog.

Обратите внимание, что понижение уровней ведения журнала ядра с использованием kernel.printkвлияет только на ведение журнала консоли, поэтому пользовательские приложения будут по-прежнему отображать те же сообщения независимо от значений в этом параметре.

Насколько я знаю, kernel.printk влияет только на ведение журнала ядра в TTY? К сожалению, нет никаких открытых параметров для драйверов, ответственных за спам Luke F 6 лет назад 0
Вы правы, вызовы printk () по-прежнему отображаются в journalctl. Я пересмотрел свой ответ. fzbd 6 лет назад 0

Похожие вопросы