EN JA
SYSLOG.CONF(5)
SYSLOG.CONF(5) Linux System Administration SYSLOG.CONF(5)

名前

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

説明

syslog.conf は UNIX ライクなシステムでそのシステムメッセージを記録する syslogd(8) のための設定ファイルである。このファイルは記録のルールを規定する。固有の機能については sysklogd(8) の man ページを参照すること。
 
ルールは selector フィールドと action フィールドの二つのフィールドで構成する。これらの二つのフィールドは一つ以上の空白文字か TAB 文字で区切られる。selector フィールドは指定された action を適用する facility と priority のパターンを規定する。
 
シャープ記号(``#'')で始まる行と空行は無視する。
 
このバージョンの syslogd は拡張された文法を認識することができる。行の末尾にバックスラッシュ(``\'')を置くことによって、ひとつのルールを複数行に分けることができる。
 

SELECTORS

selector フィールドはさらにピリオド(``.'')で区切られる facilitypriority の二つの部分で構成する。どちらの部分も文字の大文字小文字は区別しない。また、数字を用いることも可能であるが、これは使用しない方がよい。使用した時には警告がなされる。 facility と priority については syslog(3) に記述されている。以下に記述する各種の名前は /usr/include/syslog.h における LOG_-values の同じ名前のものに対応する。
 
facility は次のキーワードのいずれかである: authauthprivcrondaemonkernlprmailmarknewssecurity ( auth と同じ)、 sysloguseruucplocal0から local7。このうち security は今後は利用するべきでなく、また、 mark は内部利用のためのものなので、アプリケーションレベルで用いるべきではない。ただし利用できないわけではない。 facility はメッセージを生成するサブシステムを規定する、すなわち(例えば)全てのメイルプログラムは syslog を用いてログを記録する場合は mail facility

( LOG_MAIL) を用いる。

 

priority は以下のキーワードのいずれかである(昇順): debug, info, notice, warning, warn ( warning と同じ), err, error ( err と同じ), crit, alert, emerg, panic ( emergと同じ) . このうちキーワード errorwarnpanic については、同等のものがあるので今後は利用するべきでない。 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.infonews.info の両方の全てのメッセージを抜き出し、ファイル /var/adm/info に保存する。

 

# info と notice は /var/log/messages へ記録する。
#
*.=info;*.=notice;\
mail.none /var/log/messages

この例は syslogd
facility が mail であるのものを除く他の全て infonotice の両方の priority の全てのメッセージをファイル /var/log/messages に保存するよう指示する。

 

# info メッセージは /var/log/messages へ記録する。
#
*.=info;\
mail,news.none /var/log/messages

この指示により syslogd は priority info の全てのメッセージをファイル /var/log/messages に記録する。ただし facility が mailnews の両方のメッセージは保存しない。

 

# 緊急メッセージを 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) がいくつかのバグフィックスと新しい機能の追加をした。
 
 
1 January 1998 Version 1.3