IISのログは単調増加してローテートする機能がなく定期削除運用が必要

日々貯まり続けるログですが、単調増加するものについては、運用で削除する必要があります。そして、知らなかったのですが、IIS(Internet Infomation Service)のログは削除しない限り増え続けるそうです。

 

色々と情報がありました。IIS には出力したログを自動で削除する仕組みは備わっておらず、明示的に削除をしないと溜まり続け、ハードディスクを圧迫していくそうです。

 

IISのログファイルの出力が一定数しかたまらないようにするには?

https://teratail.com/questions/52855

 

以下は抜粋です。

 

IISにはログ1ファイルの容量を制限する機能はありますが、ログファイルの世代管理等を行う機能はついていないため、手動での削除、または世代管理を行うようなバッチを作成の上、タスクで管理する必要があります。

バッチを作成するのであれば、「バッチ」、「世代管理」で検索すれば、期待されているサイトを見つけられると思います。

 

これ今のwindows server 2019もそうなんですかね。デフォルトで機能が備わっていないのはつらいですね。

 

ログ保存先はデフォルト設定の場合Cドライブ配下となっていて、運用を開始して数年たった後Cドライブの容量枯渇が発生した場合は、IISのログでいっぱいになっているといったケースがよくあるそうです。なので、システム停止が発生しないように、Cドライブ以外にする、ディスクの増加を監視する、そして、定期的に削除する運用が必要です。

 

定期的に削除するという運用で参考になったサイトです。

https://www.projectgroup.info/tips/Windows/iis_0004.html

 

以下のコマンドを定期的に実行するタスクを設定しますというところ。実機で試していませんが、ログの削除を検討している人は参考になるかも。

 

==========================================
forfiles /P "<ログ出力フォルダ>" /M *.log /C "cmd /c if @isdir==FALSE del /s @path" /D -<日数>
==========================================

「C:\inetpub\logs\LogFiles\W3SVC1」ディレクトリに出力されているログを180日間保持する(180日より前のものは削除)
==========================================
例:forfiles /P "C:\inetpub\logs\LogFiles\W3SVC1" /M *.log /C "cmd /c if @isdir==FALSE del /s @path" /D -180
==========================================

 

IISをWEBサーバとして構築している場合は参考にしてみてください。