Linux または Alpine Linux における「.NET 」トレースのトラブルシューティング

トレースが期待通りに機能しない場合は、具体的なケースごとの対応に移る前に、まず一般的なトラブルシューティングの手順から始めてください。

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

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

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

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

      • systemctl status instana-agent.serviceを使用してエージェントの状態を確認します。
      • Instana のUIでエージェントの状態を確認します。
  2. 環境変数の確認:トレースが機能しない場合は、以下の環境変数が設定されているか確認してください:

    • 正しく設定してください。
    • 正しく綴られています。
    • アプリケーションがデプロイされる環境に合わせて適切に設定してください。
    • 有効であり、プロセスまたはアプリケーションからアクセス可能で、かつ正しい。
  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 環境変数がすべて正しく設定され、アプリケーションから利用可能になっていることを確認してください:

      • CORECLR_ENABLE_PROFILING
      • CORECLR_PROFILER_PATH
      • CORECLR_PROFILER
  4. 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 Core 版アプリケーションがサポートされていることを確認してください:

    • .NET Core 動作環境: 5.0 以降
  2. ログコレクター を使用するか、 手動でログを収集して、ログを収集します。
  3. アプリケーションのクラッシュダンプを収集してください。

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

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

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

  1. Log Collector を使用するか、 手動でログを収集して、 Instana のエージェントログを収集します。
  2. Instana エージェントが管理者として実行されていることを確認してください。
  3. Instana エージェントに、アプリケーションを監視する権限があることを確認してください。
  4. エージェントのログで、センサーが正常に有効化されていることを確認してください。

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

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

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

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

  1. 原因を特定する:システムモニターを確認し、問題がアプリケーションに関連しているかどうかを判断します。
  2. アプリケーションのメモリ使用量が急増している場合:

    • .NET のログを確認し /var/log 、メモリ関連の例外がないか確認してください。
    • この問題が Instana の計測機能に起因するものかどうかを確認してください。
    • 詳細な分析のために、.NET のダンプファイルをリクエストしてください。

ログの収集

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

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

注: Log Collectorは、 ARM64 および AARCH64 アーキテクチャ上の.NET Core アプリケーションで動作します。

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

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

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

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

重要:.NET Core センサー( 1.0.89 以降)では、 Instana のUIからLog Collectorツールを実行することはできません。 これらのバージョンを使用している場合は、コンソールから手動でログコレクターを実行して、ログを収集してください。

ホストアーキテクチャが AARCH 64 または ARM 64 の場合、 Instana の UI から Log Collector を使用してログを収集してください:

  1. ナビゲーションメニューから 「Analytics 」> 「Infrastructure」 を選択するか、 Instana のUIにある 「More」 メニューからエージェントを検索してください。
  2. 監視対象とする「.NET 」プロセスをクリックしてください。
  3. 「.NET 」のプロセスダッシュボードで、 「.NET のデバッグ環境を設定」 をクリックします。

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

  4. .NET アプリケーションを再起動し、更新された環境変数が確実に読み込まれるようにしてください。
  5. 電話をかけたり、アプリケーションへのトラフィックを生成したりして、ログを作成してください。
  6. 「.NET のログをダウンロード」 をクリックして、ログを取得してください。
    注:[.NET のログをダウンロード] ボタンは、デバッグ環境の設定が正常に完了した後にのみ表示されます。

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

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

Log CollectorのUIが動作しない場合(ホストアーキテクチャが AARCH64 または ARM64 の場合)、コンソールからLog Collectorを起動してください:

  1. Go エージェントフォルダ内のLog Collectorのディレクトリへ。 最新バージョンを選択してください:

    • AARCH 64の場合:

      cd <path_to_instana>/data/repo/com/instana/clr-logcollector-libs/latest-release#/clr-logcollector-libs-<latest-release#>/linux-x64
    • ARM64: 向け

      cd <path_to_instana>/data/repo/com/instana/clr-logcollector-libs/latest-release#/clr-logcollector-libs-<latest-release#>/linux-arm64
  2. 準備モード:アプリケーションを実行する前に、環境変数を設定してください:

    sudo chmod +x ./LogCollector
    sudo ./LogCollector -m prepare -i "/opt/instana"
  3. クライアントアプリケーションの実行:準備が完了したら、監視対象のクライアントアプリケーションを起動します。
  4. 収集モード:クライアントアプリケーションを停止した後、ログを収集します:

    ./LogCollector -m collect -i "<path_to_instana>" -o "<path_to_log>/log.zip"

ログを手動で収集する

あるいは、ログコレクターを使用せずに、手動でログを収集することもできます。 以下のステップを実行します。

  1. デバッグログを有効にする:システムレベルで以下の環境変数を手動で設定し、アプリケーションを再起動してください:

    export INSTANA_NET_LOG_PATH="<Log_path>"
    export INSTANA_NET_LOG_LEVEL=DEBUG
    export INSTANA_NET_CORE_LOG_LEVEL=DEBUG
    export INSTANA_TRACER_ENTEREXIT_LOGGING=1
    export INSTANA_EXTENDED_DEBUG=1
    export INSTANA_CLRLOG_PATH=/var/tmp/clr_
  2. Instana エージェントのログを収集する:

    1. エージェントを停止します。

      sudo systemctl stop instana-agent.service
    2. ログを消去する:ディレクトリ内の logs すべてのファイルを削除して、一からやり直す:

      sudo rm -rf <instana_install_dir>/data/logs/*
    3. ログレベルを「debug」に設定します:設定ファイルでログレベルの深刻度を変更します:

      log4j2.logger.instana.level=DEBUG設定ファイルの <instanaAgentDir>/etc/org.ops4j.pax.logging.cfg ログレベルを から log4j2.logger.instana.level=INFO に変更する。

      重要: 行末に空白が含まれていないことを確認してください。
    4. 以下の方法でエージェントを開始します。

      sudo systemctl start instana-agent.service
    5. ログフォルダ内のログを確認し、ログを収集してください。提出用にディレクトリを logs 圧縮してください:

      cd <instana_install_dir>/data/logs/
      zip -r instana_agent_debug_logs.zip *

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

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

詳細については、 MustGather:、 Instana、.NET、Tracer - Linux を参照してください。