◆ syslog とは
コンピュータの動作状況の記録をログと言いますが、ログを取得することでそのコンピュータで起きて
いる情報を把握することができます。Linuxでは、syslogと呼ばれるプログラムを使用することによって
Linuxで発生する各種イベントをログファイルに出力したりコンソールに出力することが可能となります。
syslogのプログラムは、syslogdというデーモンにより実行されます。syslogは他のプログラムからの
メッセージを受信して、出力元や優先度に従って分類を行って、syslogで定義した出力先に送信します。
◆ syslog の設定
syslogは、/etc/syslog.confファイルで設定をします。CentOS 6以降のディストリビューションでは、
rsyslogが採用されている場合があります。rsyslogでは各種機能をプラグインモジュールで拡張できる
ようになっています。rsyslogは、/etc/rsyslog.confファイルで設定を行いますが、ログ出力の方式は
以下で解説する/etc/syslog.confファイルの書式とほぼ同じとなります。その書式を以下で解説します。
◆ 構文 : ファシリティ. プライオリティ アクション
◇ ファシリティ
ファシリティは正確に言えば「ログの種別」のことであり、分かりやすくいえばメッセージの「出力元」
のことです。ファシリティには以下の種類があり、ファシリティを使用することでメッセージの出力元に
応じてログの出力先を制御できます。なお 「 * 」 を使用することで全てのファシリティを選択できます。
◆ syslogのファシリティ
ファシリティ |
説明 |
auth、authpriv |
認証サービス ( login、su など) |
cron |
cron |
daemon |
各種デーモン |
kern |
カーネル |
lpr |
印刷システム |
mail |
メールシステム |
news |
ニュースサービス |
syslog |
syslog機能 |
user |
ユーザープログラム |
local0 〜 local7 |
独自の設定 |
◇ プライオリティ
プライオリティはメッセージの優先度を表します。プライオリティはemergが最も高く、debugが最も低い
ことを意味します。指定したプライオリティよりもレベルが高いものが全て記憶されるので、例えばcritを
指定した場合、crit、alert、emergレベルのログが記録されます。特定のプライオリティを指定したい場合、
プライオリティの前に = をつけます。noneは例外指定したファシリティのログを除外する役割を持ちます。
◆ syslogのプライオリティ
プライオリティ |
説明 |
emerg |
非常に危険な状態 |
alert |
危険な状態 |
crit |
危険な状態 |
err |
一般的なエラー |
warning |
システムからの警告 |
notice |
システムからの重要な通知 |
info |
システムからの情報 |
debug |
デバッグ情報 |
none |
ファシリティ無効(メッセージを送らない) |
◇ アクション
アクションではメッセージの出力先を指定します。ログファイルに保存したい場合、ファイル名をフルパス
で指定します。ユーザー名を指定した場合はそのユーザーの端末にメッセージが出力されることになります。
表記 |
説明 |
ファイル名 |
ファイルへの出力 |
ユーザー名 |
ユーザーの端末への出力 |
@ホスト名 |
リモートホストのsyslogdへの出力 |
/dev/console |
コンソールへの出力 |
* |
全てのユーザーの端末への出力 |
◆ 記述例 : crit、alert、emergレベルのメール関連のログを、/var/log/mail ファイルに記録
◆ 記述例 : critレベルのメール関連のログを、/var/log/mail ファイルに記録
◆ 記述例 : errレベル、noticeレベルのメール関連のログを、/var/log/mail ファイルに記録
mail.=err;mail.=notice /var/log/mail |
※ セミコロン( ; )で区切れば、複数のファシリティを指定できます。
◆ 記述例 : crit、alert、emergレベルのメール関連のログを 192.168.0.1 の端末に転送
◆ 記述例 : メールのログを出力しない
◆ 記述例 : カーネルに関する全てのメッセージを、/var/log/kernel に出力
◆ 記述例 : 緊急メッセージは全ユーザーが受け取る
◆ loggerコマンド
loggerコマンドを使用することで、ログメッセージを生成できるので、syslog.confの設定ファイルが
正しく設定されたのかを確認することができます。実行例のファシリティがsyslog、プライオリティが
infoである場合、出力されるメッセージは通常/var/log/messagesファイルに保存されます。
◆ 構文 : logger [ -p ファシリティ. プライオリティ ] [ -t タグ ] メッセージ
◆ 実行例 : ファシリティをsyslog、プライオリティをinfoとして「 Test Message 」というメッセージを出力
# logger -p syslog.info -t TEST "Test Message"
|
◆ syslogの一元管理
各Linuxマシンでsyslogによりログを管理できますが複数のLinuxマシンを運用する場合、syslogは
1つのLinuxマシンに集中管理させることが一般的です。その場合は、各Linuxマシンのsyslog.conf
ファイルにて、syslogを管理するサーバをログの出力先として設定します。
|