SYSLOG.CONF

Section: File Formats (5)
索引 jman

BSD mandoc
 

索引

名称

syslog.conf - syslogd(8) 設定ファイル  

索引

解説

ファイルは syslogd(8) プログラムの設定ファイルです。 このファイルは programhostname の指定によって分けられた行ブロックから構成されています (分離は、その行の後の方で生じます)。 それぞれの行は 2つのフィールドを含みます。 その行が適用されるメッセージのタイプと優先度を指定する selector フィールドと、 syslogd(8) が選んだ基準とマッチしたメッセージを受けとった場合の動作を指定する action フィールドです。 selector フィールドと action フィールドは 1 つ以上のタブ文字または空白で区切られています。

区切りに空白を使用すると、 は他の Unix や Unix 的システムと互換性が無くなってしまうことに 注意してください。 この機能は、設定を容易にし (例えば にカットアンドペーストできるようにし)、 その際発生し得るミスを避けるため追加されました。 しかしながらこの変更は、古いスタイルの (すなわちタブ文字のみ) へのバックワードコンパチビリティを保っています。

selector は、 facility とピリオド (``.'' ) とオプションの比較フラグ ([! [<=>] ] ) そして level で符号化され、間に空白は含みません。 facilitylevel の双方とも、大文字小文字の区別はありません。

facility はメッセージを生成したのがシステムのどの部分なのかを表します。 これは、次にあげるキーワード群の 1 つで表されます : auth, authpriv, console, cron, daemon, ftp, kern, lpr, mail, mark, news, ntp, security, syslog, user, uucp と local0 から local7。 これらのキーワード (mark を除く) は openlog(3) と syslog(3) ライブラリルーチンで指定される ``LOG_ '' で始まる値と一致します。

比較フラグ を使用して、何を記録するのかを正確に指定できます。 デフォルトの比較は ``=>'' (またはあなたが好むのなら ``>='' であり、 指定した facility リストからの level 以上のレベルのメッセージを記録することを意味します。 ``! '' で開始する比較フラグは、その論理的意味を反転させます。 ``!=info'' は、info 以外の全レベルを意味し、 ``!notice'' は ``<notice'' と同じ意味です。

level はメッセージの重要度を表し、以下のキーワードの順に高から低になります: emerg, alert, crit, err, warning, notice, info, debug。 これらのキーワードは syslog(3) ライブラリルーチンで指定される ``LOG_ '' で始まる値と一致します。

それぞれの行ブロックは programhostname の指定によって前のブロックと区別されます。 ブロックは、最新の program 指定および hostname 指定に対応するメッセージのみをログします。 よって、 `ppp' を program として選択するブロックに、 hostname `dialhost' からのメッセージを選択するブロックが直後に続くと、 第 2 のブロックは、dialhost 上の ppp(8) プログラムからのメッセージのみをログします。

program 指定は、行の先頭が `#!prog' または `!prog' (前者は以前の syslogd との互換性のためのものです。 例えば ファイルを共有したい時などに便利です) で始まり、引き続くブロックは syslog(3) を呼び出す特定のプログラムと 関連付けられています。 program 指定 `foo' は、 `foo:' というプレフィックスを持つカーネルログメッセージにもマッチします。 `#!+prog' または `!+prog' の指定は、前述のものと正に同じ動作をします。 `#!-prog' または `!-prog' の指定は、指定したプログラム以外からのメッセージにマッチします。 複数のプログラムをコンマで区切って列挙可能です。 `!prog1,prog2' はどちらのプログラムからのメッセージにもマッチし、 `!-prog1,prog2' は `prog1' と `prog2' 以外からのすべてのメッセージにマッチします。

hostname 指定で `#+hostname' または `+hostname' という書式のものは、これに引き続くブロックを、 指定したホスト名からのメッセージに適用させます。 また、 hostname 指定で `#-hostname' または `-hostname' という指定のものは、これに引き続くブロックを、 指定したホスト名以外からのメッセージに適用させます。 ホスト名が `@' として与えられると、ローカルホスト名が使用されます。 プログラムの指定と同様、 コンマで区切った複数の値をホスト名の指定として使用可能です。

program 指定または hostname 指定は、プログラム名またはホスト名に `*' を指定することによりリセット可能です。

facilitylevel の両方のキーワードとその意味のより詳細な説明を知りたい場合は syslog(3) を参照してください。 選択は facility で行なう方が program で行なうよりも好まれています。 なぜなら、後者はネットワーク環境の中では 簡単に変化してしまう場合があるからです。 しかし、適切な facility が本当に存在しない場合もあります。

もし facility 指定に一致したメッセージを受けとり、なおかつそれが 指定した level (もしくはそれ以上の level) だった場合、またはメッセージ中の日付の後ろの最初の単語が program と一致した場合、 action フィールドで指定された動作が選択されます。

複数の selector を、セミコロン (``;'' ) によって区切ることにより、1 つの action に対して指定することができます。 しかしそれぞれの selector はその前にある指定を上書き修正できてしまいますので注意してください。

複数の facility は、コンマ (``,'' ) によって区切ることにより 1 つの level を指定することができます。

アスタリスク (``*'' ) は、全ての facility 、全ての levels 、または全ての programs を指定するのに使用できます。

特別な facility である ``mark'' は、20分毎に ``info'' の優先度を持つメッセージを受け取ります ( syslogd(8) を参照)。 これはアスタリスクを含む facility フィールドには適用されません。

特別な level である ``none'' は、特定の facility を無効にします。

それぞれの行の action フィールドは、 selector フィールドに指定されたメッセージを受け取った際の動作を指定します。 動作指定には次の 5つの形式があります:

空行、および、最初の空白でない文字がハッシュ (``#'' ) 文字である行は無視されます。  

索引

実装に関する注

``kern'' ファシリティは、 通常、ローカルのカーネルから生成されるメッセージ用に予約されています。 ファシリティ ``kern'' でログされた他のメッセージは、通常、ファシリティ ``user'' に変換されます。 この変換は無効化可能です。 詳細は syslogd(8) を参照してください。  

索引

関連ファイル

/etc/syslog.conf
syslogd(8) 設定ファイル

 

索引

使用例

設定ファイルは次のようになります:
# err レベル以上の全てのメッセージ、全てのレベルの kernel メッセージ、
# notice レベルの auth メッセージをコンソールに出力します。
# プライベートな認証メッセージは記録をとりません!
*.err;kern.*;auth.notice;authpriv.none  /dev/console

# info 以上のレベルを持つ (mail を除く) 全てのメッセージを記録します。
# プライベートな認証メッセージは記録をとりません!
*.info;mail.none;authpriv.none          /var/log/messages

# debug レベルのみの daemon メッセージを記録します
daemon.=debug                                           /var/log/daemon.debug

# authpriv ファイルはアクセス制限を持ちます。
authpriv.*                                              /var/log/secure

# 全てのレベルの mail メッセージを一箇所にまとめて記録します。
mail.*                                                  /var/log/maillog

# emerg (非常事態) レベルの全てのメッセージは全員が受け取ります。
*.emerg                                                 *
*.emerg                                                 @arpa.berkeley.edu

# alert レベル以上のメッセージを root と eric の画面に表示されます。
*.alert                                                 root,eric

# err レベル以上の mail と news の エラーを特別なファイルに保存します。
uucp,news.crit                                          /var/log/spoolerr

# 全てのレベルの認証メッセージをフィルタにパイプします。
auth.*                                  |exec /usr/local/sbin/authfilter

# ftpd のトランザクションを mail と news にあわせて保存します。
!ftpd
*.*                                                     /var/log/spoolerr

# セキュリティメッセージを別のファイルに保存します。
security.*                                              /var/log/security

# /dev/console への書き込みを別のファイルに保存します。
console.*                                               /var/log/console.log

# ipfw メッセージをすべてのメッセージの後で同期書き込みなしで保存します。
!ipfw
*.*                                                     -/var/log/ipfw
 

索引

関連項目

syslog(3), syslogd(8)  

索引

バグ

複数の selector 指定は、時々思ったように効果を発揮しない事があります。 例えば、 ``mail.crit,*.err'' と設定すると、 ``mail'' ファシリティのメッセージのレベルは ``err'' かそれ以上となり、 ``crit'' かそれ以上のレベルにはなりません。

ネットワーク環境においては、全てのオペレーティングシステムが 同じ facility 名のセットを実装しているわけではない点に注意してください。 authpriv, cron, ftp, ntp といったこの実装において知られた facility が、 目的のシステムには存在しないかもしれません。 更に悪い事に、 DEC UNIX は AdvFS ファイルシステムのログイベントに facility 番号 10 (この実装では authpriv に該当します) を使っています。


 

索引

Index

名称
解説
実装に関する注
関連ファイル
使用例
関連項目
バグ

jman



Time: 07:07:30 GMT, January 12, 2009