まず、IISに非常に慣れていないので、明らかな質問がある場合は事前にお詫び申し上げます。
私はこのトピックに関していくつかの調査を行いましたが、私の調査結果は決定的ではありませんでした。
これが私のシナリオです。
私は現在、約20のサイトをホストしているリモートで動作しているサーバーでIIS 6を実行しています。
イベントビューアを使用して、さまざまなWebアプリケーションで発生するエラーを参照できることを確認しました。
これに関する私の現在の問題は、「アプリケーションごと」に基づいてイベントログを除外する方法がないようであり、代わりにそれらが発生する時間に応じてランダムに表示されることです。 ASP.NET Webイベント、IIS-W3SVC-WP警告なども混在しています。
どのアプリケーションにどの警告が割り当てられているかを特定するには、エラーを右クリックし、[イベントプロパティ]に移動して、[アプリケーションのパス]に移動します。たとえば、「HotelBookingSystem」のパスを指定します。このアプリケーションパスは「D:inetpub\wwwroot\HotelBookingSystem」になります。
私の質問は、アプリケーションごとにイベントログを並べ替える方法はありますか?理想的には、すべての結果を「アプリケーションパス」でフィルタリングします。
MicrosoftのLogParser Studiosをインストールしたので、それを使用してクエリを実行する方法があると思いますが、SQLに関する私の知識は、そのようなクエリを作成しようとするレベルではありません。
どんな援助も大歓迎です。
私はなんとかこの問題を解決しましたが、それはかなり長い方法です。
「イベントビューア」で「アプリケーション」ウィンドウのログを右クリックし、ログ全体を.txtファイルに保存しました。
この.txtファイルをリモートサーバーからローカルマシンにコピーしました。
Log Parser 2.2を自分のマシンにインストールしました(ダウンロードできます ここ
ローカルマシンでコマンドプロンプトを開き、インストールした場所に移動して、LogParserにアクセスしました。プログラムファイル(x86)> Log Parser 2.2>。
これに続いて、文字列(私の場合はアプリケーション名)と日付を検索する次のコマンドを入力して、検索を特定の日付に絞り込むことができました。また、結果をデータグリッドに印刷しました。
logParser.exe "select * from **C:\NAME_OF_FILE.txt** WHERE text LIKE '%10/02/2015%' AND text LIKE '**YOUR_STRING**%'" -o:datagrid
結果を出力ファイルに入れることもできます。私の場合は次のとおりです。
-o:CSV > C:\temp\Test.csv
これは最善の方法ではないかもしれませんが、私にとってはうまくいきました。
wevtutil
(これはWindowsのコマンドラインユーティリティイベントを管理するためのものです)で遊んでみて、適切なクエリを見つけられるかどうかを確認してください。
https://technet.Microsoft.com/en-us/magazine/dd310329.aspx を参照してください
queryコマンドのヘルプ画面:
wevtutil qe /?
ダイアログベースのソリューションが必要な場合は、ここで説明されているように、イベントビューアでXPathクエリを試してください: http://blog.backslasher.net/filtering-windows-event-log-using- xpath.html しかし、WindowsイベントログはXPath1.0のサブセットのみをサポートしているのではないかと思います。位置、バンド、timediffの3つの関数のみが含まれています。
Get-WinEvent
Powershellコマンドには興味深いオプションもあります。
(編集された)質問で、[説明]フィールドの部分文字列を使用してフィルタリングすることを指定します。組み込みのフィルターではこれが不可能だと思います。wevtutil
コマンドを使用して関連するすべてのイベントをXMLにダンプし、次にフィルターを使用して完全に機能パーサー(単純な文字列検索、または完全なXPath機能を備えたXMLパーサーの場合があります)。