📜

Ubuntu 22.04でのsyslog肥大化問題の解消方法

2023/11/05に公開

はじめに

Ubuntu 22.04を使用している際、突如として画面が反応しなくなる問題に直面しました。仕方なくシステムを強制終了し、再起動するとディスク容量不足の警告ポップアップが表示されました。この警告を受けて、ディスクの容量の内訳を調べたところ、/var/log ディレクトリ内の syslog および syslog.1 ファイルが非常に大きくなっていて、合計で780GBものディスクスペースを占めていることが判明しました。これらのログファイルの肥大化が、ディスク容量不足という問題を引き起こし、結果としてシステムの反応が停止する原因となった可能性があります。

この記事では、ログファイルの管理と削除に関する基本的な手順を紹介し、Ubuntu 22.04でのログファイル肥大化問題を解決する方法を提供します。

ログファイルについて

syslogとsyslog.1は、システムやアプリケーションによって生成されるログメッセージを保持するログファイルです。syslogは現在のログメッセージを、前回のログローテーション時にアーカイブされたログメッセージを保持しています。これにより、システム管理者は現在および過去のログデータにアクセスでき、問題の診断やシステムの監視を効果的に行うことができます。

通常、Ubuntu システムは logrotate というツールを使用してログファイルを自動的に管理します。このツールは定期的にログファイルをローテートし、古いログファイルをアーカイブまたは削除して、ディスクスペースを節約します。

今回の場合、rsyslog の logrotate 設定は適切に設定されていましたが、それでもログファイルの肥大化問題が発生しました。これは、ログの生成率が高かったため、または他の未知の要因により、logrotateの週次ローテーションが追いつかなかった可能性があります。

解決手順

  1. ログファイルの名前を変更:
    まず、肥大化している既存のログファイルの名前を変更します。これにより、新しいログファイルが作成される準備が整います。

    sudo mv /var/log/syslog /var/log/syslog.old
    sudo mv /var/log/syslog.1 /var/log/syslog.1.old
    
  2. 関連するデーモンを再起動:
    次に、syslogのデータを書き込むデーモンを再起動します。通常はrsyslogまたはsyslog-ngというデーモンが使用されています。再起動することで、新しいログファイルが作成されます。

    sudo systemctl restart rsyslog
    
  3. 古いログファイルを削除:
    この時点で、古いログファイルはもはや使用されていないため、安全に削除することができます。

    sudo rm /var/log/syslog.old
    sudo rm /var/log/syslog.1.old
    

注意: 単純にrmコマンドを使ってログファイルを削除することは推奨されません。これは、デーモンがまだログファイルを使用している可能性があり、そのためにシステム上で未解決の問題を引き起こす可能性があるからです。詳細な理由については、こちらの参考記事をご参照ください。

まとめ

以上の手順により、Ubuntu 22.04のログファイル肥大化問題を解消し、ディスクスペースを回復することができます。この問題が再発しないように、ログのローテーション設定やログレベルの調整を検討することも重要です。

参考記事

https://blog.hde.co.jp/entry/2014/11/28/171114

Discussion