syslog の情報(ログ管理)

UNIX では、システム関連のプロセスが出力するメッセージを監視するプロセス(syslogd)が動いています。このプロセスを利用する方法を記述します。

* syslogの定義ファイル

/etc/syslog.conf

* syslogの定義ファイルの記述例

フォーマット:
ファシリティ.監視レベル[;...]   アクションフィールド

ファイルの形式は、おおよそ上記のフォーマットで記述しますが、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 というプログラムに送信される。

* syslogのファシリティ

すべての UNIX システムで以下の監視対象が用いられるわけではありません。

ファシリティ 内容
kern カーネルのメッセージ
user ユーザープロセスのメッセージ
mail メールシステムのメッセージ(sendmail)
ftp FTPシステムのメッセージ
news ニュースサブシステムのメッセージ
lpr ラインプリンタシステムのメッセージ
auth 認証システムのメッセージ(login, su, getty 等)
daemon デーモンのメッセージ(ftpd, routed, popd, named等)
cron cron/at システムのメッセージ
uucp UUCPサブシステムのメッセージ
local0...local7 サイト固有の使用のために予約
mark 20秒ごとにメッセージを送りだすタイムスタンプ機能
* mark を除く全てのファシリティ

* syslogの監視レベル

上位に記述されているものが高い重要度(優先度が高い)を表します。

監視レベル 内容
emerg システムクラッシュ寸前などの緊急事態。通常すべてのユーザーへ通知。
alert システム・データベースの破壊のように、緊急に修正しなければならない状態。
crit ハードウエアのデバイス・エラーのような致命的な状態。
err 通常のエラー
warning 警告メッセージ
notice エラーではないが、特別な方法で対処する必要のある状態。
info 情報メッセージ
debug プログラムをデバッグする時に使用されるメッセージ。
none メッセージを送信しない。
* none を除く全てのレベル(記述できない OS もあります)

* 設定内容のチェック

/etc/syslog.conf の設定が完了したなら、正しく設定されているかどうかを確認する必要があります。 それには、logger コマンドを利用します。loggerコマンドは、任意のファシリティと監視レベルを指定してログの出力を確認することができます。

logger[オプション]出力するメッセージ
オプション 内容
-f file メッセージを指定したファイルに出力する。指定しない場合、/etc/syslog.conf で設定した内容を適用。
-p priority チェックしたいファシリティーと監視レベルをピリオド(.)で指定。