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

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

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

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

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

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

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

  2. 環境変数の確認:トレースが機能しない場合は、以下の環境変数が設定されているか確認してください:

    • 正しく設定してください。
    • 正しく綴られています。
    • アプリケーションがデプロイされる環境に合わせて適切に設定してください。
    • 有効であり、プロセスまたはアプリケーションからアクセス可能で、かつ正しい。
  3. IL-Rewriterが正しく読み込まれているか確認するには、以下を実行してください:

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

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

      • COR_ENABLE_PROFILING
      • COR_PROFILER
  4. Windows のイベント ビューアーのログを確認してください: Windows のイベント ビューアーのログを使用して、エラーのトラブルシューティングを行ってください:

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

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

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

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

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

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

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

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

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

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

シナリオ 2:アプリケーションがクラッシュする、または起動しない

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

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

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

    • .NET Framework 4.5.2 またはそれ以降
  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. 「.NET 」プロセスが、「 Instana 」エージェントよりも後に起動されるようにしてください。

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

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

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

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

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

    • Log Collector を使用するか、 手動でログを収集して、イベントログおよび.NET のログを収集します。
    • イベントログおよび.NET のログを確認し、メモリ関連の例外がないか確認してください。
    • この問題が Instana の計測機能によって引き起こされているかどうかを確認してください。
    • 詳細な分析のために、.NET のダンプファイルを取得してください。

ログの収集

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 のデバッグ環境を設定」 をクリックします。

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

  4. .NET Framework アプリケーションを再起動し、更新された環境変数が確実に読み込まれるようにしてください。
    注: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 エージェントフォルダ内のLog Collectorパスへ。 利用可能な最新バージョンをご利用ください:

    C:\instana-agent\data\repo\com\instana\dotnet-logcollector-win-x64\<latest_version>\dotnet-logcollector-win-x64-<version>
  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"
    注: コマンドは必ず管理者として実行してください。

ログを手動で収集する

あるいは、手動でログを収集することもできます。 以下のステップを実行します。

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

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

      注: パスが有効であり、プロセスまたはアプリケーションからアクセス可能で、かつ正しいものであることを確認してください。
      • システムレベルで、以下の環境変数を手動で設定してください:

        INSTANA_NET_LOG_PATH: "C:\dc_net_log"
        INSTANA_NET_LOG_LEVEL: DEBUG
        INSTANA_NET_FF_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_FF_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. アプリケーションを再起動します。
  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 *

      PowerShell: 向け

      Compress-Archive * 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. アプリケーションを再起動し、約15分間実行してください。
    5. 以下のパスからログを収集してください:

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

    1. レジストリ エディタを開きます。
    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 をご覧ください。