UNIX では、システム関連のプロセスが出力するメッセージを監視するプロセス(syslogd)が動いています。このプロセスを利用する方法を記述します。
/etc/syslog.conf
フォーマット:
ファシリティ.監視レベル[;...] アクションフィールド
ファイルの形式は、おおよそ上記のフォーマットで記述しますが、UNIX の種類によってことなるので必ずシステムのマニュアルは参照して下さい。セレクタ(ファシリティ.監視レベル)とアクションフィールドの間は、タブでなければ動作しません。メールのログは debugレベルで /var/log/maillog に出力し、その他のファシリティのログは、warnレベルで/var/log/syslog に、infoレベルで /var/adm/messages に出力するという設定です。
# ファシリティ.監視レベル アクションフィールド
*.warn;mail.none /var/log/syslog
*.info;mail.none /var/adm/messages
mail.debug /usr/log/maillog
アクションフィールドは、ファイルだけでなく以下のような指定が行えます。
アクションフィールド 説明/dev/condole コンソールに出力される。 /var/adm/messages ファイルに記録される。 root,admin ユーザー root および admin に送信される。
しかし、これらのユーザーがログインしていない場合、メッセージは破棄される。@loghost.foobar.co.jp コンピュータ loghost.foobar.co.jp の syslog デーモンに送信される。 * ログインしている全てのユーザーの端末に表示される。 |logfilter logfilter というプログラムに送信される。
すべての UNIX システムで以下の監視対象が用いられるわけではありません。
ファシリティ 内容 kern カーネルのメッセージ user ユーザープロセスのメッセージ メールシステムのメッセージ(sendmail) ftp FTPシステムのメッセージ news ニュースサブシステムのメッセージ lpr ラインプリンタシステムのメッセージ auth 認証システムのメッセージ(login, su, getty 等) daemon デーモンのメッセージ(ftpd, routed, popd, named等) cron cron/at システムのメッセージ uucp UUCPサブシステムのメッセージ local0...local7 サイト固有の使用のために予約 mark 20秒ごとにメッセージを送りだすタイムスタンプ機能 * mark を除く全てのファシリティ
上位に記述されているものが高い重要度(優先度が高い)を表します。
監視レベル 内容 emerg システムクラッシュ寸前などの緊急事態。通常すべてのユーザーへ通知。 alert システム・データベースの破壊のように、緊急に修正しなければならない状態。 crit ハードウエアのデバイス・エラーのような致命的な状態。 err 通常のエラー warning 警告メッセージ notice エラーではないが、特別な方法で対処する必要のある状態。 info 情報メッセージ debug プログラムをデバッグする時に使用されるメッセージ。 none メッセージを送信しない。 * none を除く全てのレベル(記述できない OS もあります)
/etc/syslog.conf の設定が完了したなら、正しく設定されているかどうかを確認する必要があります。 それには、logger コマンドを利用します。loggerコマンドは、任意のファシリティと監視レベルを指定してログの出力を確認することができます。
logger[オプション]出力するメッセージ
オプション 内容 -f file メッセージを指定したファイルに出力する。指定しない場合、/etc/syslog.conf で設定した内容を適用。 -p priority チェックしたいファシリティーと監視レベルをピリオド(.)で指定。