地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【入門】Journal

この記事は Linux Advent Calendar 2023 の1日目の記事です!

journalとは

journalとはsystemd環境におけるログ管理システムjournaldによって出力されたログファイルを指します。journalとういう言葉自体は訳すと「雑誌,学術誌,会報,新聞」らしいです。systemd 環境におけるログ管理の仕組みということもありソースコード自体はsystemd/systemd配下にありました。

github.com

正式名称は systemd-journald.serviceで以下のようにsystemctlから認識できるサービスとして稼働しています。

systemctl status systemd-journald.service
● systemd-journald.service - Journal Service
   Loaded: loaded (/usr/lib/systemd/system/systemd-journald.service; static; vendor preset: disabled)
   Active: active (running) since Tue 2019-11-12 15:08:55 JST; 4 years 0 months ago
     Docs: man:systemd-journald.service(8)
           man:journald.conf(5)
 Main PID: 20818 (systemd-journal)
   Status: "Processing requests..."
   CGroup: /system.slice/systemd-journald.service
           └─20818 /usr/lib/systemd/systemd-journald

どういう仕組みで管理しているのか

journaldは、systemdに組み込まれたログ管理システムで、Linuxシステムの様々なイベントやメッセージを収集し、効率的に管理するための仕組みを提供しています。journaldの主な特徴と管理メカニズムは以下の通りです:

  • バイナリログ形式:journaldはログをバイナリ形式で保存します。これにより、テキストベースのファイルよりも高速にアクセスでき、ログの整合性とセキュリティが向上します。
  • 中央集権的なログ収集:journaldはシステムの全てのログを集めます。これには、カーネルのメッセージ、システムサービスのログ、アプリケーションのログ、および標準出力や標準エラー出力に書き出されたメッセージが含まれます。
  • メタデータの保存:各ログエントリには、タイムスタンプ、プロセスID、ユーザーID、ブートID、ホスト名など、豊富なメタデータが含まれています。これにより、後でログを分析しやすくなります。
  • ログの圧縮とローテーション:journaldはディスクスペースの節約と効率的なログ管理のために、ログを圧縮し、設定に基づいて古いログを自動的に削除します。
  • マルチレベルのログフィルタリング:journaldはログの重要度に基づいてフィルタリングすることができます。これにより、必要な情報に素早くアクセスし、重要度の低い情報を無視することが可能です。
  • セキュリティと監査のサポート:journaldはセキュリティと監査に関するログも管理します。これにより、システムのセキュリティに関する詳細な情報を提供します。
  • レート制限:journaldは、過剰なログ出力によるリソースの浪費を防ぐために、ログのレート制限を行うことができます。

rsyslogとの並行運用

CentOS7や環境には journaldの他、CentOS7より前から使用されている rsyslog も並行して稼働しています/var/log/messages などはrsyslogにFowradしその他のプロセスjournaldが管理するということが行われています。/etc/systemd/journald.confあたりで設定をすることでrsyslogとの連携などについても設定することができます。Amazon Linux 2023だとこのrsyslogがインストールされていなくjournalのみで/var/log/messagesなどがなくjournalctlで各種のログを確認することになります。(インストールすれば使えますが)

www.nedia.ne.jp

どのログをどのファイルに出すかはrsyslogの設定ファイル/etc/rsyslog.confに記載していきます。

参考

www.school.ctc-g.co.jp

qiita.com

qiita.com

thinkit.co.jp