IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

クラウド時代のオープンソース実践活用

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第56回 RHEL7/CentOS7のjournaldでシステムログを一元管理 (中井悦司) 2014年12月

はじめに

 RHEL7/CentOS7が公開されて数ヶ月が過ぎましたが、systemdやNetworkManagerなどの新しいコマンド体系にも馴染んできたでしょうか? 今回は、systemdのシステムログ管理サービス「journald」について解説したいと思います。

journaldって何?

 journaldは、systemdの環境で標準的に提供されるログ管理のサービスで、正式名称は、「systemd-journald.service」になります。次のように、systemdが管理するサービスの1つとして稼働していることが分かります。

# systemctl status systemd-journald.service
systemd-journald.service - Journal Service
   Loaded: loaded (/usr/lib/systemd/system/systemd-journald.service; static)
   Active: active (running) since 月 2014-11-24 16:27:08 JST; 5 days ago
     Docs: man:systemd-journald.service(8)
           man:journald.conf(5)
 Main PID: 334 (systemd-journal)
   Status: "Processing requests..."
   CGroup: /system.slice/systemd-journald.service
           └─334 /usr/lib/systemd/systemd-journald

 RHEL7/CentOS7の環境では、journaldの他に、従来からの「rsyslog」も稼働しており、/var/log/messagesなどのシステムログファイルは、rsyslogが管理しています。journaldは、これとは別に、各種のログメッセージを独自のデータベースに保存しており、この後で説明するjournalctlコマンドでログの内容を検索することが可能です(図1)。

fig01

図1 journaldがログを収集する仕組み

 ちなみに、systemdは、ログ管理を含めてさまざまな機能を提供していますが、時折、「1つのプログラムに機能を詰め込み過ぎると、プログラムにバグがあった時の影響が大きいのでは?」という声を聞くこともあります。しかしながら、これには、少し誤解があるようです。journaldは、「systemdの環境で標準提供されるサービス」というだけで、実際には、systemd本体とは独立したデーモンとして稼働しています。決して、systemd本体のプログラムに、さまざまな機能が詰め込まれているわけではありません。

journaldのログ検索機能

 journaldは、rsyslogが収集する標準的なシステムログに加えて、各種サービスのデーモンプロセスが標準出力/標準エラー出力に書き出すメッセージなど、より多くのログメッセージを収集するようになっています。さらには、それぞれのメッセージについて、「どのサービスのプロセスが出力したものか」などの追加情報も保存しています。

 ただし、これらは、独自のバイナリーファイルに記録されているので、テキストエディターで閲覧することはできません。専用のjournalctlコマンドで検索を行います。たとえば、次は、sshdサービスに関連するログをまとめて表示します。

# journalctl -u sshd.service

 デフォルトでは、lessコマンドで表示されますが、これが不要な場合は、次のオプションを追加します。-lオプションを付けない場合は、画面の右端で出力が省略されます。

# journalctl -u sshd.service -l --no-pager

 これまで、各種サービスのログ出力先は、明確には取り決められていませんでした。1つのサービスのログ出力が、目的によって複数のファイルに分けて記録されることもありました。journaldを利用すれば、特定サービスのログ出力をまとめて確認することが可能になります。日付を指定した検索やカーネルメッセージの確認も可能です。検索オプションの詳細については、journalctlコマンドのmanページで確認することができます。

 なお、RHEL7/CentOS7のデフォルトでは、journaldが保存するログは、システムを再起動すると消去されるようになっています。システム再起動後もログを残す方法などについては、筆者のBlog記事を参考にしてください(>*1)。

次回予告

 RHEL7/CentOS7では、従来のrsyslogも稼働していますが、実は、RHELの先行開発版となるFedoraの最新バージョンでは、デフォルトでは、rsyslogは導入されなくなっています。RHEL/CentOSの世界でも、将来、システムログ管理はjournaldに完全移行するのかも知れません。これまでと使い方が異なるので戸惑うこともあるかも知れませんが、慣れれば、これまで以上に便利に使えることは間違いないでしょう。

 さて、今週は、OpenStackユーザ会の「Neutron勉強会」で発表する予定です。次回は、こちらの勉強会からの話題をお届けしたいと思います。

参考資料

(*1) 「RHEL7/CentOS7のjournaldについてのもろもろ

 

++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
 CTC教育サービス Linuxのページ
 http://www.school.ctc-g.co.jp/linux/
 

Linux研修トレーニングならCTC教育サービス


 

筆者書籍紹介

Software Design plusシリーズ
「独習Linux専科」サーバ構築/運用/管理
  ――あなたに伝えたい技と知恵と鉄則

本物の基礎を学ぶ!新定番のLinux独習書

中井悦司 著
B5変形判/384ページ
定価3,129円(本体2,980円)
ISBN 978-4-7741-5937-9
詳しくはこちら(出版社WEBサイト)
「独習Linux専科」サーバ構築/運用/管理

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes