サイトアイコン プログラマー(PG)・システムエンジニア(SE)になるための入門講座

インフラでいうログローテーションとは?初心者向けに仕組みや目的、設定の考え方をわかりやすく解説

インフラでいうログローテーションとは?初心者向けに仕組みや目的、設定の考え方をわかりやすく解説

結論
インフラでいうログローテーション(Log Rotation)とは、ログファイルが大きくなり過ぎないように、定期的または一定サイズごとに新しいログファイルへ切り替え、古いログを保存・削除する仕組みです。

ログローテーションを適切に設定することで、ディスク容量不足を防ぎ、必要なログを一定期間保存できます。

ログローテーションとは?

ログローテーションとは、アプリケーションやOSが出力するログファイルを定期的に切り替え、古いログを管理する運用方法です。

例えば、「app.log」というログファイルが毎日増え続ける場合、そのままでは数GBから数十GBになることがあります。ログローテーションを設定すると、毎日や毎週など決められたタイミングで「app.log」を「app.log.1」などの名前に変更し、新しい「app.log」を作成します。

つまり、「ログを定期的に整理し、保存期間や容量を管理する仕組み」がログローテーションです。

どんな場面で使われる?

ログローテーションは、ログを出力するほぼすべてのシステムで利用されています。

対象 ログの例
Linuxサーバー syslog、messages、secure
Webサーバー ApacheやNginxのアクセスログ・エラーログ
アプリケーション アプリケーションログ
データベース MySQLやPostgreSQLのログ
Windowsサーバー アプリケーションが出力するテキストログ

なぜ重要なのか

ログはシステムが稼働している限り増え続けます。

ログローテーションを設定していないと、ディスク容量を使い切り、アプリケーションが停止したり、OSが正常に動作しなくなったりする可能性があります。

また、古いログを整理することで、障害調査や監査で必要なログを探しやすくなるというメリットもあります。

ログローテーションの仕組み

  1. ログファイルが作成される
  2. 一定時間または一定サイズに達する
  3. 現在のログファイル名を変更する
  4. 新しいログファイルを作成する
  5. 古いログを圧縮・保存する
  6. 保存期間を過ぎたログを削除する

この処理は自動で実行されることが一般的です。

ログローテーションの方式

方式 特徴
日時で切り替える 毎日・毎週・毎月など決まった日時で実施
サイズで切り替える 100MBや1GBなど一定容量で実施
世代管理 保存するログの世代数を指定する
圧縮保存 古いログをZIPやgzipなどで圧縮する

多くの環境では、「毎日ローテーション」「30日保存」「古いログは圧縮」といった設定が採用されています。

実際のIT現場での利用例

Linuxサーバー

Linuxでは、logrotateを利用してシステムログやWebサーバーのログを自動管理することが一般的です。

Webサーバー

ApacheやNginxでは、アクセスログやエラーログを毎日ローテーションし、一定期間保存します。

クラウド環境

AWS CloudWatch LogsやAzure Monitorでは、ログの保存期間(保持期間)を設定し、自動的に古いログを削除できます。

業務でよくあるトラブル例

ディスク容量がいっぱいになった

主な原因

障害調査に必要なログが残っていない

主な原因

障害発生時の確認する順番

  1. ディスク容量を確認する
  2. ログファイルのサイズを確認する
  3. ログローテーション設定を確認する
  4. ローテーションが正常に実行されているか確認する
  5. 必要なログが残っているか確認する
  6. ログ出力元のサービスに異常がないか確認する

ログが急激に増えている場合は、アプリケーションの異常や繰り返し発生しているエラーが原因のこともあります。

GUIでの確認方法

Windows環境では、次のツールを利用できます。

LinuxではGUIを利用することもありますが、コマンドで確認することが一般的です。

CUI(コマンド)での確認方法

Linuxでは、次のようなコマンドがよく利用されます。

Windowsでは、PowerShellのGet-ChildItemやGet-Contentを利用してログファイルのサイズや内容を確認できます。

確認結果の見方

原因の切り分け

確認項目 確認内容
ログ設定 ローテーション設定に誤りはないか
ディスク 空き容量は十分か
アプリケーション 異常な量のログを出力していないか
OS ローテーション処理が正常に実行されているか
保存期間 要件に合った世代数・保存期間か

初心者がやりがちなミス

上司へ報告するポイント

エスカレーションするタイミング

応用知識

ログローテーションは、ログを削除することだけが目的ではありません。システムの監査やセキュリティ対策では、一定期間ログを保管することが求められる場合があります。そのため、保存期間や保存先は、運用ルールや法令、社内規程に合わせて設定することが重要です。また、近年ではログをサーバー内だけで管理するのではなく、SIEM(Security Information and Event Management)やクラウドのログ管理サービスへ転送し、一元管理するケースも増えています。

関連するIT用語

よくある質問(FAQ)

ログローテーションとは簡単に言うと何ですか?

ログファイルが大きくなり過ぎないように、定期的に新しいログへ切り替え、古いログを保存・削除する仕組みです。

ログローテーションはなぜ必要ですか?

ディスク容量不足を防ぎ、障害調査や監査に必要なログを適切な期間保存するためです。

ログはすべて削除しても問題ありませんか?

いいえ。障害調査やセキュリティインシデントの調査で過去のログが必要になることがあります。保存期間や社内ルールを確認したうえで管理しましょう。

Windowsでもログローテーションはありますか?

Windowsのイベントログは最大サイズや保持方法を設定できます。また、アプリケーションが出力するテキストログについては、アプリケーション側やログ管理ツールでログローテーションを設定することが一般的です。

まとめ

ログローテーションとは、ログファイルを定期的または一定サイズごとに切り替え、古いログを適切に保存・削除する仕組みです。ディスク容量不足を防ぐだけでなく、障害調査や監査に必要なログを適切に管理するためにも重要な運用です。

また、「ログは残すだけでなく適切に管理することが重要」「保存期間や世代数は業務要件に合わせて設定する」「ログの急増はシステム障害の兆候である可能性もある」という点を理解しておくと、運用保守や社内SEの業務で役立ちます。定期的にログローテーションの設定やディスク容量を確認し、安定したシステム運用を目指しましょう。

モバイルバージョンを終了