11.2. システムログの設定

11.2.1. ログとは

ログはコンピュータの動作状況の記録を行うもの。 Linuxの場合はsyslogと呼ばれるプログラムを使用することにより、発生する各種イベントをログファイルに出力したりコンソールに出力することが可能となる。 ログのシステムにはrsyslog, syslog, syslog-ngなどがある。

11.2.2. Syslog

syslogはsyslogdというデーモンにより実行される。 syslogは他のプログラムからのメッセージを受信して、出力元や優先度に従って分類を行って、syslogで定義した出力先に送信する。

syslog/rsyslogの設定

syslogの設定は/etc/syslog.confで設定を行う。 rsyslogはsyslogの上位バージョンで拡張機能などがあり、設定は/etc/rsyslog.confで行う。

設定ファイルの構文はファシリティ. プライオリティ アクションで記述する。 記述構文は以下の通り。

<ファシリティ>.<プライオリティ> <出力先(アクションフィールド)>

ファシリティ

ファシリティはログの種別メッセージの出力元を示す。 具体的にはカーネルや実行中のプロセスを表す。

ファシリティ説明
auth, authpriv認証システム(loginなど)
croncron
daemon各種デーモン
kernカーネル
lpr印刷システム
mailメールサービス
userユーザーアプリケーション
local0-local7ローカルシステム

プライオリティ

プライオリティはメッセージの重要度を表す。

重要度(降順)説明
emerg緊急事態
alert早急に対処が必要
crit深刻(システムの処理は継続できる)
err一般的なエラー
warning一般的な警告
notice一般的な通知
info一般的な情報
debug一般的な情報
noneログを記録しない

アクション(出力先)

アクションではメッセージの出力先を指定する。

表記説明
ファイル名ファイルへの出力
ユーザー名ユーザーの端末への出力
@ホスト名リモートホストのsyslogdへの出力
/dev/consoleコンソールへの出力
*全てのユーザーの端末への出力

11.2.3. ログに関するコマンド

loggerコマンド

ログメッセージ生成するコマンド。
システムログの設定の確認などに使用する。

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

syslog.infoの場合は/var/log/syslogに追記される。

systemd-catコマンド

コマンドの実行結果をジャーナルに書き込むコマンド。 /var/log/syslogに書かれる。

systemd-cat echo 'hoge'

journalctlコマンド

systemd採用システムにおいて、systemdのログ(ジャーナル)を閲覧できるコマンド。 ジャーナルは/var/log/journal/var/run/log/journalのバイナリに保存される。

journalctl
オプション説明
-f, –follow末尾を表示し続ける(tail -fとかとおなじ)
-r, –reverse新しい順(デフォルトは古い順。その逆)
-e, –pager-end末尾を表示する(ページャでさかのぼれる)
-x, –catalog説明文付き
-k, –dmesgカーネルメッセージのみ
-b, –bootブート時メッセージ
-p, –priority=プライオリティ指定したプライオリティ以上
-u, –unit=ユニット名ユニット指定
–fullエスケープ文字を除いてプレーンテキストで出力
–no-pager1ページごとに表示せず、すべてのログを出力する

11.2.4. ログの調査

主要なログファイルは/var/log/messagesに保存されるが、ディストリビューションにより差異がある。

ログの種類

システム状態に応じて出力される各種ログは以下表のようなログファイルに出力される。

ログファイル名内容
/var/log/messages一般的なシステム関連のメッセージ
/var/log/secureセキュリティに関するメッセージ
/var/log/cron定期的に実行される処理結果に関するメッセージ
/var/log/maillogメールに関するメッセージ
/var/log/spooler印刷に関するメッセージ
/var/log/boot.logOS起動時に関するメッセ

ログの確認方法

more,tail,tail - fコマンドやgrepを組み合わせてログの調査を行う。

11.2.5. ログファイルのローテーション

ログファイルはログ出力の度に追記されていくので、ファイルサイズが大きくなる。 そのためローテーション機能によりログファイルの分割などを行う。

ローテーション機能はcronを利用してlogrotateユーティリティが定期的に実行される。 logrotateの設定は/etc/logrotate.confファイルで行う。

11.2.6. ログインユーザログの確認コマンド

lastコマンド

最近ログインしたユーザーの一覧を表示するコマンド。 参照ファイルは/var/log/wtmp

last

whoコマンド

ログイン中のユーザ名、ログイン端末名、ログイン日時、ログイン元IPを表示するコマンド。 参照ファイルは/var/run/utmp

who

wコマンド

whoコマンドでの情報とシステム情報も表示するコマンド。 参照ファイルは/var/run/utmp

w

lastlogコマンド

ログファイルを参照しユーザごとに最近のログイン一覧を表示するコマンド。 参照ファイルは/var/log/lastlog

lastlog