アプリやホストの問題のトラブルシューティングを行うときは、すべてのNewRelicツールをすぐに使用できます。ただし、UI全体で多くのコンテキスト切り替えを行ったり、利用可能な豊富な情報に圧倒されたりすることは望ましくありません。
APMエージェントは、関連する属性をアプリケーションログデータに自動的に追加できます。これにより、コンテキストでのログの使用が非常に簡単になります。アプリケーションは、エージェントを使用してログデータを直接NewRelicに転送することもできます。
ログは、それらが属するアプリケーション、トランザクション、またはエラーのコンテキストでより価値があります。ログインコンテキスト機能を使用すると、アプリケーションからのログ、分散トレース、およびエラーをAPMで直接表示できるため、トラブルシューティングの方法が変わります。
コンテキスト内のログがアプリとホストの問題の根本原因を見つけるのにどのように役立つかを確認するには、次の短いビデオ(約3:40分)をご覧ください。
コンテキストでの自動ログの機能の詳細をご覧ください。この例では、エンジニアリングチームがアプリの応答時間の低下とエラー率の上昇をトラブルシューティングするために、これをどのように使用したかを説明しています。
始めましょう
コンテキストでAPMログを設定するには:
- New Relicアカウントをまだお持ちでない場合は、New Relicアカウントを新たに作成します。永久無料です。
- アプリとホストでサポートされているエージェントバージョンに更新します。
- エージェントのログを有効にし、構成ファイルにいくつかの小さな更新を加えます。
それでおしまい! NewRelicのコンテキストでAPMログを使用してアプリケーションのトラブルシューティングを開始します。
- one.newrelic.comのエクスプローラーUI
- EU地域のエクスプローラーUI: one.eu.newrelic.com
New RelicのAPMサマリーページから、ログ、トレース、エラーにドリルダウンします。
APMエージェントログの構成
最新のAPMエージェントは、サードパーティソフトウェアをインストールまたは保守することなく、コンテキストの自動追加とログの転送をサポートしています。ログには、 span.id
、 trace.id
、 hostname
、 entity.guid
、 entity.name
などの属性が自動的に含まれます。このメタデータは、ログをトレース、スパン、インフラストラクチャデータ、およびその他のテレメトリにリンクし、トラブルシューティングを容易にします。
すべての言語またはロギングフレームワークがまだサポートされているわけではありません。以下は、現在サポートされている環境であり、言語固有のドキュメントへのリンクがあります。
- エージェントv3.17.0以降のコンテキストプロシージャにログを記録する
- エージェントv7.6.0以降のコンテキストプロシージャにJavaがログインします
- .NETは、エージェントv9.8.0以降のコンテキストプロシージャにログインします
- Node.jsは、エージェントv8.11.0以降のコンテキストプロシージャにログインします
- Pythonは、エージェントv7.12.0.176のコンテキストプロシージャにログインします
- Rubyは、エージェントv8.6.0以降のコンテキストプロシージャにログインします
ヒント
APMログインコンテキストは、APMエージェントログデータを自動的に転送し、デフォルトで有効になっています。これは、セキュリティ、コンプライアンス、請求、またはシステムパフォーマンスに悪影響を与える可能性があります。詳細について、またはデフォルト設定を調整する必要がある場合は、手順に従って自動ロギングを無効にしてください。
APMエージェントがコンテキストソリューションの自動ログをまだサポートしていない場合は、コンテキストソリューションの手動ログを引き続き使用し、インフラストラクチャエージェントまたはサポートされているサードパーティのフォワーダーを介してログを転送できます。
データのプライバシーを確保する
注意
New Relicに送信するログデータはユーザーが管理するため、組織のセキュリティガイドラインに従って、個人識別情報(PII)、保護された健康情報(PHI)、またはその他の機密データの送信をマスク、難読化、または防止してください。
ログ取り込みパイプラインは、クレジットカード、社会保障番号、国民IDなどを自動的にマスクします。詳細については、ログ管理に関するセキュリティドキュメントを参照してください。
難読化機能を使用して、ログ内の機密データをマスクまたはハッシュするカスタムルールを作成することもできます。これは、機密データへのアクセスを制限することが非現実的または不可能な場合、または一部のデータをNewRelicによって保存してはならない場合に重要です。詳細については、難読化のドキュメントをお読みください。
ログの重複を防ぐ
コンテキスト機能でログを使用すると、データの取り込みが増加します。アカウントの料金モデルによっては、これが取り込み制限と請求に影響を与える可能性があります。
注意
APMエージェントを使用してアプリケーションから直接ログを送信する場合は、それらのアプリケーションから現在ログを収集しているログ転送ソリューションを無効にするか、変更する必要があります。そうしないと、重複したログが送信され、二重請求が発生します。
重複ログの送信を回避する方法の詳細については、アップグレードガイドを確認してください。
詳細については、手順に従って特定のログフォワーダーを無効にしてください。
摂取制限を管理する
例:エンジニアリングチームがアプリの問題のトラブルシューティングを行っているため、APMエージェントによって収集されるログの量を一時的に増やして、より詳細なログを提供します。ただし、上限を数日間実行したままにすると、不要なデータが送信され、請求額が増える可能性があります。
予期しない事態を回避するために、 NRQLクエリを使用してアラート条件を作成し、取り込み制限を追跡することをお勧めします。例えば:
例:コンテキストでのログの力
これは、問題の根本原因を突き止めるためにコンテキストでAPMログを使用する詳細な使用例です。
シナリオ例:オンコールエンジニアは、アプリの応答時間の短さとエラー率の上昇に関するNewRelicアラート通知を受け取ります。エラーと遅延の増加の背後にある根本的な原因を発見する必要があるため、問題のあるホストを負荷分散からローテーションするか、最新のリリースをロールバックするかを決定できます。
トラブルシューティングを開始するには、NewRelicUIに移動します。