IIS における「.NET 」トレースのトラブルシューティング

IISでホストされているアプリケーションにおいてトレースが期待どおりに機能しない場合は、具体的なケースに応じた対処法に進む前に、まず一般的なトラブルシューティングの手順から始めてください。

一般的なトラブルシューティング

以下のステップを実行します。

  1. 前提条件を確認してください:

    • .NET のバージョン互換性を確認してください:アプリケーションが.NET Core Runtime 5.0 以降で動作することを確認してください。
    • Instana エージェントが実行されていることを確認してください:

      • Windows でタスクマネージャーを開き、「 Instana 」エージェントプロセスを探してください。
      • Instana のUIでエージェントの状態を確認します。
    • Instana のPCPが実行されていることを確認してください:

  2. IISがリセットされたことを確認してください:

    IISでホストされているアプリケーションにおいて最もよくある問題は、設定変更後に正常に動作 iisreset しなくなることです。 変更を加えた後は、必ず次のコマンドを実行してください:

    iisreset
  3. IL-Rewriterが正しく読み込まれているか確認するには、以下を実行してください:

    1. アプリケーションログを確認し、IL-Rewriterの初期化メッセージがないか確認してください。 正常に実行された場合、次のような出力が表示されます:

      *Initializing Instana IL-Rewriter for .NET Core* 
      *Logging path is not set* 
      *Loading configuration-file /app/instana_tracing/instrumentation.json*
      注: 環境によってはパスが異なる場合があります。
    2. 「IL-Rewriter」の行が表示されない場合は、次の手順に記載されているとおり、必要な CORECLR 環境変数がすべて正しく設定され、アプリケーションから利用可能になっていることを確認してください。
  4. 環境変数の確認:トレースが機能しない場合は、以下の環境変数が正しく設定されているか確認してください:

    • 正しく設定してください。
    • 正しく綴られています。
    • アプリケーションがデプロイされる環境に合わせて適切に設定してください。
    • 有効であり、プロセスまたはアプリケーションからアクセス可能で、かつ正しい。
  5. エラーのトラブルシューティングを行うには、 Windows のイベント ビューアのログを確認してください:

    1. イベント ビューアーを開きます。
    2. Go 「 Windows 」のログ > 「Application 」へ。
    3. アプリケーションやIISに関連するエラーや警告がないか確認してください。
    4. Instana に関連するイベントを確認してください。

    イベントには、問題の診断に役立つタイムスタンプやエラーコードなどの詳細情報が含まれています。

  6. 1.NET で診断機能が有効になっていることを確認してください。環境変数 ` COMPlus_EnableDiagnostics ` および ` DOTNET_EnableDiagnostics ` が `true` に設定されていることを確認してください。 診断機能が無効になっている場合、IL-Rewriterはプロセスにアタッチできないため、呼び出しの書き換えやトレースの生成を行うことができません。

ケースごとのトラブルシューティング

一般的なトラブルシューティングを行っても問題が解決しない場合は、以下のトラブルシューティング手順をご確認ください:

シナリオ 1:トレースまたはスパンの欠落

症状: アプリケーションにメトリクスは表示されるがトレースが表示されない、一部のサービスではレポートされるが他のサービスでは表示されない、あるいはデプロイや更新後にトレースが停止する。

トラブルシューティングの手順

  1. .NET 版アプリケーションがサポートされていることを確認してください:

    • .NET Core 動作環境: 5.0 以降
  2. エージェント configuration.yaml ファイルでトレースが有効になっていることを確認してください。
  3. Log Collector を使用して、 または手動でログを収集して、トレースログを取得します。
  4. Instana のトレースログを確認してください:

    • ログが空であるか、トレースが表示されない場合は、アプリケーションがスパンを生成していないことを意味します。
    • ログにトレースは記録されているものの、情報(ホスト名など)が欠落している場合は、.NET のトレース層に問題があります。
    • ログにトレースが記録されており、そのトレースにUIには表示されていない情報が含まれている場合、問題は Instana のバックエンドまたはエージェントのいずれかで発生したことになります。

シナリオ 2: アプリケーションが起動しない

症状:Instana エージェントが実行されている場合、アプリケーションの起動に失敗する。

トラブルシューティングの手順

  1. .NET 版アプリケーションがサポートされていることを確認してください:

    • .NET Core 動作環境: 5.0 以降
  2. ログコレクター を使用するか、 手動でログを収集して、イベントビューアのログを取得します。
  3. Instana のイベント ビューアーのログを確認してください:

    • ログにエラーや警告が表示されているかどうかを確認してください。 イベントには、問題の診断に役立つタイムスタンプやエラーコードなどの詳細情報が含まれています。
    • 「」を示す InstanaPCP.exe エラーが表示された場合、 InstanaPCP が失敗したことを意味します。 その前のイベントを確認し、問題をさらに詳しく調査してください。
  4. アプリケーションのクラッシュダンプを取得してください。

シナリオ 3:エージェントが「.NET 」アプリケーションを検出しない

症状:.NET アプリケーションが Instana エージェントによって監視されておらず、UIに表示されません。

トラブルシューティングの手順

  1. Instana エージェントが管理者として実行されていることを確認してください。
  2. Instana エージェントがアプリケーションへのアクセス権限を持っていることを確認してください。
  3. Instana のPCPが実行されていることを確認してください:

    • InstanaPCPWindows でタスクマネージャーを開き、. を検索します。
  4. Log Collector を使用するか、 手動でログを収集して、 Instana のエージェントログを収集します。

    • Instana のエージェントログに、次の行が含まれている必要があります:

      com.instana.agent-process-handling - <version> |  | InstanaPCP.exe passed early window; marked RUNNING
  5. エージェントのログで、センサーが正常に有効化されていることを確認してください:

    com.instana.sensor-clr - <version> |  | Activated Sensor
  6. 「 Instana 」エージェントの起動後に、「.NET 」プロセスが起動していることを確認してください。

シナリオ 4: トレースを有効にした後、 InstanaPCP またはアプリケーションの CPU 使用率が高くなる

症状:InstanaPCP または.NET アプリケーションで、トレースを有効にした後、CPU使用率が異常に高くなる。

トラブルシューティングの手順

  1. タスクマネージャーを確認し、問題がアプリケーションに起因するものか、それとも InstanaPCP に起因するものかを特定してください。
  2. 問題が InstanaPCP: にある場合

    • InstanaPCP のデバッグログを有効にする。 「ログの収集」 を参照してください。
    • パフォーマンスカウンターが見つからないというメッセージや例外が発生しているかどうか、ログを確認してください。
  3. 問題がアプリケーションのメモリ使用量の急増である場合:

    • Log Collector を使用するか、 手動でログを収集して、イベントログおよび.NET のログを収集します。
    • イベントログおよび.NET のログを確認し、メモリ関連の例外がないか確認してください。
    • この問題が Instana の計測機能に起因するものかどうかを確認してください。
    • 詳細な分析のために、.NET のダンプファイルを取得してください。 Go タスクマネージャーを開き、そのプロセスを右クリックして、ダンプファイルを作成します。

ログの収集

Instana ログを収集するための2つの方法を提供しています:

Log Collector を使用したログの収集

Log Collectorは、 Instana からログを収集するためのスタンドアロンアプリケーションです。 以下の場所からログコレクターを起動できます:

ログコレクターは、以下のログを収集します:

  • アプリケーションのトレースログ
  • Instana PCPログ
  • CLRデバッグログ
  • イベント ビューアのログ
  • Instana エージェントのデバッグログ
  • Instana エージェントがログを追跡する

Instana のUIからログコレクターを実行する

重要:「.NET 」トレースログの収集および保存」 の権限がロールに含まれている場合のみ、Log Collector ツールにアクセスできます。 この権限は、 Instana のUIにある 「インフラストラクチャ 」セクションで有効にできます。
  1. ナビゲーションメニューから 「Analytics 」> 「Infrastructure」 を選択するか、 Instana のUIにある 「More」 メニューからエージェントを検索してください。
  2. 監視対象とする「.NET 」プロセスをクリックしてください。
  3. 「.NET 」プロセスのダッシュボードで、次の画像のように 「.NET のデバッグ環境を設定 」をクリックします

    図 1. ログ収集機能
    ログ・コレクター

    この手順では、ホスト上でLog Collectorアプリケーションを起動し、.NET のログ収集に必要な環境変数を設定します。

  4. .NET アプリケーションを再起動してください(IISでホストされているアプリケーションの場合は`iisreset`を実行してください)。これにより、更新された環境変数が確実に読み込まれます。
    注:InstanaPCP のログを収集対象に含めるには、 Instana エージェントも再起動してください。
  5. 電話をかけたり、アプリケーションへのトラフィックを生成したりして、ログを作成してください。
  6. .NET のログをダウンロード 」をクリックしてください。

    注:[.NET のログをダウンロード] ボタンは、デバッグ環境の設定が正常に完了した後にのみ表示されます。

ログコレクターは、アプリケーションのトレースログ(事前に設定済みの場合 [agent-dir]\etc\instana\com.instana.agent.main.sender.File.cfg )、 InstanaPCP ログ(エージェントが再起動された場合)、CLRデバッグログ、イベントビューアーのログ、および Instana エージェントのログなど、複数のソースからログを収集します。 収集されたログはファイル .zip に圧縮され、お使いのシステムにダウンロードされます。

コンソールからログコレクターを実行する

UIが正常に動作しない場合、コンソールからログコレクターを起動することができます:

  1. Go Instana エージェントフォルダ内のログコレクタパスに:

    C:\\instana-agent\data\repo\com\instana\dotnet-logcollector-win-x64\1.302.1\dotnet-logcollector-win-x64-1.302.1
  2. ログの収集準備を行うには、次のコマンドを実行してください:

    logcollector.exe -m prepare -i "C:\Program Files\Instana\instana-agent"
  3. アプリケーションを再起動し、アプリケーションを呼び出してください。
  4. しばらくしてから、collect コマンドを実行してください:

    logcollector.exe -m collect -i "C:\Program Files\Instana\instana-agent" -o "C:\output\log.zip"
    注: コマンドは必ず管理者として実行してください。

ログを手動で収集する

あるいは、IISでホストされているアプリケーションについては、手動でログを収集することもできます。 以下のステップを実行します。

  1. デバッグ・ログを有効にします。

    1. 次のいずれかのオプションを使用して、環境変数を追加します:

      パスが有効であり、プロセスまたはアプリケーションからアクセス可能で、かつ正しいものであることを確認してください。 {: note}

      • システムレベルで、以下の環境変数を手動で設定してください:

        INSTANA_NET_LOG_PATH: "C:\dc_net_log"
        INSTANA_NET_LOG_LEVEL: DEBUG
        INSTANA_NET_CORE_LOG_LEVEL: DEBUG
        INSTANA_NET_PCP_LOG_LEVEL: DEBUG
        INSTANA_TRACER_ENTEREXIT_LOGGING: 1
        INSTANA_EXTENDED_DEBUG: 1
      • 管理者としてコマンドプロンプトを開き、次のコマンドを実行して環境変数を追加します:

        setx INSTANA_NET_LOG_PATH "C:\dc_net_log" /M
        setx INSTANA_NET_LOG_LEVEL "DEBUG" /M
        setx INSTANA_NET_CORE_LOG_LEVEL "DEBUG" /M
        setx INSTANA_NET_PCP_LOG_LEVEL "DEBUG" /M
        setx INSTANA_TRACER_ENTEREXIT_LOGGING "1" /M
        setx INSTANA_EXTENDED_DEBUG "1" /M
    2. 次の「 Windows 」レジストリキーを設定します:

      CLRDebugLog: "C:\dc_clr_debug_log\clr_"
    3. 変更を適用するには、以下を実行 iisreset してください:

      iisreset
    4. アプリケーションを再起動します。

  2. Instana エージェントのログを収集する:

    1. エージェント <instana_install_dir>/bin/stop.sh を停止する。または、エージェントがサービスとして起動されている場合は、そのサービスを停止する。

    2. ログを削除する:以下のコマンドを実行して、ログディレクトリ内のすべてのファイルを削除し、状態をリセットします

      rm -rf <instana_install_dir>/data/log/*
    3. ログレベルを「Debug」に設定する:エージェント configuration.yaml ファイルでログレベルの深刻度を変更します。 詳細については、 「エージェント設定ファイルの設定」 を参照してください。

    4. エージェント <instana_install_dir>/bin/start.sh を起動するか、サービスを起動してください。

    5. 問題の再現手順:問題が発生する状態にし、エージェントを約15分間実行してください。

    6. ログの収集:提出用にログディレクトリを圧縮するには、次のコマンドを実行してください:

      cd <instana_install_dir>/data/logs
      zip -r instana_agent_debug_logs.zip *
       
  3. Instana のトレースログを収集する:

    1. com.instana.agent.main.sender.File.cfgGo …に [agent-dir]\etc\instana アクセスして、ファイルを開きます。

    2. ファイルに次の行を追加してください:

      prefix=instanaTraces
      type=traces

      instanaTracesこの設定では、すべてのトレースが記録されたログファイルが提供され、そのファイル名は「.」で [agent-dir]/data/log 始まります。

    3. instana エージェントを再始動します。

    4. 変更を適用するには、以下を実行 iisreset してください:

      iisreset
    5. アプリケーションを約15分間実行してください。

    6. 以下のパスからログを収集してください:

      • 変数で指定されたパス INSTANA_NET_LOG_PATH
      • instana-agent-installation-folder/data/log
  4. CLR デバッグログを収集する:

    1. 「 Windows 」のレジストリ エディタを開きます。

    2. Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Instana\ に移動する

    3. C:\temp\clr_レジストリキー CLRDebugLog を、値を持つ文字列として追加します。例:

    4. あるいは、管理者としてコマンドプロンプトを開き、次のコマンドを実行してください:

      reg add "HKLM\SOFTWARE\Instana" /v CLRDebugLog /t REG_SZ /d "C:\temp\clr_" /f
  5. Windows のイベントビューアーのログを収集する:

    1. イベント ビューアーを開く:
      1. Win キーと R キーを同時に押します。
      2. eventvwr.msc と入力します。
      3. Enterキー を押してください。
    2. Go エクスポートしたいログに対して:
      • Windows ログ: Windows のログ > アプリケーション
      • アプリケーションおよびサービスのログ
    3. アクション 」パネルで、 「すべてのイベントを別名で保存 」を選択します。
    4. .evtx場所を選んで、.として保存してください。

サポート・チケットのオープン

これらのトラブルシューティング手順を実行しても問題が解決しない場合は、サポートチケットを開く前に、 MustGather のデータを収集してください。 MustGather このデータは、 IBM サポートが問題をより効率的に診断するのに役立ちます。

詳細については、 MustGather:、 Instana、.NET、Tracer - Windows をご覧ください。