yuu_nkjm blog
2010-04-08(Thu) 編集
[Linux][syslog] syslog-ngでプログラム名を使って記録するログのフィルタリング
「bindのログをmessagesに吐かせたくないなー」と思ったので,syslog-ngでプログラム毎にログファイルを分ける方法を調べた.programって関数が使えるんですね.matchを使っても出来そうですが.
bind(named)のログをnamedに.
filter f_named { program("named"); }; destination d_named { file("/var/log/named");}; log { source(src); filter(f_named); destination(d_named); };
messagesにnamedのログを記録させない.
filter f_messages { not facility(news, mail, cron) and not filter(f_iptables) and not filter(f_router) and not filter(f_named); };
以下メモ.
名前 | 説明 |
facility | 指定したfacilityに合致するログメッセージが対象となる.facility(faciliy[,facility])の形式で指定する. |
level | 指定したpriorityに合致するログメッセージが対象となる.priority()level(pri[,pri1..pri2[,pri3]])の形式で指定する. |
program | 指定したプログラム名(正規表現による指定可)に合致するログメッセージが対象となる.program(プログラム名)の形式で指定する. |
host | 指定したホスト名(正規表現可)に合致するログメッセージが対象となる.host(ホスト名)の形式で指定する. |
match | 指定した正規表現そのものに合致するログメッセージが対象となる. |
filter | 別のfilterルールを呼び出す. |