Wi-Fiチップを搭載したBeaglbone Blackベースのカスタムボードがあります。
次の項目があります。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
。 checkでエラーが指摘されました。何とかルールを正そうと努力しています。
編集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はカーネルモジュール名による正確なフィルタリングをサポートしていませんが、他の属性を試すことができます(MSGそのうちの1つ)ルールを使用すると、フィルタリングルールをより正確に指定できます」によって。 。スタート「、」同じ「または」正規表現属性とルールの完全なリストは次のとおりです。ここ(下を見下ろす)利用可能な属性したがって、
次のように試してください。
:programname, startswith, "mlan" :omfile:/var/log/mlan.log
または:
:syslogtag, regex, "^mlan[0-9]" :omfile:/var/log/mlan.log
どのプロパティにカーネルモードが含まれているかわかりません。とにかくいつでもフィルタリングできます。MSGそして正規表現。
:msg, regex, "^write-regex-matching-your-module-log-output" :omfile:/var/log/mlan.log