systemdサービスのログ設定

StandardOutput、StandardError、systemd journalを使用してsystemdサービスのログを設定します。journalctlフィルタリング、ログローテーション、外部システムへの転送について学びます。

Operational Guides

詳細な説明

systemd Journalによる一元ログ

systemdはjournalと呼ばれるビルトインログシステムを提供します。サービスは出力をjournalにルーティングし、一元的で構造化されたクエリ可能なログ管理を実現できます。

基本的なログ設定

[Service]
StandardOutput=journal
StandardError=journal
SyslogIdentifier=myapp

journalctlでのログクエリ

journalctl -u myapp.service          # すべてのログ
journalctl -u myapp.service -f       # ライブフォロー
journalctl -u myapp.service -p err   # エラーのみ
journalctl -u myapp.service --since today  # 今日のログ

Journalストレージとローテーション

/etc/systemd/journald.confで設定:

[Journal]
SystemMaxUse=500M
MaxRetentionSec=1month

ユースケース

一元ログ収集、時間ベースのログクエリ、重要度フィルタリング、LokiやElasticsearchなどのログ管理ツールとの統合が必要なプロダクションサービスの包括的なログを設定する場合に使用します。

試してみる — Systemd Unit File Generator

フルツールを開く