Windowsのイベントログを自動アーカイブで長期間保存するTech TIPS

Windowsのイベント・ログはこれまで、満杯になると古いものから上書きしたり、記録するのを停止したりしていた。Windows Vista以降には、そんなときに自動的にアーカイブして保存しておく機能が追加された。

» 2009年07月31日 05時00分 公開
[打越浩幸デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows Vista/Windows Server 2008



解説

 イベント・ログはWindows OSにおける重要な管理機能の1つである。記録されたログを確認することにより、システムの動作状況を把握したり、エラーなどの原因を調査したりできる。

 イベント・ログに記録できるログ数には上限がある(正確には、イベント・ログのファイル・サイズに上限が設けられている。記録されるイベントの情報量によって、最大記録可能件数は変わる)。イベント・ログがいっぱいになった場合は、Windows Server 2003以前のWindows OSでは「古いイベントから上書きして記録する」か、「それ以上記録することを止め、古いログが上書きされることを避ける」という選択肢しかなかった。だがイベント・ログはトラブル・シューティングのための重要な情報源であり、上書きしたり、記録せず破棄する、という選択は望ましくない。そこで、なるべく多くのログを残すため、従来はイベント・ログ・ファイルのサイズを拡大する(そして上書きモードに設定する)という方法がよく使われていた。

 Windows Vista以降のOS(Windows Server 2008、Windows 7)では、このイベント・ログ・ファイルの管理方法に新しいオプションが1つ加わり、ファイルがいっぱいになったら、そのファイルを「アーカイブ」して保存しておき、元のイベント・ログ・ファイルは空にして最初からまた記録する、という機能が用意された。UNIXやLinuxなどにおける、「ログ・ファイルのローテート」のような機能と考えればよいだろう(例:log→log.1、log.1→log.2、……のようにファイル名を変えて、古いログ・ファイルを同時にいくつか保存しておく機能)。アーカイブされたログは、必要ならばほかのシステムにバックアップを取ってから消去すれば、ディスク領域を圧迫することなく、長期間に渡るログを保存できる。本TIPSではこの方法について解説する。アーカイブされたイベント・ログ・ファイルは、イベント・ビューアの[操作]−[保存されたログを開く]メニューで読み出せば内容を確認できる。

操作方法

 Windows VistaやWindows Server 2008(およびそれ以降のOS)でイベント・ログ・ファイルを自動的にアーカイブさせるには、「システム」や「アプリケーション」などのログ・ファイルごとに、[プロパティ]で設定を変更するだけである。

 まず[管理ツール]の[イベント ビューア]を開き、例えば「システム」ログをクリックして、ポップアップ・メニューから[プロパティ]を選択する。

ログ・ファイルのプロパティの変更 ログ・ファイルのプロパティの変更
Windows Vista以降のOSでは、ログ・ファイルがいっぱいになったときに、自動的にアーカイブする機能が用意された。
  (1)ログのアーカイブは、ログごとに設定する。ここでは、システム・ログを自動アーカイブさせてみる。[システム]を選んで右クリックする。
  (2)[プロパティ]を選択する。

 プロパティ・ウィンドウが表示されたら、[イベントを上書きしないでログをアーカイブする]を選択する。なお、最大ログ・ファイル・サイズも可能ならば大きく設定しておくとよいだろう。

ログ・ファイルの自動アーカイブの設定 ログ・ファイルの自動アーカイブの設定
デフォルトではいっぱいになったら古いものから上書きするモードになっているので、これを変更する。
  (1)ログ・ファイルのフルパス。ログ・ファイルは.evtxという新しいフォーマットのファイルになっている。
  (2)現在のログ・ファイルのサイズ。ログが増えるにつれ、サイズが拡大する。
  (3)最大ログ・ファイル・サイズ。これはWindows Vista Ultimate Editionのシステム・ログの例で、デフォルトでは最大20Mbytesに制限されている。
  (4)デフォルトではこれが選択されている。ログがいっぱいになると、古いログから順に上書きされる。
  (5)これを選択すると、ログ・ファイルを自動的にアーカイブするモードになる。
  (6)これを選択すると、ログ・ファイルがいっぱいになったときに、ログの記録が停止する。新しいイベントが発生してもログが記録されないので、現在のシステムの情報を正しく把握できなくなる可能性がある。
  (7)これをクリックすると、ログ・ファイルの内容がすべて消去され、((6)を選んだ場合でも)また記録できるようになる。
  (8)これをクリックすると、設定が完了する。

 設定は以上である。ログ・ファイルがいっぱいになると、例えばシステム・ログ・ファイルなら、元のファイル「System.evtx」が「Archive-System-YYYY-MM-DD-HH-MM-SS-NNN.evt」といった名前に変更され、アーカイブされる(YYYYやMMなどは日付情報。ファイルは消されることなく、ずっと残っている)。ときどきシステムのログ・フォルダを確認し、古いアーカイブは消去するなり、バックアップするなどして、管理すればよい(古いアーカイブが不要なら削除しないと、最終的にはディスク領域を圧迫するので注意)。以下は、アーカイブされたシステム・ログの例である。システム・ログの保存場所は、ログのプロパティの画面(上の(1))で確認できる。

アーカイブされたログ・ファイルの例 アーカイブされたログ・ファイルの例
これは自動的にアーカイブされたシステム・ログ・ファイルの例。ここでは最大ログ・ファイル・サイズを2Mbytesに制限して、eventcreateコマンドで大量のログを記録させてみた(このコマンドについてはTIPS「イベント・ログに任意の文字列を出力する」参照)。2Mbytesに達した時点でSsytem.evtxファイルが順にアーカイブされている。
  (1)Systemイベント・ログ・ファイルのみを表示させている(このフォルダには、ほかにも多数のログ・ファイルが保存されている)。
  (2)アーカイブされたログ・ファイル。このログ・ファイルは、イベント・ビューアの[操作]−[保存されたログを開く]で内容を確認できる。
  (3)現在アクティブなシステム・ログ・ファイル。
  (4)アーカイブされたログ・ファイルは、サイズが上限いっぱいになっている。

●コマンド・プロンプト上での操作

 以上の設定をコマンド・プロンプト上から行うには、イベント・ログを操作するコマンドwevtutil.exeを使って、次のようにする。

wevtutil sl System  /rt:true /ab:true



 「wevtutil sl」は、イベント・ログの設定を行うコマンド、「System」はシステム・ログを対象とするための指示(ほかに「Application」や「Security」などがある。「wevtutil el」でログ名のリストが列挙できる)、「/rt:true」はログを保持する(いっぱいになっても上書きしない)、「/ab:true」は自動バックアップをオンにする、という意味である。現在の設定は「wevtutil gl System」のようにすれば取得できる。「retention」と「autoBackup」が両方とも「true」なら、自動的なアーカイブが有効になっている。

C:\Windows\system32>wevtutil gl System ……現在の設定の取得
name: System
enabled: true
……(中略)……
logging:
  logFileName: %SystemRoot%\System32\Winevt\Logs\System.evtx
  retention: true
  autoBackup: true
  maxSize: 67108864
publishing:

C:\Windows\system32>



「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。