У нас есть специальная плата на базе Beaglbone Black с чипом Wi-Fi.
У нас есть следующая запись вrsyslog.conf
# Redirect all kernel messages including dmesg to /var/log/dmesglog
kern.* :omfile:$dmesg_log_rotation
dmesglog переполнен журналами Wi-Fi, которые начинаются с mlan0
Поэтому я изменил правило следующим образом:
# Redirect all kernel messages including dmesg to /var/log/dmesglog
kern.*, !contains, "mlan0" :omfile:$dmesg_log_rotation
Однако эти логи по-прежнему продолжают заполнять dmesglog.
Может кто-нибудь подсказать, что не так с этим журналом?
Есть ли еще какие-нибудь предложения по правилам? Есть ли какие-нибудь указания?
РЕДАКТИРОВАТЬ:
После некоторых раскопок я обнаружил, что rsyslogd -N1
можно использовать для проверки rsyslog.conf
. И эта проверка указала на ошибку. Я пытаюсь как-то исправить правило.
ИЗМЕНИТЬ2
Я изменил правило следующим образом, однако теперь я ничего не вижу в dmesglog
# Redirect all kernel messages including dmesg to /var/log/dmesglog
if ( 'kern.*' contains "mlan0" ) then{ action( type="omfile" file="*" ) } else { action( type="omfile" file="$dmesg_log_rotation" )}
решение1
Попробуй это:
# Redirect all kernel messages including dmesg to /var/log/dmesglog
:msg, contains, "mlan0" ~
kern.* :omfile:$dmesg_log_rotation
В соответствии сдокументация rsyslogdСначала вам следует удалить выбранные сообщения.
Если вы хотите поместить отфильтрованные сообщения в отдельный файл, вы можете написать что-то вроде:
# Redirect all "mlan0" to /var/log/mlan.log
:msg, contains, "mlan0" :omfile:/var/log/mlan.log
:msg, contains, "mlan0" ~
# Redirect all kernel messages including dmesg to /var/log/dmesglog
kern.* :omfile:$dmesg_log_rotation
К сожалению, rsyslog не поддерживает фильтрацию именно по имени модуля ядра, но вы можете попробовать другие свойства (сообщениетолько один из них), и вы можете указать правило фильтрации более точно, используя правила "начинается с", "равно" или "регулярное выражение". Полный список свойств и правилздесь(Смотри ниже "Доступные свойства".
Так что вам стоит попробовать, например:
:programname, startswith, "mlan" :omfile:/var/log/mlan.log
Или:
:syslogtag, regex, "^mlan[0-9]" :omfile:/var/log/mlan.log
Я не знаю, будет ли какое-либо свойство содержать режим ядра. В любом случае вы всегда можете отфильтровать посообщениесрегулярное выражение.
:msg, regex, "^write-regex-matching-your-module-log-output" :omfile:/var/log/mlan.log