developer's diary

最近はc#のエントリが多いです

Windows2003でイベントログを使用したファイルサーバのアクセスログとログローテーション

Windowsのイベントログに関する設計上の問題
http://technet.microsoft.com/ja-jp/library/cc163042.aspx

イベント ログの最大サイズ

このポリシー設定は、アプリケーション、セキュリティ、およびシステム イベント ログの最大サイズを指定します。グループ ポリシー オブジェクト エディタと Microsoft 管理コンソール (MMC) イベント ビューア スナップインのどちらのユーザー インターフェイス (UI) でも 4 GB までの値を入力できますが、特定の要素によって、これらのログの有効な最大サイズはもっと小さくなります。

イベント ログ サービスはメモリ マップ ファイルを使用し、Eventlog.dll として Services.exe プロセス下のサービスの 1 つとして実行されます。ファイルがこの方法でロードされる場合は、ファイル全体がコンピュータ メモリにロードされます。Microsoft Windows® の現在のすべてのバージョンにおいて、プロセスでは合計で 1 GB を超えるメモリ マップ ファイルを使用できないという、メモリ マップ ファイルに関する構造上の制限があります。この制限は、Services.exe プロセス下で実行されるすべてのサービスで 1 GB のプールを共有する必要があることを意味します。メモリは連続した 64 KB のポーションとして割り当てられます。コンピュータでメモリ マップ ファイルの拡張に必要な追加メモリが割り当てられない場合は、問題が発生します。

イベント ログ サービスの場合、メモリ マップ ファイルを使用すると、[イベント ログの最大サイズ] 設定で構成されているメモリ サイズにかかわらず、コンピュータにメモリ マップ ファイルに使用できるメモリがなければ、ログ イベントがログに記録されなくなる可能性があります。エラー メッセージは表示されず、イベントは単にイベント ログに表示されなくなるか、または記録済みの他のイベントを上書きします。メモリ内でのログ ファイルの断片化も、ビジー状態のコンピュータ上で重要なパフォーマンス上の問題を引き起こす原因となることがわかっています。

このような制限があるため、メモリ マップ ファイルの理論上の制限とは異なり、また、イベント ビューアとグループ ポリシー オブジェクト エディタの UI では 1 つのログ当たり 4 GB まで指定できるにもかかわらず、ほとんどのサーバーにおける実質的な制限は約 300 MB であることが実証されています。つまり、すべてのイベント ログの合計の制限が 300 MB となります。Windows XP、メンバ サーバー、およびスタンドアロン サーバー上では、アプリケーション、セキュリティ、およびシステム イベント ログを組み合わせたサイズが 300 MB を超えてはなりません。ドメイン コントローラ上では、これら 3 つのログを組み合わせたサイズに、Active Directory® ディレクトリ サービス、DNS、およびレプリケーション ログを追加したものが、300 MB を超えることはできません。

このような制限は一部の Microsoft ユーザーにとって問題となっていますが、システム イベントが記録される方法を根本的に変更しない限り、この制限を排除できません。Microsoft では、イベント ログ システムを書き換えて、Windows の次のバージョンでこれらの問題を解決する予定です。

現状Windows2003サーバのイベントログを保持する場合、合計は約300Mbまで。

その問題に対する対応方法をメモしておく。

イベントログのローテーションについて

にて鈴木裕子さんが回答しているログローテーションを用いたやりかた。

linuxで言うlogrotateかと思いきや、レジストリでした。。。

1.レジストリを変更

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security
上記のレジストリキーについて、下記のように変更

  1. AutoBackupLogFilesを 1 に変更
  2. Filesをc:\var\log\SecEvent.Evtに変更

2.イベントログのプロパティを変更

セキュリティログファイルのプロファイルを開き、
設定を「イベントを上書きしない」に変更
ログファイルの最大サイズを200Mに修正

3.Windowsの再起動

以上。ここに書いてあることを実行してOSが不安定になっても責任はとれませんのであしからず。