systemdでlogrotateする方法は?


11

ユニットファイルでsystemdを使用してノードアプリを実行しています。アプリのログはを使用して表示できますjournalctl -u example.comが、ログはある時点でカットされ、履歴を消去します(これはデバッグに必要です)。

どのように私は私のアプリのログがで格納されますようにsystemdでログローテーション設定しないexample.com.log.1example.com.log.2私は私のアプリの歴史を照会することができますので、など?

これは私のユニットファイルです:

ExecStart=/usr/bin/node keystone.js
#Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=example.com
User=user
Group=user
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target

1
systemdのバージョンと、OSおよびバージョンを含めてください。
Mark Stosberg、2017

1
man journald.confsystemdジャーナルのディスク容量を制御するオプションを確認してください。それでも質問がある場合は、のコンテンツを投稿してください/etc/systemd/journald.conf
Mark Stosberg、2017

回答:


6

ストレージの増加

ディスクに保存している場合は、SystemMaxUseやを変更することで、使用する容量を増やすことができますSystemKeepFree。より多くのスペースがあると、より多くのエントリを格納できます。

デフォルトでは、最大使用制限(SystemMaxUse)はファイルシステムの10%であり、最小空き容量(SystemKeepFree)値は15%です-どちらも4Gに制限されています。

ジャーナルローテーション

ジャーナルは、SystemMaxFileSize値に達したときに自動的にローテーションする必要があり、ジャーナルの数はによって制御されSystemMaxFilesます。時間ベースのローテーションが必要な場合は、MaxFileSecを設定して、エントリが単一のジャーナルに保存される最大時間を設定できます。

保管場所/タイプに関する注意

journaldでは、ジャーナルエントリをメモリ(Storage=volatile)またはディスク(Storage=persistent)のどちらに保存するかを選択できます。上記はディスクにジャーナルを保存していることを前提としています-そうでない場合、上記の変数で「システム」を「ランタイム」に置き換える必要があります。

詳細については、を参照してくださいman journald.conf

代替-ジャーナルエントリの受け渡し

すでに従来のSYSLOGデーモンに精通している場合は、ForwardToSyslogオプションを設定してジャーナルイベントを渡す(メッセージをすぐに転送する)か、syslogデーモンをジャーナルクライアントのように動作させて、ログ自体をフェッチすることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.