Linux - syslog



 ◆ 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 ファイルに記録
 mail.crit /var/log/mail


 ◆ 記述例 : critレベルのメール関連のログを、/var/log/mail ファイルに記録
 mail.=crit /var/log/mail


 ◆ 記述例 : errレベル、noticeレベルのメール関連のログを、/var/log/mail ファイルに記録
 mail.=err;mail.=notice /var/log/mail

 ※ セミコロン( ; )で区切れば、複数のファシリティを指定できます。


 ◆ 記述例 : crit、alert、emergレベルのメール関連のログを 192.168.0.1 の端末に転送
 mail.crit @192.168.0.1


 ◆ 記述例 : メールのログを出力しない
 mail.none


 ◆ 記述例 : カーネルに関する全てのメッセージを、/var/log/kernel に出力
 kern.* /var/log/kernel


 ◆ 記述例 : 緊急メッセージは全ユーザーが受け取る
 *.emerg *


 ◆ 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を管理するサーバをログの出力先として設定します。


     



Linux 技術入門

Copyright(C) 2002-2024 ネットワークエンジニアとして All Rights Reserved