IIS ログにはユーザーリクエストからサーバーレスポンス時間まで、Web サーバーのインタラクションに関する重要な可視性が記録されています。これらのログ情報は、問題の診断、パフォーマンス状況の把握、Web サイトの信頼性向上などに極めて重要です。これらのログを見つけて活用する方法を理解することは、パフォーマンスの高い Web インフラストラクチャを維持するために不可欠です。
この情報には、次のようなものが含まれます。
- イベントの発生日時
- リクエストを送信したユーザー(IPアドレスとログインユーザー(存在する場合)の両方)
- リクエストされたページと実行されたクエリ
- 使用されたユーザーエージェント
- ステータスコードとエラーコード(存在する場合)
- 応答に要した時間
管理者は、IIS マネージャーアプリケーションを使用して、IIS、W3C、NCSA などのログ形式を選択できます。W3C では管理者がログに記録する内容を選択できますが、NCSA と IIS 形式では変更できません。IIS パフォーマンスモニタリングでは、ログに記録されるデータが多いほど、管理者と開発者はログからより多くのインサイトを得ることができます。
IIS ログがどのようなものかについて、W3C 形式の例を次に示します。
#Software: Microsoft Internet Information Services 10.0
#Version: 1.0
#Date: 2025-02-18 23:41:30
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken
2025-02-18 23:41:27 127.0.0.1 GET /inetpub/davidsbuick/home.htm - 80 - 127.0.0.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:135.0)+Gecko/20100101+Firefox/135.0 - 404 0 2 63
2025-02-18 23:41:29 127.0.0.1 GET /inetpub/davidsbuick/home.htm - 80 - 127.0.0.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:135.0)+Gecko/20100101+Firefox/135.0 - 404 0 2 0
2025-02-18 23:41:29 127.0.0.1 GET /inetpub/davidsbuick/home.htm - 80 - 127.0.0.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:135.0)+Gecko/20100101+Firefox/135.0 - 404 0 2 0
2025-02-18 23:51:13 127.0.0.1 GET /DavidsBuick - 80 - 127.0.0.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:135.0)+Gecko/20100101+Firefox/135.0 - 404 0 2 67
2025-02-18 23:51:13 127.0.0.1 GET /favicon.ico - 80 - 127.0.0.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:135.0)+Gecko/20100101+Firefox/135.0 http://localhost/DavidsBuick 404 0 2 0
異なるプラットフォームにおける IIS ログファイルの場所
Web プロパティは、専用サーバーやクラウドサービスなど、複数のサーバー、さらには複数のプラットフォームに分散していることがよくあります。その結果、異なる Web プロパティの複数の IIS ログが、それらのサーバーやプラットフォームにサイロ化されてしまう可能性があります。ここでは、さまざまなインフラストラクチャにおいてログの場所を見つける方法を説明します。
IIS 7 以降で IIS ログファイルを見つける方法
- スタートメニューの検索フィールドに「inetmgr」と入力します。または、Windows 11 の場合は、すべてのアプリメニューの Windows ツールにある [インターネットインフォメーションサービス(IIS)マネージャー] のショートカットをクリックします(お使いの Windows によって場所が異なる場合があります)。
- 表示されるウィンドウの左側でツリーを展開し、[サイト] をクリックすると、ローカルサーバー上のサイトの一覧が表示されます。
- ウィンドウの右側で、調査する サイトID をクリックします。ログは サイトID ごとに保存されます。
- ログ設定を確認するには、[ログ] アイコンをダブルクリックします。「ログファイル」セクションで、ログディレクトリとログ形式を確認できます。
- 画面右側のアクションリストで「ログファイルの表示…」をクリックするか、ディレクトリエクスプローラーを使用して IIS ログファイルディレクトリに移動します。
- 調査する サイトID で終わるサブディレクトリを見つけて開きます。フォルダー名の末尾の番号は サイトID に対応しています。
IIS 6 以前で IIS ログファイルを見つける方法
- Windows スタートメニューから、管理ツールにマウスを合わせて、[インターネットインフォメーションサービス(IIS)マネージャー] をクリックします。
- 左側のツリーでサーバーのフォルダー名を展開し、サイトを右クリックして [プロパティ] を選択します。
- ログファイルのディレクトリは、「アクティブログ形式」セクションに表示されます、通常は %WinDir%\System32\LogFiles です。
Azure で IIS ログファイルを見つける方法
ログファイルの場所は、Azure Cloud と Azure App Services で異なります。
Azure Cloud
IIS ログファイルは Azure Cloud Services に自動的に保存されます。
- リモートデスクトップを使用して、調査対象のサーバーに接続します。
- ログファイルは、次のようなパスに保存されます。
C:\Resources\directory\{some random guid}.{appname}.DiagnosticStore\LogFiles\Web\W3SVC{random number}
Azure App Services
- Web サーバーのログ記録が有効になっていることを確認します。
- Web サーバーのログ記録をファイルシステムに保存するように設定します。
Kudu コンソールを使用してログファイルにアクセスします。ファイルは D:\home\LogFiles\http\RawLogs
に保存されます。
IIS ログが見つからない場合の対処法
IIS サーバーの前に HTTP リクエストを処理する他のサービスがあります。適切なログファイルが見つからない場合は、そのインタラクションが IIS サーバーに到達していないという可能性があります。あるいは、ログ記録、サイトが動作していない可能性も考えられます。
サイトが動作しているかどうかを確認する方法
表示されるウィンドウの左側でツリーを展開し、[サイト] をクリックすると、ローカルサーバー上のサイトの一覧が表示されます。
- 目的のサイトをクリックし、右側の [アクション] メニューで [再起動] または [停止] がアクティブになっていることを確認します。[開始] がアクティブになっている場合、サイトは動作していません。[開始] をクリックしてサイトを実行してください。
IIS ログが有効になっているかどうかを確認する方法
- スタートメニューの検索フィールドに「inetmgr」と入力します。Windows11 では、すべてのアプリ メニューの Windows ツールにある [インターネットインフォメーションサービス (IIS) マネージャー] のショートカットをクリックします。
- 表示されるウィンドウの左側でツリーを展開し、[サイト] をクリックすると、ローカルサーバー上のサイトの一覧が表示されます。
- ウィンドウの右側で、調査するサイトID をクリックします。ログは サイトID ごとに保存されます。
- [ログ] アイコンをダブルクリックします。
- 右側のアクションメニューの下に [無効] と表示されている場合は、ログが有効になっています。[有効] と表示されている場合は、ログが無効になっています。ログを開始するには、[有効] をクリックします。
IIS マネージャーの最新バージョンでは、状態が変更されるとすぐにログが開始されます。サイトを再起動する必要はありません。ログが実行中かどうかを確認するには、サイトのログディレクトリに移動し、新しいログファイルを探します。トラフィック状況によっては、表示されるまでに数秒かかる場合があります。ログファイルが表示されない場合は、IIS マネージャーのサイトのセクションに戻り、アクションメニューの [再起動] をクリックしてください。
エラーを確認するその他の場所
HTTPERR
IIS サーバーに到達する前に、受信リクエストは HTTP.SYS によって処理されます。
そのため、探しているリクエストが IIS に到達しなかったか、IISが動作していなかった可能性があります。HTTPERR で終了する一般的なエラーには、以下のものがあります。
- 400 Bad Request
- タイムアウト
- 503 Service Unavailable など
IIS が動作している場合は C:\Windows\System32\LogFiles\HTTPERR
にある HTTPERR ログを確認してください。
Windows イベントビューアで ASP.NET Core の例外を探す
ASP.NET Core は、デフォルトで 500 系の例外が発生した場合、Windows アプリケーションイベントログに記録します。ASP.NET Core の Health checks では、これらの種類のエラーを処理します。残念ながら、アプリケーションイベントログに書き込まれるエラーの数には制限があるため、関心のあるエラーがそこに記録されない可能性もあります。しかし、IT マネージャーにとって、これは別の視点からエラーを確認する機会となります。
高度な IIS エラーログには "失敗した要求トレース" (FREB) 機能を使用する
それでもエラーが見つからない場合は、強力な IIS ログ機能である 失敗した要求トレース (FREB) を有効化し、調査します。IIS マネージャーで FREB を有効にします (事前にインストールする必要がある場合があります)。すべての要求、遅い要求、または特定の応答ステータスコードに対してルールを設定できます。FRT は IIS パイプラインのすべての詳細とステップを追跡するため、データ量が膨大となり、ログの解読に時間がかかる場合があります。
リアルタイムモニタリングのための IIS ログのベストプラクティス
IIS ログはアクティブな間は継続的に更新されるため、サイズが大きくなりすぎるログファイルが作成される可能性があります。サイトの「ログ」セクションでは、ログファイルの保存場所を指定できるだけでなく、ログファイルのサイズを制限して管理しやすくすることもできます。
ログ管理に関する次の設定ができます。
- 共通のディレクトリパスを指定して、ログファイルをサイト外や一元管理された場所に配置する
- ログイベントの保存先を変更する(ログファイルのみ、ETW(Windowsイベントトレーシング)イベントのみ、またはその両方)。
- ログファイルのロール・オーバーをスケジュールまたはファイルサイズでスケジュールする
ログに記録する項目を選択すると、問題を特定しやすくなります。ただし、W3C ログ 形式を使用しない限り、ログに記録する項目を選択することはできません。IIS および NCSA 形式では変更できません。多くの管理者は、ログを手動で確認する時間を設けて、潜在的なセキュリティー脅威やパフォーマンスの問題がないかを確認しています。
専用のログ管理ツールを使用すると、ログファイルの分析をシンプルに行うことができます。New Relic のログモニタリングや分析エージェントには IIS 分析用の組み込みダッシュボードや設定調整可能なアラートが利用できるため、問題の兆候となる変化を容易に検出し、迅速な問題解決を支援します。
New Relic の IIS モニタリング は、複数サイトに分散されたログ分析に伴う複雑さを軽減する、豊富で堅牢な機能を提供します。IIS モニタリングツールは、ログデータを自動収集し、ログデータから Web サーバーのパフォーマンスを測定します。チームは、潜在的な問題のトラブルシューティングと Web サーバーのパフォーマンスの最適化に役立つリアルタイムのインサイトを得ることができます。
IIS ツールは以下のことに役立ちます。
- セキュリティ侵害、DDoS攻撃、その他の問題の特定
- レスポンスタイムの追跡
- ボトルネックの解消、スループットの改善によるパフォーマンスの向上
- 遅い SQL クエリの特定
- 迅速なインサイトを提供するビジュアルによるトラブルシューティング
- データ分析の効率化とパターンの特定
次のステップ
IIS ログのリアルタイムモニタリングを開始
Web プロパティは多くの場合、複数のサーバーやプラットフォームに分散しており、ログファイルはさまざまなディレクトリにサイロ化されています。分散し、連携もないような場合、適切なエラーログを見つけ出し、迅速な対応を取ることが困難になる場合があります。
New Relic の IIS モニタリング にログ分析を統合すると、Web サイトの最適化において管理者が直面する困難なタスクをシンプルにすることができます。単一のダッシュボードでサイロ全体の状況をより明確に把握できるようになります。この可視性により、組織は多様な分散インフラストラクチャにまたがる作業に時間とリソースに活用することができます。その結果、ダウンタイムの削減、エラーの削減、顧客満足度の向上につながります。
IIS ログ分析をシンプル化する準備はできていますか?今すぐお問い合わせください。
本ブログに掲載されている見解は著者に所属するものであり、必ずしも New Relic 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。