Linux または Alpine Linux における「.NET 」トレースのトラブルシューティング
トレースが期待通りに機能しない場合は、具体的なケースごとの対応に移る前に、まず一般的なトラブルシューティングの手順から始めてください。
一般的なトラブルシューティング
以下のステップを実行します。
前提条件を確認してください:
- .NET のバージョン互換性を確認してください:お使いのアプリケーションが、.NET Core Runtime 5.0 以降で動作することを確認してください。
Instana エージェントが実行されていることを確認してください:
systemctl status instana-agent.serviceを使用してエージェントの状態を確認します。- Instana のUIでエージェントの状態を確認します。
環境変数の確認:トレースが機能しない場合は、以下の環境変数が設定されているか確認してください:
- 正しく設定してください。
- 正しく綴られています。
- アプリケーションがデプロイされる環境に合わせて適切に設定してください。
- 有効であり、プロセスまたはアプリケーションからアクセス可能で、かつ正しい。
IL-Rewriterが正しく読み込まれているか確認するには、以下を実行してください:
アプリケーションログを確認し、IL-Rewriterの初期化メッセージがないか確認してください。 正常に実行された場合の期待される出力:
Initializing Instana IL-Rewriter for .NET Core Logging path is not set Loading configuration-file /app/instana_tracing/instrumentation.json注: 環境によってはパスが異なる場合がありますが、これらの行はアプリケーションの出力の先頭に必ず含まれている必要があります。IL-Rewriter の行が表示されない場合は、必要な
CORECLR環境変数がすべて正しく設定され、アプリケーションから利用可能になっていることを確認してください:- CORECLR_ENABLE_PROFILING
- CORECLR_PROFILER_PATH
- CORECLR_PROFILER
1.NET で診断機能が有効になっていることを確認してください。環境変数 ` COMPlus_EnableDiagnostics ` および ` DOTNET_EnableDiagnostics ` が `true` に設定されていることを確認してください。 これらが無効になっている場合、IL-Rewriterはプロセスにアタッチできないため、呼び出しの書き換えやトレースの生成が行えません。
ケースごとのトラブルシューティング
一般的なトラブルシューティングを行っても問題が解決しない場合は、以下のトラブルシューティング手順をご確認ください:
シナリオ 1:トレースまたはスパンが欠落している
症状: アプリケーションにメトリクスは表示されるがトレースが表示されない、一部のサービスではレポートされるが他のサービスでは表示されない、あるいはデプロイや更新後にトレースが停止する。
トラブルシューティングの手順
.NET 版アプリケーションがサポートされていることを確認してください:
- .NET Core 動作環境: 5.0 以降
- エージェント configuration.yaml ファイルでトレースが有効になっていることを確認してください。
- Log Collector を使用するか、 手動でログを収集して、トレースログを取得します。
Instana のトレースログを確認してください:
- ログが空であるか、トレースが表示されない場合は、アプリケーションがスパンを生成していないことを意味します。
- ログにトレースは記録されているものの、情報(ホスト名など)が欠落している場合は、.NET のトレース層に問題があります。
- ログにトレースが記録されており、そのトレースにUIには表示されていない情報が含まれている場合、問題は Instana のバックエンドまたはエージェントのいずれかで発生したことになります。
シナリオ 2: アプリケーションが起動しない
シナリオ 3:エージェントが「.NET 」アプリケーションを検出しない
症状:.NET アプリケーションが Instana エージェントによって監視されておらず、UIに表示されません。
トラブルシューティングの手順
- Log Collector を使用するか、 手動でログを収集して、 Instana のエージェントログを収集します。
- Instana エージェントが管理者として実行されていることを確認してください。
- Instana エージェントに、アプリケーションを監視する権限があることを確認してください。
エージェントのログで、センサーが正常に有効化されていることを確認してください。
com.instana.sensor-clr - <version> | | Activated Sensor- 「 Instana 」エージェントの起動後に、「.NET 」プロセスが起動していることを確認してください。
シナリオ 4: トレースを有効にした後、アプリケーションの CPU 使用率が高くなる
症状:.NET アプリケーションで、トレースを有効にした後、CPU使用率が異常に高くなる。
トラブルシューティングの手順
- 原因を特定する:システムモニターを確認し、問題がアプリケーションに関連しているかどうかを判断します。
アプリケーションのメモリ使用量が急増している場合:
- .NET のログを確認し /var/log 、メモリ関連の例外がないか確認してください。
- この問題が Instana の計測機能に起因するものかどうかを確認してください。
- 詳細な分析のために、.NET のダンプファイルをリクエストしてください。
ログの収集
Log Collector を使用したログの収集
Log Collectorは、 Instana からログを収集するためのスタンドアロンアプリケーションです。 以下の場所からログコレクターを起動できます:
ログコレクターは、以下のログを収集します:
- アプリケーションのトレースログ
- CLRデバッグログ
- Instana エージェントのデバッグログ
- Instana エージェントがログを追跡する
Instana のUIからログコレクターを実行する
ホストアーキテクチャが AARCH 64 または ARM 64 の場合、 Instana の UI から Log Collector を使用してログを収集してください:
- ナビゲーションメニューから を選択するか、 Instana のUIにある 「More」 メニューからエージェントを検索してください。
- 監視対象とする「.NET 」プロセスをクリックしてください。
「.NET 」のプロセスダッシュボードで、 「.NET のデバッグ環境を設定」 をクリックします。
この手順では、ホスト上でLog Collectorアプリケーションを起動し、.NET のログ収集に必要な環境変数を設定します。
- .NET アプリケーションを再起動し、更新された環境変数が確実に読み込まれるようにしてください。
- 電話をかけたり、アプリケーションへのトラフィックを生成したりして、ログを作成してください。
- 「.NET のログをダウンロード」 をクリックして、ログを取得してください。注:[.NET のログをダウンロード] ボタンは、デバッグ環境の設定が正常に完了した後にのみ表示されます。
ログコレクターは、アプリケーションのトレースログ(事前に設定済みの場合 [agent-dir]/etc/instana/com.instana.agent.main.sender.File.cfg )、CLRデバッグログ、 Instana エージェントのログなど、複数のソースからログを収集します。 収集されたログはファイル .zip に圧縮され、お使いのシステムにダウンロードされます。
コンソールからログコレクターを実行する
Log CollectorのUIが動作しない場合(ホストアーキテクチャが AARCH64 または ARM64 の場合)、コンソールからLog Collectorを起動してください:
Go エージェントフォルダ内のLog Collectorのディレクトリへ。 最新バージョンを選択してください:
AARCH 64の場合:
cd <path_to_instana>/data/repo/com/instana/clr-logcollector-libs/latest-release#/clr-logcollector-libs-<latest-release#>/linux-x64ARM64: 向け
cd <path_to_instana>/data/repo/com/instana/clr-logcollector-libs/latest-release#/clr-logcollector-libs-<latest-release#>/linux-arm64
準備モード:アプリケーションを実行する前に、環境変数を設定してください:
sudo chmod +x ./LogCollector sudo ./LogCollector -m prepare -i "/opt/instana"- クライアントアプリケーションの実行:準備が完了したら、監視対象のクライアントアプリケーションを起動します。
収集モード:クライアントアプリケーションを停止した後、ログを収集します:
./LogCollector -m collect -i "<path_to_instana>" -o "<path_to_log>/log.zip"
ログを手動で収集する
あるいは、ログコレクターを使用せずに、手動でログを収集することもできます。 以下のステップを実行します。
デバッグログを有効にする:システムレベルで以下の環境変数を手動で設定し、アプリケーションを再起動してください:
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_Instana エージェントのログを収集する:
エージェントを停止します。
sudo systemctl stop instana-agent.serviceログを消去する:ディレクトリ内の logs すべてのファイルを削除して、一からやり直す:
sudo rm -rf <instana_install_dir>/data/logs/*ログレベルを「debug」に設定します:設定ファイルでログレベルの深刻度を変更します:
log4j2.logger.instana.level=DEBUG設定ファイルの <instanaAgentDir>/etc/org.ops4j.pax.logging.cfg ログレベルを からlog4j2.logger.instana.level=INFOに変更する。重要: 行末に空白が含まれていないことを確認してください。以下の方法でエージェントを開始します。
sudo systemctl start instana-agent.serviceログフォルダ内のログを確認し、ログを収集してください。提出用にディレクトリを logs 圧縮してください:
cd <instana_install_dir>/data/logs/ zip -r instana_agent_debug_logs.zip *
サポート・チケットのオープン
これらのトラブルシューティング手順を実行しても問題が解決しない場合は、サポートチケットを送信する前に、 MustGather のデータを収集してください。 MustGather このデータは、 IBM サポートがお客様の問題をより効率的に診断するのに役立ちます。
詳細については、 MustGather:、 Instana、.NET、Tracer - Linux を参照してください。