- - PR -
クライアントのイベントログ取得について
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-08-02 17:23
クライアントのイベントログ取得についてご質問させていただきます。
【開発環境】 VS2005 C# 【実行対象】 Windows2000、WindowsXP 【やりたいこと】 クライアントのイベントログを効率的に収集したい。 【やったこと】 以下のようなコードを記述して、イベントログを取得できています。 現在はリストボックス(lstResults)に出力していますが、 最終的にはデータベースもしくはテキストに出力します。
最初はTimeGeneratedプロパティなどを収集側にスタックして その時間以降のログを取得するような仕組みを考えていましたが、 結局、総ナメして出力だけを抑止するしかないらしく、 EventLogオブジェクトのClearメソッドを使用し、前回取得した ログより後発のログだけを取得するようにしました。 ただ、この方法だと、クライアント側でイベントログを見ると 空になってしまい、クライアントでログを追えません。 # まぁ、収集したログを見ればいいのですが。。。 【質問】 1.他にどんな手法が考えられますでしょうか? # 抽象的な質問ですみません。 # 例えばWMIとかがもうひとつのアプローチかなと思っています。 2.販売されているソフトで要件を満たしそうな製品はないでしょうか。 よろしくお願いいたします。 | ||||||||||||
|
投稿日時: 2006-08-02 17:54
http://www.microsoft.com/japan/technet/scriptcenter/tools/logparser/default.mspx
こんなんは使えないかい? 私は、コマンドライン版のほうしか使ったことないけど。 | ||||||||||||
|
投稿日時: 2006-08-03 11:51
かめたろさんありがとうございました。
# 他の用途にもすごく使えるかも HELPに記述されているもののほとんどパクリですが 下記のコードを実行し、ログが取得できることを確認しました。
あとは、iCheckPointパラメータを攻略すれば、なんとかなるかなと思っています。 | ||||||||||||
|
投稿日時: 2006-08-03 12:31
私もリモートコンピュータのイベントログ取得で頭を悩ませています。
リモートコンピュータのみに存在するイベントソースのメッセージは取得できていますか? (つまりログ収集を実行しているローカルコンピュータにイベントメッセージファイルが存在していない場合) たとえば、リモートコンピュータに イベントソース Hoge でログを書き込んでいた場合、ローカルコンピュータにも同じイベントソース Hoge が定義されていないとメッセージを取得できないと思います。少なくとも、私が使用している ReadEventLog() + FormatMessage() ではできません。 この問題を解決するために・・・ (1) 対象リモートコンピュータのイベントソースに対応するイベントメッセージファイルから Message Table リソースだけを抽出して、ローカルコンピュータにコピーしておく。リモートコンピュータから集めたイベントメッセージファイルを使用して FormatMessage() をおこなう。 もしくは (2) イベントログの収集は各々のコンピュータでおこない、サーバーに収集したログを送信する。 のいずれかを考えています。なにか リモートコンピュータのイベントログを完全に再現できる(運用が)簡単な方法はないものでしょうか? | ||||||||||||
|
投稿日時: 2006-08-03 16:10
未記入さんこんにちは。
メッセージとはイベントビュアから見たときの説明でしょうか? 前述の手法だと取得できています。例えば、XPからActiveDirectoryなどに いった場合、DNSなどの説明は見れます。
私の場合はイベントログをイベントビュアでみれる形に復元する必要はなく データベースなどにストアしてSQLで見に行くというゴールなので、 お役に立てそうにありません。 --------------- iCheckPointの実装ですが、次の一文を加えたところ一応は動いているようです。
ただ、手動でログを削除された場合の挙動がちょっとおかしい気がします。 ヘルプの例がテキストファイルを4つ対象にして行っている物が載っていて 行数が減少した場合は自動的に検知するというような説明なのですが、 その通りに動いていないような気がします。もう少し調査してみます。 | ||||||||||||
|
投稿日時: 2006-08-03 17:29
はい、イベントビューアの「説明」です。イベントビューアの場合は、イベントメッセージファイルが存在していないと、以下のようなメッセージが出ます。
イベントログ自体には、ID とパラメータしか保存されていないので、メッセージを復元するためにはイベントメッセージファイルが必要なはずなんですが・・・。LogParser を使う方法だとリモートコンピュータのイベントメッセージファイルまで読み取っているということなのでしょうか。それはそれでセキュリティ上問題になりそうな気がします・・・。 [ メッセージ編集済み 編集者: 未記入 編集日時 2006-08-03 17:34 ] | ||||||||||||
|
投稿日時: 2006-08-03 17:57
もしかして、AdminPackが入っているとこのイベントメッセージファイルが 入るとかですと、私のマシンからやった場合はぜんぜん検証になってないかも しれません。 ちなみに、コンピュータの管理からリモートのイベントログを開いた場合は どうなってしまうのでしょうか?ローカルにイベントメッセージファイルが ないとだめなのでしょうか? 経験上、見れなかったことがないのですが、見れないのでしょうかね。。。 |
1