• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

Linux での .NET Core エージェントのデバッグ

問題

New Relic の .NET エージェントを Linux にインストールした後、データが表示されない、データが欠落していることに気づく、ログが表示されないなどの問題が発生します。

解決

重要

  • 続行するためには、ホストの管理者権限が必要です。
  • インストールと実行の手順が守られていることを確認する (インストールガイド)

ステップ1:アプリケーションのエージェントログの確認

ヒント

  • .NET Coreエージェントをインストールした場合、またはいずれかのエージェントをNewRelic.Agent NuGetパッケージとともにインストールした場合は、システム上でエージェントが抽出されたディレクトリにlogsフォルダーがあります。
  • Linuxの一部のインストール方法では、デフォルトで/usr/local/newrelic-dotnet-agent (エージェントバージョン10.0.0以降)または/usr/local/newrelic-netcore20-agent (エージェントバージョン9.9.0以下)になります。
  1. 現在のデータを見ているかどうかを確認します。logsディレクトリ内の既存のファイルを削除または移動して、生成されるログがシステムの現在の状態を反映していることを確認してください。
  2. アプリケーションを再起動します。
  3. New Relic アカウントに表示されることが予想されるトラフィックを生成する方法で、アプリケーションを少なくとも 1 分間実行します。
  4. アプリケーションが実行されているプロセスID(PID)をメモして、そのプロセスのログが作成されているかどうかを確認できるようにします。PIDは、コマンドラインから次のコマンドのいずれかを使用して見つけることができます: pidof dotnetまたはpidof the_process_name
  5. エージェントのログディレクトリに戻り、アプリケーションのプロセスIDを含む名前(たとえば、 NewRelic.Profiler.[PID].log )のログファイルを探します。
  6. ログディレクトリにそのprofiler logファイルが表示されている場合は、対応するエージェントログがあるかどうかも確認してください。
  7. プレフィックスがnewrelic_agentの別のファイルを探します。ホストで複数の.NETアプリケーションを実行している場合は、これらが複数存在する可能性があります。1つ以上が表示された場合は、監視しようとしているアプリケーションに対応するものを判別する必要があります。
  8. エージェントログで文字列(pid [your PID])を検索します(例: (pid 1573) 。ログファイルでその文字列を見つけた場合は、それがアプリケーションに関連付けられているエージェントログであることがわかります。

ステップ2:.NET Coreのエージェントプロファイラがアプリケーションのプロセスにロードされているかどうかを確認する

コンソールで、 pidをプロセスIDに置き換えて、以下を実行します。

sudo cat /proc/PID/maps | grep "libNewRelicProfiler.so"

出力結果に基づいて、あなたがすべきことは以下の通りです。

  • そのコマンドで結果が得られない場合は、次のステップに進みます。
  • 結果が出た場合は、 ステップ4 (許可)に読み飛ばしてください。

Step 3: 必要な環境変数を確認します。

PIDをプロセスIDに置き換えて、以下を実行します。

xargs --null --max-args=1 < /proc/PID/environ | grep "CORECLR_"

出力結果に基づいて、あなたがすべきことは以下の通りです。

  • 結果が出ない場合は、 環境変数 を設定し、アプリケーションを再起動してから、ステップ1に戻ってください。

  • 結果が出た場合は、4つの必須変数がすべて設定され、有効な値を持っていることを確認してください。

    • CORECLR_ENABLE_PROFILING:常に1に設定する必要があります。
    • CORECLR_PROFILER:常に{36032161-FFC0-4B61-B559-F6C5D41BAE5A}に設定する必要があります。
    • CORECLR_NEWRELIC_HOME:.NET Coreエージェントディレクトリ( newrelic.configlibNewRelicProfiler.so 、および拡張ディレクトリが配置されているディレクトリ)への完全修飾パスに設定する必要があります。
    • CORECLR_PROFILER_PATH:ファイルlibNewRelicProfiler.soへの完全修飾パスに設定する必要があります。これはほとんどの場合CORECLR_NEWRELIC_HOME + /libNewRelicProfiler.soに等しくなります。
  • 環境変数に変更を加えた場合は、アプリを再起動し、 Step 1 に戻ってください。

ステップ4:パーミッションの確認

以下のパーミッションタスクを確認してください。

  • アプリケーションプロセスを実行しているユーザーが、システム( CORECLR_NEWRELIC_HOME )で.NETCoreエージェントが抽出されたディレクトリとそのすべてのサブディレクトリに対する読み取り/書き込み/実行のアクセス許可を持っていることを確認してください。
  • 変更があった場合は、アプリを再起動して、 ステップ1 に戻ってください。

上記の手順で問題が解決しなかった場合は、 Explorers Hub の ask for help でサポートに連絡することをお勧めします。

Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.