作成開始 : 平成20年02月23日(土) 最終更新日 : 平成20年02月23日(土)

Windows Server 2003 のイベント・ログを収集する。


お客様宅のシステムでサーバーのイベントにエラーや警告が頻発している。
あまりにも多くのエラーや警告なので一覧にして発生の始まりや経過、イベントIDなどを分析する必要があった。
イベントの内容を一々手で集計していたのではいつ終わるかわからないし、肝心の部分が無くなってしまうことも考えられた。
そこで、ログを収集する方法が無いか検索してみた。
そうしたら、次のようにすればテキストファイルとして出力することが可能であることを発見した。
実際に実行した手順を以下に記載する。

なお、これは今のところ Windows XP、Windows Server 2003 でできる方法らしい。


1.eventquery によるログ収集

eventquery.vbsというスクリプトをコマンド・プロンプトから実行する。
eventquery.vbsというスクリプト・ファイルは、%systemroot%\system32フォルダに用意されている。このファイルはVBScriptファイルなので、通常は、cscript.exeの引数として起動する。

Ex : cscript c:\windows\system32\eventquery.vbs

しかし、この方法だと長いし面倒なので、cscript //h:cscript //s を実行しておくとよい。以後は、単にeventquery と入力するだけで、実行することができる。

これをしないで eventquery とだけすると次のようなのを表示して実行はまだできない。
なので、cscript //h:cscript //s とすると下のようになり以後は vbスクリプト名だけでスクリプト実行が可能なようだ。
eventquery /? とすると使い方を表示してくれる。
eventquery だけだと現在のイベント・ログの内容がすべて表示される。
[例]
eventquery /v にすると詳細情報付きで出力できる。
しかし、このままだと全てのイベントが記録された巨大なファイルになってしまうので引数にイベント名を指定するとよい。

Ex : eventquery /v /l system

引数は、「/l system」や「/l application」「/l security」「/l "dns server"」「/l "directory service"」などである。同時に複数を指定することも可能である。

私はイベント情報をテキストファイルで出力し、Excelに取り込んで分析したかったので次のようにしてファイルに出力した。

Ex : eventquery /v /l system > c:\tmp\system.log

コマンド実行をリダイレクトして c:\tmp\system.log として保存する。

2.Excelへの取り込みとチェック

Excelを起動し保存したテキストファイルを読み込みます。
すると取り込みのウイザードになります。

 ↑
「次へ」をクリックします。

 ↑
ファイルの上は見出しなどなので、分析したい行の区切りの位置までスライドして矢印で区切ります。
この矢印の位置が1つのセルになります。

 ↑
ここで列のデータ形式を指定します。「完了」をクリックします。
system.logの場合、種類には「エラー」「警告」だけでなくWindows Updateの情報なんかも含まれるので、ここは「文字列」にしておかないと後のマクロで「形式が違います」のエラーになってしまいます。

 ↑
こんなふうに取り込まれます。この後はExcelのブックとして保存します。
次に「エラー」と「警告」を判定し「エラー」なら赤、「警告」なら青の文字になるマクロを作ってみました。
自在にマクロ使える人には笑えてしまうかもしれませんが、これでもまぁ役には立ちました。
そして、マクロ実行すると出来上がりはこんな感じです。
とりあえず、これでも分析には役立ちました。

戻る

サイトトップへ