• ログイン今すぐ開始

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

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

問題を作成する

PHPでのコンテキストのログの設定

当社の PHP APM エージェントを使用すると、ログをコンテキストで取得できます。これにより、他の New Relic データのコンテキストでアプリのログを確認できます。この機能の一般的な情報については、コンテキスト内の APM ログ を参照してください。

コンテキストオプションの自動ログ

サポートされているフレームワークを使用している場合は、アプリのログとリンク メタデータを New Relic に自動的に送信するように APM エージェントを構成できます。コンテキスト内の自動ログでサポートされているフレームワークには、次のものがあります。

  • モノログ (バージョン 2 または 3)

これは最も単純なアプローチであり、ログフォワーダーの設定にアクセスしたり関心を持ったりしていない開発者や、アプリのコンテキストでログやその他のリンクメタデータの機能を確認したいアカウントに最適です。多くのオーバーヘッド。

このオプションを使用すると、ログにspan.idtrace.idhostnameentity.guid 、およびentity.nameが含まれます。これらの属性は、ログをスパン、トレース、およびその他のテレメトリに自動的にリンクし、トラブルシューティングを容易にします。

重要

エージェント リリース 10.3.0 以降、ロギング メトリックとエージェント ログ転送機能はデフォルトで有効になっています。

ログ転送機能を備えたエージェント バージョン ( PHP エージェント 10.1.0 以降) をインストールし、構成を更新して転送を有効にするだけです (エージェント リリース 10.3.0 以降では、デフォルトで転送が有効になっています)。

構成ファイル( newrelic.ini ):

newrelic.application_logging.enabled = true
newrelic.application_logging.metrics.enabled = true
newrelic.application_logging.forwarding.enabled = true

PHP エージェント構成ドキュメントでは、エージェントの構成方法について詳しく説明していますが、ここでは、PHP ログ構成の最も重要な側面のいくつかを確認してリンクします。

コア ロギング機能がアクティブかどうかを制御するオプションは 1 つあります。

[newrelic.application_logging.enabled](/docs/apm/agents/php-agent/configuration/php-agent-configuration/#cfg-application_logging_forwarding-enabled)

サポートされているロギング フレームワークを使用している場合、エージェントは、アプリケーションが生成しているログ メッセージの重大度を測定するメトリクスを送信できます。newrelic.config.application_logging.metrics.enabled構成を使用して、この機能を有効にすることができます。

サポートされているロギング フレームワークを使用していて、エージェントを使用してアプリケーション ログを New Relic に送信したい場合は、INI 設定の接頭辞newrelic.config.application_logging.forwardingを使用して制御できます。利用可能なオプションは次のとおりです。

重要

既存のログ転送ソリューションがあり、コンテキストで自動ログを使用するようにエージェントを更新している場合は、手動ログ転送を無効にしてください。そうしないと、アプリは 2 倍のログ データを送信します。アカウントによっては、二重請求になる可能性があります。詳細については、特定のログ フォワーダーを無効にする方法をご覧ください。

While you wait for your data to come in...

Did this doc help you install?

データを保護する

ログには、HIPAAまたはその他のコンプライアンスプロトコルによって保護されている機密情報が含まれている場合があります。デフォルトでは、クレジットカードや社会保障番号などのアイテムのように見える番号パターンを難読化しますが、追加情報をハッシュまたはマスクする必要がある場合があります。

詳細については、難読化の式とルールに関するドキュメントを参照してください。 New Relic UIを使用するか、GraphQL APIであるNerdGraphを使用して、ログデータをハッシュまたはマスクできます。

データを調べる

ログデータを最大限に活用するには:

  • [ APMの概要]ページで、 Webトランザクションのタイムチャートをクリックして、特定の時点に関連付けられたログを表示します。
  • エラーに関連するログを表示するには、アプリの[エラー]受信ボックスを確認してください。
  • 分散トレースを使用して、個々のトレースに関連付けられているログを確認します。
  • Logs UIを使用して、プラットフォーム全体でより多くのログデータを探索します。
  • ログ出力と重大度に基づいてアラートを設定します。
  • ログデータ専用のUIを使用してデータをクエリし、結果を含むダッシュボードを作成します。

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

通常、コンテキストでAPMログを有効にした後、ログは1分以内に表示され始めます。アプリのトリアージ>ログセクションを確認します。また、そこでエラーに関連するログパターンが表示されるようになります。

エラーまたはトレースのログが表示されない場合は、アプリにログがない可能性があります。 UIページを更新するか、選択した期間を変更してみてください。

自動ロギングを無効にする

コンテキスト内の APM ログは、有効にすると、APM エージェント ログ データを自動的に転送します。エージェント リリース 10.3.0 以降、この機能は PHP エージェントに対してデフォルトで有効になっています。これは、セキュリティ、コンプライアンス、課金、またはシステム パフォーマンスに悪影響を及ぼす可能性があります。詳細については、またはデフォルト設定を調整する必要がある場合は、手順に従って自動ログを無効にしてください。

コンテキストオプションの手動ログ

言語エージェントがログを転送および装飾できるようになる前は、手動ソリューションを使用してリンクメタデータを送信できました。

このオプションは引き続きサポートされていますが、推奨されなくなりました。また、この方法では、コンテキストでログを有効にする前に、ログフォワーダーをインストールする必要があります。ログフォワーダーがない場合は、NewRelicUIでインフラストラクチャエージェントを使用するように求められます。

既存のログ転送ソリューションを使用することにし、後でエージェントを更新してコンテキストで自動ログを使用することにした場合は、必ず手動ログ転送を無効にしてください。それ以外の場合、アプリは二重のログ行を送信します。アカウントによっては、これにより二重請求が発生する可能性があります。詳細については、手順に従って特定のログフォワーダーを無効にしてください。

重要

このオプションは、エージェント内転送では使用しないでください。エージェント内転送が有効になっているときに外部ログフォワーダーを使用してログをNewRelicに送信すると、ログがNewRelicに2回送信されます。アカウントによっては、二重請求が発生する場合があります。

エージェントの構成を更新してログ転送を無効にしてから、エージェントを再起動します。

構成ファイル( newrelic.ini ):

newrelic.application_logging.forwarding.enabled = false

手動プロセスを使用して PHP のコンテキストでログを設定する必要がある場合は、最初に PHP アプリを設定します。

  1. NewRelicでのロギングをすでに設定していることを確認してください。これには、アプリケーションログを収集し、NewRelicに転送されるメタデータを拡張するサポートされているログフォワーダーの構成が含まれます。
  2. をインストールするか、 を最新の PHP エージェントバージョンに更新し、 分散型トレーシングを有効にするPHP エージェントのバージョン 9.13.0.270 以降を使用 コンテキストのログを取得します。
  3. Monolog バージョン1または2をインストールするか、New Relicに組み込まれたMonolog Handlerを使用していない場合は、 互換性のあるログ転送プラグイン を使用します。
  4. Monolog拡張機能を使用している場合は、PHPのコンテキストでログを設定します。
  1. ログアペンダーが正しく構成されていることを確認するには、アプリケーションを実行してから、クエリ演算子has:span.id has:trace.idを使用してNewRelicのログデータを確認します。

すべてが正しく構成され、データが強化されたメタデータとともにNew Relicに転送されている場合、ログはJSONとして出力され、 trace.id }フィールドとspan.idフィールドが含まれているはずです。 UIにログデータが表示されない場合は、トラブルシューティング手順に従ってください。

アプリケーションのログにtrace.idspan.idなどのフィールドが含まれていない場合は、Monologログエンリッチャーの構成に問題がある可能性があります。この状況では:

  • アプリ用のPHPエージェントがインストールされ、分散型トレースを有効にするように設定されていることを確認します。
  • syslog()ではなくログレコードを送信するときに、アプリケーションがMonologロガーオブジェクトを使用していることを確認してください。
  • 他のMonologハンドラーが、ログレコードが bubbling を妨げていないか確認してください。
Copyright © 2022 New Relic Inc.

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