
【Linux】systemd-journald
systemd-journaldは、systemdを採用しているLinuxで標準的に使われているログ管理サービスです。このサービスは、システムとサービスのログを収集し、独自のデータベースに保存します。長い名称のため、一般的にはjournaldと表記されます。

systemd-journaldの特徴
| 項目 | 説明 |
|---|---|
| 標準的なログ管理サービス | systemdを採用しているLinuxで標準的に使われている |
| 通常の表記 | systemd-journaldの表記が長いため、journaldと表記されることが多い |
| rsyslogとの併用 | journaldが受け取った情報をrsyslogdへ転送できる |
| ログの保存 | journaldが収集したログは独自のデータベースに保存 |
| データベースの保存場所 | /var/log/journal(persistent storage)または /run/log/journal(volatile storage) |
| データベース形式 | バイナリ形式で保存されているため、catコマンドでは閲覧できない |
systemd-journaldの仕組み

処理の流れ
- ログの受信:
journaldは、システムおよびアプリケーションからログを受信します。ログは、標準入力、syslogプロトコル、カーネルからのkmsgメッセージなど、さまざまなソースから受け取ります。 - ログの格納:受信したログは、バイナリ形式のデータベースに格納されます。このデータベースは、デフォルトでは
/run/log/journalに保存されますが、永続的なストレージが設定されている場合は/var/log/journalに保存されます。 - ログの転送:必要に応じて、
journaldは受信したログを他のログ管理サービス(例:rsyslogd)に転送することができます。
systemd-journaldのデータフロー
[ログソース] -> [journald] -> [バイナリデータベース]
-> [必要に応じて rsyslogd へ転送]
journalctlコマンド
journaldが収集したログにアクセスするためには、journalctlコマンドを使用します。このコマンドを使うことで、バイナリ形式で保存されたログを人間が読める形式で表示することができます。
まとめ
systemd-journaldは、システムログを収集・管理するための強力なツールです。ログはバイナリ形式で保存され、journalctlコマンドを使用してアクセス・表示することができます。rsyslogと併用することで、柔軟なログ管理が可能になります。正しいコマンドの使い方を理解し、効果的にログを管理することで、システムのトラブルシューティングや監視を効率的に行うことができます。
