Advanced Ubuntu Administration and Management Best Practices
Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
Ubuntu 26.04 のログ確認では、systemd journal を扱う journald の状態を理解しておくと、再起動前後のログ、サービス単位のログ、容量制御を安定して扱えます。journalctl はログを見るコマンドで、保存方針は systemd-journald 側の設定で管理します。
この記事では、journald の永続化、容量上限、保持期間、圧縮、転送、ログ確認、設定反映を扱います。単なるログ閲覧ではなく、サーバー運用で後から追えるログを残すための基本設定です。
journald で決めること
- ログを再起動後も残すかどうか。
- journal がディスクを使いすぎないように上限を決めること。
- 古いログをどの程度保持するか。
/var/log/syslogなどへ転送するかどうか。- 障害調査で必要な期間のログを取得できるかどうか。
現在の状態を確認する
まず journald のサービス状態と journal の使用量を確認します。
systemctl status systemd-journald.service --no-pager
journalctl --disk-usage
journalctl --list-boots今回起動中のログを確認する
通常の障害調査では、今回起動中のログから確認します。エラーだけを見る場合は優先度で絞ります。
journalctl -b --no-pager
journalctl -b -p err --no-pager
journalctl -b -p warning --no-pagerサービス単位で確認する
対象サービスが分かっている場合は unit 名で絞ります。直近だけ見る、追跡表示する、今回起動中に限定する、といった使い分けができます。
journalctl -u ssh.service -b --no-pager
journalctl -u ssh.service -n 100 --no-pager
journalctl -u ssh.service -f永続ログを有効にする
再起動後も過去の journal を確認したい場合は、Storage=persistent を設定します。設定は drop-in ファイルとして分けておくと、既定ファイルを直接変更せずに管理できます。
sudo mkdir -p /etc/systemd/journald.conf.d
sudo tee /etc/systemd/journald.conf.d/10-persistent.conf >/dev/null <<'EOF'
[Journal]
Storage=persistent
EOF
sudo systemctl restart systemd-journald.service容量上限を設定する
journal がディスクを圧迫しないように、システム全体とファイル単位の上限を設定します。値はサーバーの用途とディスク容量に合わせて決めます。
sudo tee /etc/systemd/journald.conf.d/20-size.conf >/dev/null <<'EOF'
[Journal]
SystemMaxUse=1G
SystemKeepFree=2G
SystemMaxFileSize=128M
EOF
sudo systemctl restart systemd-journald.service
journalctl --disk-usage保持期間を設定する
容量だけでなく期間で古いログを削除したい場合は MaxRetentionSec を指定します。
sudo tee /etc/systemd/journald.conf.d/30-retention.conf >/dev/null <<'EOF'
[Journal]
MaxRetentionSec=30day
EOF
sudo systemctl restart systemd-journald.service圧縮と転送を設定する
journal ファイルの圧縮や syslog への転送方針も journald 側で決められます。rsyslog と併用するサーバーでは転送設定も確認します。
sudo tee /etc/systemd/journald.conf.d/40-forward.conf >/dev/null <<'EOF'
[Journal]
Compress=yes
ForwardToSyslog=yes
EOF
sudo systemctl restart systemd-journald.service設定内容を確認する
drop-in を含めた実際の設定を確認します。設定ファイルを追加した後は、サービス再起動後に状態とログを確認します。
systemd-analyze cat-config systemd/journald.conf
systemctl status systemd-journald.service --no-pager
journalctl -u systemd-journald.service -b --no-pager古いログを手動で削除する
一時的に容量を減らしたい場合は、保持条件を指定して vacuum を実行します。これは現在の設定とは別に、手動で古い journal を削除する操作です。
sudo journalctl --vacuum-time=14d
sudo journalctl --vacuum-size=500M
journalctl --disk-usage前回起動のログを確認する
永続ログが有効な場合、再起動前のログを boot ID で追えます。起動失敗や再起動前の異常を確認する時に使います。
journalctl --list-boots
journalctl -b -1 --no-pager
journalctl -b -1 -p err --no-pager時刻範囲で確認する
監視通知や作業時刻が分かっている場合は、時刻範囲でログを絞ります。
journalctl --since "2026-07-05 10:00:00" --until "2026-07-05 10:30:00" --no-pager
journalctl -u ssh.service --since "1 hour ago" --no-pagerカーネルログを確認する
NIC、ディスク、ファイルシステム、OOM、ドライバーまわりはカーネルログを確認します。
journalctl -k -b --no-pager
journalctl -k -b -p warning --no-pager確認項目
journalctl --list-bootsで過去起動のログが見えるか。journalctl --disk-usageで想定範囲の容量に収まっているか。systemd-analyze cat-config systemd/journald.confで drop-in が反映されているか。- 必要なサービスのログを
journalctl -uで追えるか。 - syslog へ転送する設計の場合、
/var/log側にもログが出ているか。
まとめ
Ubuntu 26.04 の journald 設定では、ログを残す期間、使用できる容量、syslog への転送、確認方法を合わせて決めます。Storage=persistent と容量上限を設定し、journalctl --list-boots、journalctl --disk-usage、systemd-analyze cat-config で反映状態を確認しておくと、障害発生後に必要なログを追いやすくなります。

