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と併用することで、柔軟なログ管理が可能になります。正しいコマンドの使い方を理解し、効果的にログを管理することで、システムのトラブルシューティングや監視を効率的に行うことができます。