Как игнорировать сообщения Smartd в rsyslog
Есть ли способ, что Rsyslog сервер регистрирует все сообщения, кроме сообщений SmartD. Я только хочу, чтобы "В настоящее время не читаемые (ожидающие) сектора" не регистрировались.
1 ответ
Да, есть. Правило, которое регистрирует эти сообщения, должно быть внутри фильтра, например: (Предположим, что сообщения smartd регистрируются в /var/log/smartd.log).
if ($programname == "smartd") then {
if not ($msg contains "Currently unreadable (pending) sectors") then {
*.* /var/log/smartd.log
}
stop
}
Приведенный выше код будет соответствовать всем сообщениям от службы SmartD. Если в сообщении нет этой строки, оно будет записывать все сообщения в /var/log/smartd.log, но если оно содержит эту строку, оно не будет регистрироваться. Все журналы после этой точки будут удалены правилом остановки.
Вы можете поместить этот фрагмент кода в файл в /etc/rsyslog.d/, заканчивающийся на.conf, например, 01-smartd.conf. Поскольку rsyslog.conf загружает все файлы в этом каталоге, который заканчивается на.conf, файлы, начинающиеся с 00 между 49, будут считываться первыми, чем файл по умолчанию, 50-default.conf.
Обратите внимание, что с помощью правила остановки в коде, если оно будет прочитано первым, сообщения не достигнут правил в 50-default.conf, поэтому повторяющихся сообщений не будет.