Provided by: manpages-ja_0.5.0.0.20161015+dfsg-1_all
名前
syslog.conf - syslogd(8) の設定ファイル
説明
syslog.conf は UNIX ライクなシステムでそのシステムメッセージを記録する syslogd(8) のための 設定ファイルである。このファイルは記録のルールを規定する。固有の 機能については sysklogd(8) の man ページを参照すること。 ルールは selector フィールドと action フィールドの二つのフィールドで構成する。これらの二つ のフィールドは 一つ以上の空白文字か TAB 文字で区切られる。selector フィールドは指定さ れた action を適用する facility と priority のパターンを規定する。 シャープ記号(``#'')で始まる行と空行は無視する。 このバージョンの syslogd は拡張された文法を認識することができる。 行の末尾にバックスラッ シュ(``\'')を置くことによって、 ひとつのルールを複数行に分けることができる。
SELECTORS
selector フィールドはさらにピリオド(``.'')で区切られる facility と priority の二つの部分で 構成する。 どちらの部分も文字の大文字小文字は区別しない。また、数字を用いることも 可能であ るが、これは使用しない方がよい。使用した時には警告がなされる。 facility と priority につい ては syslog(3) に記述されている。以下に記述する各種の名前は /usr/include/syslog.h における LOG_-values の同じ名前のものに対応する。 facility は次のキーワードのいずれかである: auth、 authpriv、 cron、 daemon、 kern、 lpr、 mail、 mark、 news、 security (auth と同じ)、 syslog、 user、 uucp、 local0からlocal7。 こ のうち security は今後は利用するべきでなく、また、 mark は内部利用のためのものなので、アプ リケーションレベルで用いるべきではない。 ただし利用できないわけではない。 facility はメッ セージを生成するサブシステムを規定する、すなわち(例えば)全てのメ イルプログラムは syslog を用いてログを記録する場合は mail facility (LOG_MAIL) を用いる。 priority は以下のキーワードのいずれかである(昇順): debug, info, notice, warning, warn ( warning と同じ), err, error (err と同じ), crit, alert, emerg, panic (emergと同じ). このう ちキーワード error、warn、panic については、同等のものがあるので今後は利用するべきでない。 priority はメッセージの重要性を定義する。 オリジナルの BSD システムの syslogd の動作は、指示された priority とそれ よりも順位の高い 全てのメッセージが与えられた action に沿って記録される、 というものである。この syslogd(8) もそれと同じ動作であるが、いくつかの拡張機能も有する。 上述の名前に加え、 syslogd(8) は以下の拡張についても理解する: アスタリスク(``*'')は、 それ が用いられている場所 (すなわちピリオドの前か後ろか) に応じて、 全ての facility かまたは全 ての priority を表わす。 キーワード none は、それが与えられた facility についてはどの priority も 指定しないことを意味する (つまり除外される)。 コンマ(``,'')を用いて、同じ priority を示す一文のなかに複数の facility を指定することが可 能である。facility の個数に制限はない。ただしこのよ うな記述が可能なのは facility について のみで、 priority についてのその ような記述は無視するので注意すること。 セミコロン(``;'')を区切りに用いて複数の selector について同一の action を指定することがで きる。 selector フィールドの selector は先行するものを上書きしてしまうことに注意するこ と。この動作を用いて特定の priority を除外することも可能である。 この syslogd(8) はオリジナルの BSD のソースを拡張する構文を持っていて、より直観的な利 用を 可能にしている。イコール記号(``='')を priority に接頭すると、その priority のもののみを記 録するようにすることができる。エクスクラメーショ ンマーク(``!'')を接頭するとその priority とそれよりも高い priority の もののすべてを無視させることができる(イコール記号とエクスクラ メーショ ンマークの両方を同時に指定することは可能である)。この拡張の両方を同時 に用いる場 合、イコール記号の前にエクスクラメーションマークを置くことで その priority のみ無視する。
ACTIONS
ルールの action フィールドには ``logfile'' を指示する。``logfile'' は 実存するファイルでな くてもかまわない。 syslogd(8) は以下の動作を用意している。 通常のファイル メッセージはそのファイルに記録される。ファイル名は ``/'' で始まるフル パスで指定すること。 マイナス記号 ``-'' を接頭すると、記録の際のファイルシステムバッファの フラッシュ動作を抑制 する。これを用いると、書き込み動作の直後にシステム に障害が発生した場合、情報を失なう可能 性があることに注意すること。しか しながらこの機能は特に騒々しくロギングするプログラムを動 作させる際のい くらかの性能改善には役に立つ。 名前付きパイプ この syslogd(8) は名前付きパイプ(FIFO)への出力機能を備えている。 ファイル名の先頭にパイプ 記号 (``|'') を書くと、 メッセージの出力先をその名前の FIFO にできる。 これはデバッグ作業 に役立つ。FIFO は syslogd(8) のスタートに先立ち、 mkfifo(1) コマンドにより生成される必要が あることに注意すること。 ターミナルとコンソール ファイルとして tty を指示した場合は、tty 用の処理がなされる。 /dev/console も同じ。 リモートコンピュータ この syslogd(8) は完全なリモートロギング機能も提供する。すなわちメッセージを syslogd(8) の 動作するリモートのホストに送信することができ、またリモートのホストか らのメッセージを受信 することもできる。リモートのホストはメッセージをそ れ以上他のホストへ転送することはせ ず、その機械にローカルに記録するはずだ。 他のホストへメッセージを送信するにはアットマー ク(``@'')をそのホスト名 に接頭する。 この機能を用いると、他の全てのコンピュータにリモートに記録させることで、 すべての syslog メッセージを一台のホストで制御することができる。これは 管理上の困難を解消する。 ユーザ名のリスト 通常、特に重要なメッセージはそのコンピュータの ``root'' にも宛てられる ものである。login しているときにメッセージを受けとるべきユーザのリスト を指示することができる。コン マ(``,'')で区切って複数のユーザを指定する こともできる。メイルで送ろうと思ってはいけな い。それでは手遅れになって しまうかもしれない。 ログインしている誰でも システムになにか具合が悪いことが発生することを通知するために、緊急のメッ セージはしばしば その時オンラインになっている全てのユーザに通知される。 この wall(1)的機能 を利用するために はアスタリスク(``*'')を用いる。
例
ここに実在する site の実際の設定例の一部を用いたいくつかの設定例を挙げ る。うまくいけ ば、たぶん、これで設定上の疑問はすべて解消できると思うが、 なにかあったら筆者( Joey )宛て に連絡いただきたい。 # 危機的状況を /var/adm/critical に保存する。 # *.=crit;kern.none /var/adm/critical priority が crit の、カーネルメッセージを除くすべてのメッセージをファイル /var/adm/critical に保存する。 # カーネルメッセージは /var/adm/kernel に # 保存し、さらに critical 以上の重要度の # メッセージは他のホストへ配信しコンソー # ルにも表示する。 # kern.* /var/adm/kernel kern.crit @finlandia kern.crit /dev/console kern.info;kern.!err /var/adm/kernel-info 一番目のルールにより、facility が kern のメッセージはファイル /var/adm/kernel に記録され る。 二番目の文により、 priority が crit かそれよりも高い全てのメッセージはリモートのホスト finlandia へ送信さ れる。これは、ホストの障害が生じて保存されたメッセージを読みだすことが できなくなるような回復不能エラーがディスク装置に発生した際に有効である。 リモートのホスト に残されたメッセージで障害の原因調査に取り掛ることもで きる。 三番目のルールはそのコンピュータで作業している誰かがそのメッセージを得 ることができるよう に、実際のコンソールに表示する。 四行目は、syslogd にpriorityが info から warning のカーネルメッセージをファイル /var/adm/kernel-info に保存するよう指示する。 err よりも高い priority を持つものは除外され る。 # tcp wrapper は mail.info でロギングする、 # すべての接続を tty12 に表示する。 # mail.=info /dev/tty12 この例は mail.info (ソースコード上では LOG_MAIL | LOG_INFO) を用いる全てのメッセージを 第 12 コンソール /dev/tty12 に表示する。例えば tcpwrapper tcpd(8) はこの設定を既定値として用 いている。 # メイル関係は一つのファイルへ保存する。 # mail.*;mail.!=info /var/adm/mail このパターンは facility が mail の全てのメッセージから priority が info であるものを除くこ とを示す。これらのメッセージはファイル /var/adm/mail に記録する。 # mail.info と news.info を /var/adm/info ヘ記録する。 # mail,news.=info /var/adm/info この例は mail.info と news.info の両方の全てのメッセージを抜き出し、ファイル /var/adm/info に保存する。 # info と notice は /var/log/messages へ記録する。 # *.=info;*.=notice;\ mail.none /var/log/messages この例は syslogd に facility が mail であるのものを除く他の 全て info と notice の両方の priority の全ての メッセージをファイル /var/log/messages に保存するよう指示する。 # info メッセージは /var/log/messages へ記録する。 # *.=info;\ mail,news.none /var/log/messages この指示により syslogd は priority info の全てのメッセージをファイル /var/log/messages に 記録する。ただし facility が mail と news の両方のメッセージは保存しない。 # 緊急メッセージを wall で表示する。 # *.=emerg * このルールは syslogd に全ての緊急のメッセージをその時ログインしている全てのユーザに伝える よ う指示する。これが wall action である。 # priority が alert のメッセージは管理担当へ # 送る。 *.alert root,joey このルールは priority が alert かそれよりも高い全てのメッセージを操作者、すなわちユーザ名 ``root'' と ``joey'' がログインしていればその端末に表示する。 *.* @finlandia このルールは全てのメッセージを finlandia と呼ばれるリモートのホストに 転送する。これは特に 一群のコンピュータの全ての syslog メッセージを一台 のコンピュータに保存するのに役に立つ。
設定ファイル文法の相違点
syslogd の設定は オリジナルの BSD ソースによるものとは少し異なる文法を使用する。 元々は、指示された priority とそれよりも高い priority の全てのメッセージが ログファイルに 記録されていた。この syslogd には、より柔軟で直観的にわかりやすい設定が可能となるように修 飾子 ``=''、 ``!''、``-''が追加されている。 オリジナルの BSD の syslogd では selector フィールドと action フィールドの区切りの文字とし て空白文字を利用することはできない(TAB 文 字でなければならない)。
ファイル
/etc/syslog.conf syslogd の設定ファイル
バグ
複数の selector を指示するとしばしば直観的でなくなる。例えば、 ``mail.crit,*.err'' は facility が ``mail'' のメッセージのうち ``crit'' より 高い priority 、ではなくて``err'' よ りも高い priority を指示していることに なる。
関連項目
sysklogd(8), klogd(8), logger(1), syslog(2), syslog(3)
著者
syslogd は Greg Wettstein (greg@wind.enjellic.com) が BSD のソースコードから Linux で動作 するように移植し、Matin Schulze (joey@linux.de) がいくつかのバグ フィックスと新しい機能の 追加をした。