システムログの設定

Linux入門マニュアルを無料プレゼントしています。

ダウンロードは今すぐこちらをクリック

システムに異常が発生した際、トラブルシューティングを行うのに役立つのがログです。
ログはサーバーの動作状況を記録したしたものでシステム管理者はログを適切に保管し、
参照できるように管理する必要があります。

Linuxでは、syslogdデーモンによって/var/logディレクトリ配下のファイルに出力したり、
ディスプレイに出力します。これらの処理は、/etc/syslog.confファイルで設定します。

また、ログが増加すると、内容の検索や閲覧に支障をきたすので、
そのような事態を避けるためにログファイルを自動的に更新する
ログローテーション機能が用意されています。

メッセージの出力仕様として、カーネルメッセージについては、
klogdが受け取り、syslogフォーマットに変換してからsyslogdに渡し、
他のログやメッセージと同様に処理される仕組みになっています。

■ファシリティ・プライオリティ・出力先
syslogの動作設定を行うには、/etc/syslog.confファイルを
編集します。このファイルを設定することでどのようなログを
どこに出力するかを指定できます。

書式としては下記のとおりです。
----------------------------------------
ファシリティ.プライオリティ.出力先
----------------------------------------

ファシリティとは、メッセージの出力元になり、
出力元とは、カーネルかプロセスを意味します。

また、プライオリティとは、ログの監視レベルになります。
プライオリティを低く設定するほど、出力されるログ情報は多くなります。

出力先とは、メッセージの出力先になります。
ファイルに保存する場合は、フルパスでファイル名を指定し、
「@」を利用するとネットワーク上のリモートホストへログを送信することが出来ます。

・主なファシリティ
auth 認証メッセージ
authpriv 認証メッセージ
cron cronメッセージ
daemon デーモンメッセージ
kern カーネルメッセージ
lpr プリンタメッセージ
mail メールメッセージ
news ニュースメッセージ
syslog syslogメッセージ
user ユーザープログラムメッセージ
複数のファシリティを指定する場合は、セミコロン「;」で区切って記述します。
またワイルドカード「*」を指定するとすべてのファシリティを指定します。
逆に「!」を使用すれば、特定のファシリティ以外を指定することも可能です。

・主なプライオリティ
none メッセージを送らない
debug デバッグに有益な情報
info 情報メッセージ
notice 注意メッセージ
warning 警告メッセージ
err 一般的なエラーメッセージ
crit 致命的な問題
alert すぐに修正すべき問題
emerg システム不能の非常事態
プライオリティは、指定したプライオリティよりも高い監視レベルをすべてを記録します。
特定のプライオリティのみを記録したい場合は、プライオリティの前に「=」を設定します。

・主な出力先
ファイル名 ファイルに出力
@ホスト名 リモートホストにログを送信
ユーザー名 ユーザーの端末に出力
/dev/console コンソールに出力
* すべてのユーザー端末に出力

■syslog.confの設定例
syslogの動作設定を行うには、/etc/syslog.confファイルを編集することは前回説明しました。
今回は、/etc/syslog.confファイルの設定例を紹介します。

※システムによっては、/etc/syslog.confファイルではなく、
 /etc/rsyslog.confファイルで設定されている場合があります。

---------------------------------------------------------------------
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages

# The authpriv file has restricted access.
authpriv.* /var/log/secure

# Log all the mail messages in one place.
mail.* -/var/log/maillog

# Log cron stuff
cron.* /var/log/cron
---------------------------------------------------------------------

---------------------------------------------------------------------
*.info;mail.none;authpriv.none;cron.none /var/log/messages
---------------------------------------------------------------------
上記の設定は、mail、authpriv、cron以外のファシリティのログで
プライオリティがinfo以上のログは、/var/log/messagesファイルに出力します。

---------------------------------------------------------------------
authpriv.* /var/log/secure
---------------------------------------------------------------------
認証サービスに関するログはすべて/var/log/secureに出力します。

---------------------------------------------------------------------
mail.* -/var/log/maillog
---------------------------------------------------------------------
メールに関するログはすべて/var/log/maillogに出力します。

---------------------------------------------------------------------
cron.* /var/log/cron
---------------------------------------------------------------------
cronに関するログはすべて/var/log/cronに出力します。

また、設定したsyslog.confの内容を確認したり、 マニュアルでメッセージをsyslogdに送りたい場合は、loggerコマンドを使用します。

・書式
logger [-p ファシリティ.プライオリティ] [-t タグ] [メッセージ]

・オプション
-p メッセージを指定したファシリティ、及びプライオリティで送信する
-t タグを付ける

・実行例
-------------------------------------------------
# logger -p syslog.info -t Test "logger test"
-------------------------------------------------

上記を実行すると、/var/log/messagesファイルに下記メッセージが表示されます。

・出力結果
-------------------------------------------------
Mar 17 16:18:47 Tiger Test: logger test
-------------------------------------------------



P.S
システムログの設定のもっと高い技術を身につけたいならこちら


<<関連記事>>
・/etc/fstabファイル(ファイルシステムテーブル)
・Linuxのファイルシステムの作成
・ルートファイルシステム
・YUM(Yellow dog Updater Modified)
・インストール(make install)する