CentOS7のシステムロギング、systemd-journaldとrsyslogd

CentOS7のシステムロギング、rsyslogとjournalについてまとめました。

※目次をクリックすると目次の下部にコンテンツが表示されます。

CentOS7のシステムロギングの概要
・デフォルトでは、以下2つのロギングツールがシステム上で共存している。
 
●rsyslogdデーモン
 
・rsyslogdデーモンは以前のsyslogdに代わる強化版。
・拡張フィルタリングやさまざまな設定オプション、出入力モジュール、TCPまたはUDPプロトコル経由の移動のサポートを提供する。
・rsyslogdが維持するログファイルのリストは、/etc/rsyslog.conf設定ファイルにある。
・ほとんどのログファイルは、/var/log/ディレクトリーにある。
 
●systemd-journaldデーモン
 
・systemdのコンポーネントであるsystemd-journaldデーモンで制御することもできる。
・journaldデーモンは全サービスの標準出力および標準エラー出力に書き込まれたメッセージに加えて、Syslogメッセージ、カーネルログメッセージ、初期RAMディスクおよび初期起動メッセージを取り込む
・journald が生成するログファイルはデフォルトで永続的なものではなく、メモリーもしくは /run/log/journal/ディレクトリーの小型のリングバッファーに保存されるだけ。容量の限界に達すると、一番古いエントリーが削除される。

systemd-journaldサービスによるロギング
1)関連するファイル
 
# rpm -ql systemd | grep journald
/etc/systemd/journald.conf
/usr/lib/systemd/system/sockets.target.wants/systemd-journald.socket
/usr/lib/systemd/system/sysinit.target.wants/systemd-journald.service
/usr/lib/systemd/system/systemd-journald.service
/usr/lib/systemd/system/systemd-journald.socket
/usr/lib/systemd/systemd-journald
/usr/share/man/man5/journald.conf.5.gz
/usr/share/man/man8/systemd-journald.8.gz
/usr/share/man/man8/systemd-journald.service.8.gz
/usr/share/man/man8/systemd-journald.socket.8.gz
 
2)概要
 
・初期RAMディスクをマウントしてLinuxカーネルを起動してからシステムをシャットダウンするまでのログメッセージを保存。
 
・systemdジャーナルが導入される以前は、初期ブートメッセージが消えてしまうため、起動の問題をデバッグする際はメッセージをスクロールして確認する必要があったが、すべてメッセージが単一ストリームに記録され、/runディレクトリに保存される。
 
デフォルト設定の場合/run/log/journal配下に保存されているが、/runディレクトリ配下は、システムを再起動した場合ログが消失してしまうので、保持する場合は/etc/systemd/journald.confでデフォルト設定を変更する。
 
・メッセージはrsyslog機能で使用され(/var/logディレクトリに保存されている従来のログファイルまたはリモートのログサーバーにリダイレクトされ)、さまざまな属性でjournalctlコマンドを使用し表示できる。
 
3)journalctl コマンドでログを表示

# journalctl
-- Logs begin at 木 2016-04-07 16:27:10 JST, end at 木 2016-04-07 07:42:09 JST.
 4月 07 16:27:10 localhost.localdomain systemd-journal[82]: Runtime journal is u
 4月 07 16:27:10 localhost.localdomain systemd-journal[82]: Runtime journal is u
 4月 07 16:27:10 localhost.localdomain kernel: Initializing cgroup subsys cpuset
 4月 07 16:27:10 localhost.localdomain kernel: Initializing cgroup subsys cpu
 4月 07 16:27:10 localhost.localdomain kernel: Initializing cgroup subsys cpuacc
 4月 07 16:27:10 localhost.localdomain kernel: Linux version 3.10.0-229.el7.i686
 4月 07 16:27:10 localhost.localdomain kernel: e820: BIOS-provided physical RAM
 4月 07 16:27:10 localhost.localdomain kernel: BIOS-e820: [mem 0x000000000000000

 
4)設定ファイル
 
# more /etc/systemd/journald.conf
[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=login
#SyncIntervalSec=5m
#RateLimitInterval=30s
#RateLimitBurst=1000
#SystemMaxUse=
#SystemKeepFree=
#SystemMaxFileSize=
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=yes
#ForwardToKMsg=no
#ForwardToConsole=no
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
 
ログの保存先、永続化するかどうかは、”Storage”の項目で設定する。
“volatile”,”persistent”, “auto”,”none”(Defaultsは”auto”)
 
“volatile”
 journal log data will be stored only in memory
 below the /run/log/journal hierarchy (which is created if needed).
 
“persistent”
 data will be stored preferably on disk
 below the /var/log/journal hierarchy (which is created if needed), with a fallback to /run/log/journal (which is created if needed), during early boot and if the disk is not writable.
 
“auto”
 similar to “persistent” but the directory /var/log/journal is not created if needed, so that its existence controls where log data goes.
 
“none”
 turns off all storage, all log data received will be dropped. Forwarding to other targets, such as the console, the kernel log buffer or a syslog daemon will still work however.

関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください