WindowsServerのイベントログをテキストに出力(「説明が見つかりませんでした。」)とならぬ方法その1

WindowsServerを複数管理してると、各サーバーの共通の管理手段として、最終的に行きつくのは、

  • 各サーバーのドライブの空きディスク容量
  • イベントビュアーのチェック
  • バックアップが正常に行われたか?

あたりではないかと思う。
この中で特にイベントビューアーについては、
『システム』『Application』 『セキュリティ』の 各Windowsログの、「重大」「警告」「エラー」のみフィルタリング表示して、致命的なものが無いか探す
あたりがスタンダードだと思う。

イベントビュアー
イベントビュアー
イベントビュアーのフィルター
イベントビュアーのフィルター


ただ、サーバーが1~2台ならいざ知らず、仮想化されたものまで含めて、何十台もチェックするとなると、できるだけ簡単に済ませたい。
ZabbixServerを立てて、 WindowsServerにエージェントを入れ、イベントの収集までして一元管理といきたいところだが、使う側のレベルが低く、Zabbixのダッシュボードの使い方の敷居すら超えられないとなると、頭を抱える事になる。
となると次に考えるのは、サーバーのイベントビュアーを、リモートで見る事となる。

イベントビュアー(ローカル)の上で右クリックすると、「別のコンピュータへ接続」という選択肢が現れ、それを選択してサーバー名を入力すると、サーバーのイベントビューワーの内容が、クライアントPCからでも見られる。(適切な権限があればだけど…)

別のPCのイベントビュアーを見る
別のコンピュータへ接続

アプリを切り替えなくて良いので、これでチェックが多少は楽になるが、実は致命的な問題がある…。
サーバーにしかインストールされていないアプリのイベントが「説明が見つかりませんでした」というメッセージで、見られないという…(TT)

ローカルPCでの表示
ローカルでの表示
リモートでの表示(説明が見つかりません)
リモートでの表示


アプリ特有のエラーはWindows標準のエラーメッセージには無いので、アプリ自身がそのエラー情報をDLLとかに持っていて、サーバーのローカルのイベントビュアーはそのアプリが入っているのでエラー内容を参照できるが、リモートだと不可という…。
結局、リモートデスクトップで各サーバーにちまちまログオンして、イベントビュアーを参照するという、地道な作業に戻る事に…。

そこでまた考えた。
サーバーのイベントビュアーをリモートで引っこ抜くツールを作れば、便利じゃないか?
しかもその抜いたデータを共有フォルダにでも置けば、一元で参照できるし…。
ググってみると「wmic」の「ntevent」コマンドを使えば、イケると思い、試してみたところ、
「RPC サーバーを利用できません。」
あれ?
wmicコマンドで、リモートサーバーを参照するには、ファイアウォールの、RPCの使用するポートを開ける必要があった。
ファイアウォールを止めて、実験してみると、

コマンド

wmic /Node:192.168.1.1 ntevent where "(logfile='application' and timegenerated >= '20220411' and EventType='2')" list /format:CSV

結果

Node,Category,CategoryString,ComputerName,Data,EventCode,EventIdentifier,EventType,InsertionStrings,Logfile,Message,RecordNumber,SourceName,TimeGenerated,TimeWritten,Type,User
192.168.1.2,,UserPC.Dendoclub.com,,1002,2147484650,2,{STI;BrtSTI: [2022/04/11 12:58:32.883]: [00002572]: SendSKeySettingToDevice:: Snmp Load Error[-1] To[192.168.1.204]
},Application,STI BrtSTI: [2022/04/11 12:58:32.883]: [00002572]: SendSKeySettingToDevice:: Snmp Load Error[-1] To[192.168.1.204]
,1611337,Brother BrLog,20220411035832.000000-000,20220411035832.000000-000,警告,

おおっ!!
ちゃんと出た!!
しかも「説明が見つかりませんでした。」になっていない!!
ただなぁ…
RPC のポートを開けっ放しなのは、セキュリティ上いただけないなぁ…
しかも、 「wmic」 はもう非推奨になっていて、PowerShellが推奨になってる………

よし、どうせ各サーバーの空きディスク容量も調べたいし、各サーバー上でPowerShell動かして、各ドライブ容量とイベントを、共有フォルダに書き出すようにしよう。
それならファイアウォール弄らなくて済むし、ファイルがあるかどうかでサーバーの動作確認にもなるし!!

続く

コメントを残す

メールアドレスが公開されることはありません。