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 フィールドはさらにピリオド(‘‘.’’)で区切られる facility と pri- ority の二つの部分で構成する。どちらの部分も文字の大文字小文字は区別し ない。また、数字を用いることも可能であるが、これは使用しない方がよい 。 使 用 し た 時には警告がなされる。 facility と priority については sys- log(3) に記述されている。以下に記述する各種の名前 は /usr/include/sys- log.h における LOG_-values の同じ名前のものに対応する。 facility は 次 のキーワードのいずれかである: auth、 authpriv、 cron、 daemon、 kern、 lpr、 mail、 mark、 news、 security (auth と 同 じ) 、 syslog、 user、 uucp、 local0からlocal7。このうち security は今後は利用 するべきでなく、また、 mark は内部利用のためのものなので、アプリケー シ ョンレベルで用いるべきではない。ただし利用できないわけではない。 facil- ity はメッセージを生成するサブシステムを規定する、すなわち(例えば)全 て の メイルプログラムは 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/con- sole も同じ。 リモートコンピュータ この 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 に表示する。例えば tcpwrap- per 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) がい くつかのバグフィックスと新しい機能の追加をした。 Version 1.3 1 January 1998 SYSLOG.CONF(5)
Copyright(C) linux-cmd.com All Rights Reserved. Author Takayuki Yukawa