CentOS 7のログ管理「journald」

2014年12月18日(木)
古賀 政純

今回は、CentOS 7で採用されている新しいログ管理の仕組み「journald」を取り上げます。またjournaldとrsyslogとの連携やシステム全体に渡って様々なログを収集するsosreportについても簡単に触れます。

CentOS 7におけるログ機構「Systemd Journal」を使いこなす

CentOS 7は、ログの管理を行う新しい仕組みが導入されています。従来のCentOS 6系では、長年親しまれてきたsyslogがベースのログ管理手法が採用されていましたが、CentOS 7からは、ログに関するより細かい指定や操作を行うことができるようになっています。CentOS 7でのログ管理は、systemdが担当しています。サービス名は、「systemd-journald.service」です。一般的には、「journald」と呼ばれています。CentOS 6までのsyslogではsyslogデーモンを稼働させていましたが、CentOS 7からは、もはやsyslogdデーモンの起動は不要です。その代わり、ログの収集の仕組みであるjournaldのサービスを起動する必要があります。journaldが起動しているかどうかは、systemctlコマンドで確認できます。

# systemctl status systemd-journald
systemd-journald.service - Journal Service
   Loaded: loaded (/usr/lib/systemd/system/systemd-journald.service; static)
   Active: active (running) since 月 2014-10-20 03:04:05 JST; 10h ago
     Docs: man:systemd-journald.service(8)
           man:journald.conf(5)
 Main PID: 482 (systemd-journal)
   Status: "Processing requests..."
   CGroup: /system.slice/systemd-journald.service
           mq482 /usr/lib/systemd/systemd-journald

10月 20 03:04:06 localhost.localdomain systemd-journal[482]: Runtime journal is using 6.....
10月 20 03:04:06 localhost.localdomain systemd-journal[482]: Runtime journal is using 6.....
10月 20 03:04:06 localhost.localdomain systemd-journal[482]: Journal started
10月 20 03:04:17 localhost.localdomain systemd-journal[482]: Runtime journal is using 6.....
Hint: Some lines were ellipsized, use -l to show in full.

journaldが収集したログを適宜整形、加工できるのが、journalctlコマンドになります。journalctlコマンドは、ログの出力に関する様々なオプションを備えています。以下では、CentOS 7の管理者が、知っておくべきjournalctlコマンドを使ったログ管理の基礎をご紹介します。

ブートログを出力する

サーバーに搭載されている各種ハードウェアの認識状態等を確認するために、CentOS 7のブート時のログを見たい場合があります。直前のブートのログを確認するには、journalctlコマンドに-bオプションを付与します。

# journalctl -b

日時でフィルタリングする

以下は、2014年9月5日午前1時23分45秒から2014年9月7日午前4時56分0秒までのログを出力する例です。

# journalctl --since="2014-09-05 01:23:45" --until="2014-09-07 04:56:00"
-- Logs begin at Sat 2014-09-06 00:03:27 JST, end at Sat 2014-09-06 10:46:25 JST. --
Sep 06 00:03:27 c70n2530.jpn.linux.hp.com systemd-journal[95]: Runtime journal is using 8.0M (max 93.3M, leaving 140.0M of free 925.3M, current limit 93.3M).
Sep 06 00:03:27 c70n2530.jpn.linux.hp.com systemd-journal[95]: Runtime journal is using 8.0M (max 93.3M, leaving 140.0M of free 925.3M, current limit 93.3M).
Sep 06 00:03:27 c70n2530.jpn.linux.hp.com kernel: Initializing cgroup subsys cpuset
...
...

デフォルトでは、自動的にlessページャが起動し、ログをスクロールさせて閲覧することができます。lessページャの自動起動が不要の場合は、--no-pagerオプションを付与します。特定のサービスに限ってログを出力させたい場合は、そのサービスのユニット名を指定します。

# journalctl --since="2014-09-05 01:23:45" --until="2014-09-07 04:56:00" -u sshd.service
-- Logs begin at Sat 2014-09-06 00:03:27 JST, end at Sat 2014-09-06 10:46:25 JST. --
Sep 06 00:03:58 c70n2530.jpn.linux.hp.com systemd[1]: Starting OpenSSH server daemon...
Sep 06 00:03:58 c70n2530.jpn.linux.hp.com systemd[1]: Started OpenSSH server daemon.
...
...

--sinceオプションに「today」を指定することで、今日ログされたものから現在までのものを抽出して出力することも可能です。

# journalctl --since=today
-- Logs begin at Sat 2014-09-06 00:03:27 JST, end at Sat 2014-09-06 11:03:55 JST. --
Sep 06 00:03:27 c70n2530.jpn.linux.hp.com systemd-journal[95]: Runtime journal is using 8.0M (max 93.3M, leaving 140.0M of free 925.3M, current limit 93.3M).
Sep 06 00:03:27 c70n2530.jpn.linux.hp.com systemd-journal[95]: Runtime journal is using 8.0M (max 93.3M, leaving 140.0M of free 925.3M, current limit 93.3M).
...
...

他にも、--sinceオプションに「yesterday」や「tomorrow」を指定することも可能です。

過去のログだけでなく、現在のシステムが出力しているログをリアルタイムで閲覧したい場合があります。従来の「tail -f /var/log/messages」のように、tailコマンドを駆使していたようなログの閲覧方法を実現するには、-fオプションを付与して実行します。

# journalctl -f
-- Logs begin at Sat 2014-09-06 00:03:27 JST. --
Sep 06 10:30:01 c70n2530.jpn.linux.hp.com CROND[10619]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Sep 06 10:40:01 c70n2530.jpn.linux.hp.com systemd[1]: Starting Session 76 of user root.
Sep 06 10:40:01 c70n2530.jpn.linux.hp.com systemd[1]: Started Session 76 of user root.
...
...

従来のsyslogでは、ログのプライオリティ管理ができました。journalctlでも同様にプライオリティによる出力のフィルタリングを行うことができます。特定のプライオリティのログのみを出力させる場合は、-pオプションにプライオリティを付与してjournalctlコマンドを実行します。

warningプライオリティの場合

# journalctl -p warning
-- Logs begin at Sat 2014-09-06 00:03:27 JST, end at Sat 2014-09-06 10:46:25 JST. --
Sep 06 00:03:27 c70n2530.jpn.linux.hp.com kernel: crashkernel=auto resulted in zero bytes of reserved memory.
Sep 06 00:03:27 c70n2530.jpn.linux.hp.com kernel: ACPI: RSDP 00000000000f68c0 00024 (v02 HPQOEM)
...
...

errプライオリティの場合

# journalctl -p err
-- Logs begin at Sat 2014-09-06 00:03:27 JST, end at Sat 2014-09-06 11:01:01 JST. --
Sep 06 00:03:27 c70n2530.jpn.linux.hp.com kernel: tpm_tis 00:03: A TPM error (7) occurred attempting to read a pcr value
Sep 06 00:03:40 c70n2530.jpn.linux.hp.com systemd-udevd[423]: error opening ATTR{/sys/devices/pci0000:00/0000:00:1a.1/usb4/4-1/4-1:1.0/power/control} for writing: No such file or directory

上記の-pオプションには、プライオリティの値で指定することも可能です。プライオリティの値とログレベルの対応関係を以下に示します。

# journalctl -p 0       ← emerg
# journalctl -p 1       ← alert
# journalctl -p 2       ← crit
# journalctl -p 3       ← err
# journalctl -p 4       ← warning
# journalctl -p 5       ← notice
# journalctl -p 6       ← debug

カーネルログのみを表示させることも可能です。従来のsyslog管理のdmesgに相当します。

# journalctl -k
-- Logs begin at 日 2014-08-31 01:02:16 JST, end at 土 2014-09-13 10:10:01 JST. --
...
...
 9月 07 01:30:16 centos70n01.jpn.linux.hp.com kernel: NX (Execute Disable) protection: active
 9月 07 01:30:16 centos70n01.jpn.linux.hp.com kernel: SMBIOS 2.4 present.
 9月 07 01:30:16 centos70n01.jpn.linux.hp.com kernel: DMI: Red Hat KVM, BIOS 0.5.1 01/01/2007
 9月 07 01:30:16 centos70n01.jpn.linux.hp.com kernel: Hypervisor detected: KVM
 9月 07 01:30:16 centos70n01.jpn.linux.hp.com kernel: e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
 9月 07 01:30:16 centos70n01.jpn.linux.hp.com kernel: e820: remove [mem 0x000a0000-0x000fffff] usable
 9月 07 01:30:16 centos70n01.jpn.linux.hp.com kernel: No AGP bridge found
...
...

特定のプロセスIDのみに関するログを出力したい場合は、「_PID=プロセス番号」を付与して実行します。

# journalctl _PID=10765
-- Logs begin at Sat 2014-09-06 00:03:27 JST, end at Sat 2014-09-06 10:50:01 JST. --
Sep 06 10:46:25 c70n2530.jpn.linux.hp.com sshd[10765]: Accepted password for root from 172.16.27.10 port 57150 ssh2
Sep 06 10:46:25 c70n2530.jpn.linux.hp.com sshd[10765]: pam_unix(sshd:session): session opened for user root by (uid=0)

サービスを提供する実行ファイルのパスを指定することも可能です。以下では、コマンドの実行をスケジューリングするサービス「crond」の実体である/usr/sbin/crondに関連するログのみを出力する例です。

# journalctl /usr/sbin/crond
-- Logs begin at Sat 2014-09-06 00:03:27 JST, end at Sat 2014-09-06 11:01:01 JST. --
Sep 06 00:03:51 c70n2530.jpn.linux.hp.com crond[585]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 92% if used.)
Sep 06 00:03:53 c70n2530.jpn.linux.hp.com crond[585]: (CRON) INFO (running with inotify support)
Sep 06 00:20:01 c70n2530.jpn.linux.hp.com CROND[2473]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Sep 06 01:01:01 c70n2530.jpn.linux.hp.com CROND[2972]: (root) CMD (run-parts /etc/cron.hourly)
...
...

OS再起動後もログが消去されないようにする

CentOS 7のjournaldの設定では、ログファイルは、/run/log/journalディレクトリ以下に格納されています。しかし、/runディレクトリはtmpfsファイルシステムでマウントされており、OSを再起動すると、/run/log/journalディレクトリ配下に格納されていたログファイルは削除されてしまいます。

# df -HT |grep tmpfs
devtmpfs       devtmpfs  970M     0  970M   0% /dev
tmpfs          tmpfs     979M  144k  979M   1% /dev/shm
tmpfs          tmpfs     979M  959k  978M   1% /run     ←tmpfsでマウントされている
tmpfs          tmpfs     979M     0  979M   0% /sys/fs/cgroup

OSを再起動してもログが保管されるようにするためには、journaldの設定ファイル/etc/systemd/journald.conf内で「Storage=persistent」を指定し、コメントアウトを意味する行頭の「#」を削除します。

# cp /etc/systemd/journald.conf /etc/systemd/journald.conf.org
# vi /etc/systemd/journald.conf
...
[Journal]
Storage=persistent
...

設定ファイルを編集したら、journaldサービスを再起動します。

# systemctl restart systemd-journald

/etc/systemd/journald.conf内で「Storage=persistent」を指定した場合、/var/log/journalディレクトリ配下にディレクトリとログが作成され、ログが永続的に保存されるようになります。

# cd /var/log/journal/54b10747e8d74220a5b5e8da6ddb66ef/
# ls -l
total 8196
-rw-r-----. 1 root root 8388608 Sep  6 12:40 system.journal

/etc/systemd/journald.conf内でデフォルトの「Storage=auto」を指定すると、/var/log/journalディレクトリが存在しない場合は、tmpfsでマウントされている/run/log/journalディレクトリ配下にログが保管されます。/var/log/journalディレクトリが存在する場合は、/var/log/journalディレクトリ配下にログが保管されます。

ログの容量制限

journaldによって生成されるログの容量を制限するには、journald.confファイルの「SystemMaxUse=」パラメータに値を設定します。以下は、ログの容量を128MBに制限する例です。

# vi /etc/systemd/journald.conf
...
SystemMaxUse=128M
...

パラメータを記述したら、journaldを再起動します。

# systemctl restart systemd-journald

今現在、journaldで管理されている全てのログの容量を確認するには、journalctlコマンドに「--disk-usage」オプションを付与して実行します。

# journalctl --disk-usage
Journals take up 6.2M on disk.

journaldで収集したログを遠隔にあるsyslogサーバーに転送する

CentOS 7におけるログは、journaldによって一元的に管理されていますが、そのログを遠隔にあるログサーバーに転送したい場合があります。ログサーバーには様々な種類がありますが、一般的に広く利用されているのは、rsyslogサーバーです。実は、CentOS 7でもjournald以外にrsyslogによるログサーバーを構築することが可能となっています。CentOS 7以外にCentOS 5やCentOS 6などのjournaldに対応していないsyslogベースのOSが混在する環境では、ログサーバーとして、使い慣れたrsyslogでログを統合して管理することが考えられます。

図1:管理対象サーバー側でjournaldによりログを取得し、rsyslogサーバーでログを一括管理する。journaldだけでなくsyslogベースの旧システムが混在する環境では、rsyslogを使ったログサーバーが有用である(クリックで拡大)

ここでは、CentOS 7がインストールされた管理対象サーバー上でjournaldによりログを取得し、遠隔にあるCentOS 7のrsyslogサーバーにログを転送する手順を紹介します。

まず、CentOS 7上で、rsyslogサーバーを構築します。rsyslogサーバーの設定ファイルrsyslog.confファイルを編集します。

# vi /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
$umask 0022
$FileCreateMode 0644
$DirCreateMode 0755
...
:fromhost-ip, isequal, "172.16.70.2" /var/log/journalctl_log_172.16.70.2
& ~
...

上記の「$UDPServerRun 514」は、rsyslogにおいてUDPの514番ポートを使用する設定になります。また、ログを取得したい管理対象サーバーのIPアドレスと、ログサーバー側で保管するログファイルのフルパスを記述します。上記では、管理対象サーバーのIPアドレスが172.16.70.2の場合は、ログサーバー側の「/var/log/journalctl_log_172.16.70.2」というファイルにログを書き込むというルールを記述しています。上記の設定ファイルを記述したら、ログサーバー側でjournalctl_log_172.16.70.2という空のファイルを作成しておきます。

# touch /var/log/journalctl_log_172.16.70.2

rsyslogはUDPの514番ポートを使って通信を行いますので、ログサーバー側のファイアウォールの設定を変更します。UDPの514番ポートを開ける設定は、以下のとおりです。

# firewall-cmd --zone=public --add-port=514/udp --permanent
success

ログサーバー側のファイアウォールの設定を反映します。

# firewall-cmd --reload

ログサーバー側のUDPの514番ポートが開放されているかを確認します。

# firewall-cmd --list-all
public (default, active)
  interfaces: docker0 ens7 eth0 team0
  sources:
  services: dhcp dhcpv6-client http nfs ssh tftp
  ports: 21/tcp 514/udp 5901/tcp ←UDPの514番ポートが通信できる設定
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

ログサーバー側のrsyslogサービスを再起動します。

# systemctl restart rsyslog
# systemctl status rsyslog
rsyslog.service - System Logging Service
   Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled)
   Active: active (running) since 火 2014-10-21 23:03:47 JST; 2s ago
 Main PID: 18196 (rsyslogd)
   CGroup: /system.slice/rsyslog.service
           mq18196 /usr/sbin/rsyslogd -n

10月 21 23:03:47 centos70n01.jpn.linux.hp.com systemd[1]: Starting System Logging Service...
10月 21 23:03:47 centos70n01.jpn.linux.hp.com systemd[1]: Started System Logging Service.

これで、IPアドレスが172.16.70.2の管理対象サーバーのログをrsyslogで収集するログサーバーが構築できました。次に、管理対象サーバー側でjournaldによるログ収集を設定します。まず、管理対象サーバー側でも、ログ管理サーバーと同様に、UDPの514番ポートを開放します。

# firewall-cmd --zone=public --add-port=514/udp --permanent
success

# firewall-cmd --reload

管理対象サーバー側でjournaldが稼働していない場合は、journaldを起動します。

# systemctl start systemd-journald

# systemctl status systemd-journald
systemd-journald.service - Journal Service
   Loaded: loaded (/usr/lib/systemd/system/systemd-journald.service; static)
   Active: active (running) since 火 2014-10-21 23:07:03 JST; 50s ago
     Docs: man:systemd-journald.service(8)
           man:journald.conf(5)
 Main PID: 1977 (systemd-journal)
   Status: "Processing requests..."
   CGroup: /system.slice/systemd-journald.service
           mq1977 /usr/lib/systemd/systemd-journald
...
...

管理対象サーバー側で、journalctlコマンドを使ったログ取得を行い、遠隔のrsyslogサーバー(IPアドレスは172.16.70.99とします)にログを転送します。

# journalctl -o short -f |nc -uv 172.16.70.99 514
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connected to 172.16.70.99:514.

ログが転送されているかのテストは、管理対象サーバー側で、httpdやpostfix等のサービスを再起動したりすることでサービス再起動に関するログが生成され、rsyslogサーバーにそのログが転送されるはずです。

フォワード・セキュア・シーリングとQRコードの生成

フォワード・セキュア・シーリング(Forward Secure Sealing:FSS)と呼ばれる技術を使って、ジャーナルの一貫性の確認を行うことが可能です。定期的に自動生成されるキーを使い、ログの完全性検証を行うことが可能です。一般的に、侵入者は、Linuxシステムに保管されているログの履歴を改変しようとします。しかしこのキーを使えば、この改変をチェックすることができ、システムへの侵入検知にも有用です。具体的には、事前に検証用のキーを生成しておき、そのキーを意味するQRコードを管理者の携帯電話やスマートフォンに保管しておきます。検証時には、管理者の携帯電話やスマートフォンに保管しておいた文字列を、journalctlコマンドで読み込ませ、ログが改変されていないかをチェックするという流れになります。ただし、CentOS 7のアップストリームOSであるRHEL 7においてもテクノロジープレビューに位置づけられているため、正常な動作が保証されているわけではありません。あくまで挙動の確認やテスト目的で利用して下さい。以下では、具体的に、検証用のキーを含むQRコードの生成手順とログの完全性の検証方法を示します。

まず、キーペアを生成します。このキーペアは、ジャーナルのシーリングに利用するキーです。

# journalctl --setup-keys --force

図2:検証鍵が赤い文字で表示されている。QRコードを携帯電話やスマートフォンで読み取り、文字列を記録しておく(クリックで拡大)

上記コマンドにより、「シーリング鍵」が、ローカルシステムのディレクトリ/var/log/journalディレクトリ配下に格納されます。シーリング鍵は15分毎に自動的に更新されます。この鍵は、複数のホストで共用して利用して利用することは避けて下さい。さらに、検証鍵が赤い文字列で表示されています。この文字列を書きとめておきます。この文字列は、ローカルシステムのディスク上に保管することは避けて下さい。検証鍵を示すQRコードを管理者の携帯電話やスマートフォンで読み取り、表示されたシーリング鍵と検証鍵の文字列を保管しておいて下さい。システムに記録されているジャーナルの完全性の検証は、journalctlコマンドに、「--verify-key」オプションを付与し、検証鍵の文字列を指定します。

# journalctl --verify-key ee2e0e-045220-a3cec8-f111f8/17ec78-35a4e900

もし、ジャーナルの完全性が示された場合は、「PASS」と表示されます。

システム全体の様々なログと設定ファイルをまとめて収集するsosreport

Linuxシステムで管理されるログには、様々な種類が存在しますが、それらのログを一つ一つ手動で収集するのは非効率です。また、ログだけでなくその時の設定ファイルも証拠として保管しておきたい場合が少なくありません。このような場合、ログや設定ファイルを一括して取得するスクリプトを登録しておくことも有用ですが、CentOS 7では、それ専用のsosreportコマンドが用意されており、システム全体のログと設定ファイルを簡単に一括取得することが可能です。以下では、sosreportコマンドを使ったログと設定ファイルの取得手順を示します。

sosreportコマンドは、sosパッケージに含まれていますので、インストールされていない場合は、yumコマンドでインストールします。

# yum install -y sos

sosreportコマンドにより、ログと設定ファイルを収集します。

# sosreport -a --report ←「--report」オプションを付与し、HTMLファイルを生成

sosreport (version 3.0)

This command will collect diagnostic and configuration information from
this CentOS Linux system and installed applications.

An archive containing the collected information will be generated in
/var/tmp and may be provided to a CentOS support representative.

Any information provided to CentOS will be treated in accordance with
the published support policies at:

  https://www.centos.org/

The generated archive may contain data considered sensitive and its
content should be reviewed by the originating organization before being
passed to any third party.

No changes will be made to system configuration.

Press ENTER to continue, or CTRL-C to quit.

上記のように「Press ENTER to continue, or CTRL-C to quit.」が表示されたら、ENTERキーを押します。すると、以下のように、名称の入力が促されます。

Please enter your first initial and last name [centos70n02]:

このままでよければ、ENTERキーを押します。次に、sosreportコマンドが生成するレポートのケースナンバーの入力が促されます。

Please enter the case number that you are generating this report for:

このままでよければ、ENTERキーを押します。すると、sosreportコマンドがCentOS 7がインストールされたシステム全体に渡ってログと設定ファイルを収集します。しばらくすると、以下のように、ログと設定ファイルがアーカイブされたファイルが生成された旨のメッセージが表示されます。

Your sosreport has been generated and saved in:
  /var/tmp/sosreport-centos70n02-20141022103807.tar.xz

The checksum is: 5db1b518fff2539042f0f94ab3489d96

Please send this file to your support representative.

上記のsosreport-centos70n02-20141022101820.tar.xzをtarコマンドで展開し、中身を見てみましょう。

# pwd
/root

# tar xJvf /var/tmp/sosreport-centos70n02-20141022103807.tar.xz -C .
# ls -F
anaconda-ks.cfg  initial-setup-ks.cfg  sosreport-centos70n02-20141022103807/

# cd sosreport-centos70n02-20141022103807/
# ls -F
boot/           dmidecode@      installed-rpms@ lsmod@          netstat@        root/
sos_commands/   uname@          version.txt             chkconfig@      etc/            ip_addr@
lsof@           proc/           route@                  sos_logs/       uptime@         vgdisplay@
date@           free@           java@                   lspci@          ps@             rpm-Va@
sos_reports/    usr/            df@                     hostname@       lib/            mount@
pstree@         run/            sys/                    var/

様々なログファイルや設定ファイル、そしてコマンドの出力結果がディレクトリ毎に整理されて記録されています。sosreportコマンドは、--reportオプションを付与して実行すると、取得したログや設定ファイル等をWebブラウザで簡単に閲覧することが可能なHTMLファイルを生成します。HTMLファイルは、上記アーカイブ内のsos_reportsディレクトリに保管されています。今回は、sosreportコマンドを実行した管理対象サーバー上に、Webサーバーを起動し、遠隔にある管理者のパソコンからsosreportのアーカイブを展開した中身をWebブラウザで閲覧できるようにしてみましょう。まず、展開したアーカイブファイルを/var/www/htmlに移動します。

# cd
# ls -F
anaconda-ks.cfg  initial-setup-ks.cfg  sosreport-centos70n02-20141022103807/

# mv sosreport-centos70n02-20141022103807 /var/www/html/

ログを収集した管理対象サーバー上で、Apache Webサーバーを起動します。

# systemctl start httpd

ファイアウォールの設定を行います。遠隔にある管理者のPCと通信を行うLANセグメントを確認します。

# firewall-cmd --list-all
public (default, active)
  interfaces: ens7 eth0
  sources:
  services: dhcpv6-client nfs ssh
  ports: 514/udp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

上記結果より、今回は、publicに所属するLANセグメントについてHTTPサービスを許可します。今回は、HTTPサービスの提供するゾーンとしてpublicを選択していますが、実際には、ログの盗聴等を考慮し、暗号化されたセキュアな通信経路を考慮して下さい。

# firewall-cmd --zone=public --add-service=http --permanent
# firewall-cmd --reload

これで、HTTPを使って/var/www/htmlディレクトリ配下のファイルをクライアントに閲覧できるようになりました。次に、/var/www/htmlディレクトリに移動させたsosreportのディレクトリのパーミッションを変更します。

# cd /var/www/html/
# chmod 755 ./sosreport-centos70n02-20141022103807
# cd ./sosreport-centos70n02-20141022103807
# chmod -R 655 ./sos_commands
# chmod -R 655 ./sos_logs
# chmod -R 655 ./sos_reports

以上で、遠隔のPCからsosreportコマンドで取得したログや設定ファイル等をWebブラウザで確認することができます。

図3:sosreportを実行した管理対象サーバー上でWebサーバーを稼働させることで、ログ、設定ファイル、コマンド実行結果等をHTTP経由でクライアントに提供する。管理者は、これらのログファイル等を遠隔からマウス操作で確認できる(クリックで拡大)

以上、CentOS 7におけるログ管理を紹介しました。従来のrsyslogによる管理と比較すると、journaldは、豊富なフィルタリング機能が提供されており、ログの管理性が向上しています。また、システムの保守に関わる部門では、sosreportなどのログ及び設定ファイルの収集ツールが重宝されています。ログの管理を効率的に行い、日々の運用やトラブル時の保守サポートに役立ててみて下さい。

<編集部より>コマンドの実行手順を一部修正しました(2015/1/15)

この連載が書籍になりました!
CentOS 7実践ガイド

古賀 政純 著
価格:3,000円+税
発売日:2015年2月25日発売
ISBN:978-4-8443-3753-9
発行:インプレスジャパン

CentOS 7実践ガイド

本書は、CentOS 7を取り巻く市場動向、CentOS 7が利用されるサーバーシステムの選定、CentOS 7の基礎、システム設計、OS管理やCentOS 7に対応したアプリケーションサーバーの構築手順などの勘所をご紹介します。連載では書ききれなかった本の内容、見どころが満載!

  • セキュリティ管理
  • チューニング
  • 自動インストール
  • Hadoop構築
  • GlusterFS
  • Ceph

Amazon詳細ページへImpress詳細ページへ

日本ヒューレット・パッカード株式会社 プリセールス統括本部 ソリューションセンター OSS・Linux担当 シニアITスペシャリスト

兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師を担当。科学技術計算サーバーのSI経験も持つ。2005年、大手製造業向けLinuxサーバー提案で日本HP社長賞受賞。2006年、米国HPからLinux技術の伝道師に与えられる「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。日本HPプリセールスMVPを4度受賞。現在は、Linux、FreeBSD、Hadoop等のOSSを駆使したスケールアウト型サーバー基盤のプリセールスSE、技術検証、技術文書執筆を担当。日本HPのオープンソース・Linuxテクノロジーエバンジェリストとして講演活動も行っている。Red Hat Certified Engineer、Red Hat Certified Virtualization Administrator、Novell Certified Linux Professional、EXIN Cloud Computing Foundation Certificate、HP Accredited Systems Engineer Cloud Architect、Red Hat Certified System Administrator in Red Hat OpenStack、Cloudera Certified Administrator for Apache Hadoop認定技術者。HP公式ブログ執筆者。趣味はレーシングカートとビリヤード

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています