Debianのjournald.confを設定

ここ1年の間に、さくらのVPSで構築しているDebianのサーバが時々つながらなくなる不具合が起きる。

コンソールでログを見ると、下記のようなエラーが出ている

Image in a image block

journald.service周りを修正してみる

journaldのログファイルってどうしたらいいの?削除方法やログの出力設定方法を解説します | フルスタックエンジニアライフ
Linuxのディスク用量がピンチ! ディスクの用量を調べてみるとjournalというファイルがかなりの用量を食っていることに気づく! このjournalとはナニモノ?そしてその対処方法ってどうすればいいの? 今回はこのjournalについての解説と対応を詳しく説明していきます。 まずは /var/log 内の用量をチェックしてみましょう。 すると/var/log/journalという大きい用量があります。 journalとはsystemd環境におけるログ管理システムjournaldによって出力されたログ・ファイルです。 CentOS6まではsyslogベースのログ管理だったものを、CentOS7では新たなログ管理の仕組みとしてjournaldが採用されています。 journald は様々なサービスプロセスのログ標準出力先となっており、ログの内容はバイナリーファイル化されているので、テキストエディタでは見ることができず専用のjournalctlコマンドで内容を閲覧することができます。 journaldは、rsyslogが収集する標準的なシステムログに加えて、各種サービスのデーモンプロセスが標準出力/標準エラー出力に書き出すメッセージなど、より多くのログメッセージを収集するようになっています。さらには、それぞれのメッセージについて、「どのサービスのプロセスが出力したものか」などの追加情報も保存しています。 第56回 RHEL7/CentOS7のjournaldでシステムログを一元管理 (中井悦司) journaldではjournalctlというコマンドを使ってログの検索や操作を行います。 また、設定ファイルを変更することによってログ容量の出力を変更したりすることができます。 journaldでは既定のログ容量として、ログを保存するディレクトリがマウントされているファイルシステムの10%が割り当てられていますが、この容量の変更を設定ファイルに記述して反映させてみましょう。 journaldの設定ファイルを開きます。 最大容量を300MByteに指定します。 設定内容を反映するためにjournaldサービスを再起動します。 ログの削除はjournalctlコマンドを使って削除します。~~容量のみを残して削除したり~~日以前のログデータを削除したりする方法があります。 削除方法その1 指定容量を残して削除する ログの内容を300MByteだけ残して削除します。 削除方法その2 指定日以前のログを削除する 今現在から7日より以前のログを削除します。 journalログ現在容量の確認します。(300M残して削除した後) 300Mと指定したけど328.0M残ってます。(まぁ細かい端数はよいとする。。。) 以上。jounaldのログの設定方法、削除方法についてでした。 サーバーの容量に合わせて設定しておけば安心ですね。 第56回 RHEL7/CentOS7のjournaldでシステムログを一元管理(CTC教育サービス 研修/トレーニングサイト記事)
Favicon of the bookmark site
https://fullstacklife.net
Site image of the bookmark

現在のjournalファイル容量確認
> sudo journalctl --disk-usage
Archived and active journals take up 3.9G in the file system.

SystemMaxFileSize はジャーナルがディスク上で使う “1ファイルあたり” の最大サイズを決める項目で、デフォルト(未設定)は実質無制限です。


要は目的に合わせてチューニングすべき:
• ディスク容量が限られててログで埋めたくない→減らす(例:100M)
• 長期間の大量ログを保持したい→増やす(例:1G〜5G)

journald.conf修正

最大容量を100M, 3日より以前のログを削除する設定

SystemMaxFileSize=100M
MaxRetentionSec=3day
/etc/systemd/journald.conf

変更反映

$ sudo systemctl restart systemd-journald

$ sudo journalctl --disk-usage
Archived and active journals take up 64.0M in the file system.

もし、容量が減っていなければ手動で削除

$ sudo journalctl --vacuum-size=100M

$ sudo journalctl --vacuum-time=3d

エラーのログでは、journaldのCPU負荷がかかっているようなので、根本的な解決にはなっていないかもしれないが、再発したら再修正しようと思う。

さくらのVPSでは、もう10年以上も利用継続しているので、そろそろファイルシステムを確認したほうが良さそうかな?