Вопрос или проблема
Я пытаюсь избавиться от любых сообщений “kernel: nfs: Устаревший параметр ‘intr'” из /var/log/messages
Версия Rsyslog: 8.1911.0-6.el8
В моем файле /etc/rsyslog.conf у меня есть следующее:
module(load="imuxsock" # обеспечивает поддержку локального системного логирования (например, через команду logger)
SysSock.Use="off") # Отключить прием сообщений через локальный лог-сокет;
# локальные сообщения теперь извлекаются через imjournal.
module(load="imjournal" # предоставляет доступ к журналу systemd
StateFile="imjournal.state") # Файл для хранения позиции в журнале
global(workDirectory="/var/lib/rsyslog")
module(load="builtin:omfile" Template="RSYSLOG_TraditionalFileFormat")
include(file="/etc/rsyslog.d/*.conf" mode="optional")
:msg, contains, "nfs: Устаревший параметр" stop
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg :omusrmsg:*
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
Строка, которая должна отбрасывать сообщения:
:msg, contains, "nfs: Устаревший параметр" stop
Я все еще вижу, что сообщения записываются в лог. Есть идеи?
P.S., у меня есть дополнительные конфигурационные файлы в /etc/rsyslog.d/, если это имеет значение.
Отбрасывание определенных сообщений с помощью фильтров на основе свойств.
Фильтры на основе свойств уникальны для rsyslog. Они позволяют фильтровать по любому свойству, такому как HOSTNAME, syslogtag и msg.
Для отбрасывания сообщений используйте тильду “~”.
*.info;mail.none;authpriv.none;cron.none /var/log/messages
:msg, contains, "nfs: Устаревший параметр" ~
*.info;mail.none;authpriv.none;cron.none /var/log/kern.log
Указанные сообщения записываются в messages. Затем все логи, содержащие строку “nfs: устаревший”, отбрасываются. Это означает, что строки конфигурационного файла ниже “строки отбрасывания” не будут применяться к этому сообщению. Затем все оставшиеся строки также будут записаны в файл kern.
В вашем случае возможно, что сообщения все еще записываются (из-за дополнительных .conf файлов в /etc/rsyslog.d/). Поэтому, если вы хотите быть на 100% уверены, что сообщения, содержащие “nfs: Устаревший параметр”, не будут записываться, вам нужно проверить и (возможно) отредактировать их тоже.
П.С. вам, вероятно, стоит поискать все правила, содержащие *.info
Ответ или решение
Устранение сообщений rsyslog: Как игнорировать "kernel: nfs: Deprecated parameter"
Введение
Если вы хотите исключить определенные сообщения из системного логирования с использованием rsyslog, это можно сделать эффективно с помощью правильно настроенных фильтров. В данном руководстве мы рассмотрим, как избавиться от сообщений "kernel: nfs: Deprecated parameter", которые продолжают появляться в файле /var/log/messages
, несмотря на ваши текущие конфигурации.
Проблема
Вы уже настроили файл /etc/rsyslog.conf
с использованием следующей строки для игнорирования сообщений:
:msg, contains, "nfs: Deprecated parameter" stop
Однако вы все еще видите эти сообщения в журнале. Это может быть вызвано тем, что сообщение обрабатывается другим правилом в конфигурациях, находящихся в директории /etc/rsyslog.d/
.
Решение
1. Использование фильтров
Для правильного исключения сообщений вам необходимо использовать знак тильда ~
вместо stop
. Вот как это должно выглядеть:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
:msg, contains, "nfs: Deprecated parameter" ~
Данная строка указывает rsyslog, что все сообщения, содержащие "nfs: Deprecated parameter", будут игнорироваться и не будут записываться ни в один журнал, находящийся ниже этой строки в конфигурации.
2. Проверка конфигураций в /etc/rsyslog.d/
Как упомянуто ранее, необходимо также проверить, есть ли в конфигурационных файлах в директории /etc/rsyslog.d/
правила, которые могут записывать аналогичные сообщения. В случае их наличия, добавьте аналогичные строки для игнорирования сообщений.
Для поиска всех файлов, которые могут содержать записи .info
, используйте:
grep -rnw '/etc/rsyslog.d/' -e '*.info'
3. Перезагрузка rsyslog
После внесения изменений в конфигурацию, не забудьте перезагрузить сервис rsyslog, чтобы изменения вступили в силу:
systemctl restart rsyslog
Или, если вы используете более старую систему:
service rsyslog restart
Заключение
С таким подходом вы сможете успешно исключить сообщения "kernel: nfs: Deprecated parameter" из вашего системного журнала. Главное — убедиться, что все правила, которые могут перезаписывать ваши настройки, учитываются. Учитывая, что у вас есть дополнительные конфигурации в /etc/rsyslog.d/
, настоятельно рекомендуется внимательно их проверить и, при необходимости, адаптировать.
Для дальнейшего устранения проблем, всегда проверяйте журнал ошибок rsyslog с помощью команды:
journalctl -xe
Это поможет вам получить больше информации о возможных сбоях в конфигурации. Подходя к настройке логирования с четким пониманием структуры конфигурации и фильтров, вы сможете эффективнее управлять системными сообщениями.