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 | ユーザープロセスのメッセージ |
メールシステムのメッセージ(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 | チェックしたいファシリティーと監視レベルをピリオド(.)で指定。 |