私たちのPHPで これにより、他の New Relic データのコンテキスト でアプリのログを確認できます。 この機能の一般的な情報については、 コンテキスト内の APM ログ を参照してください。
コンテキストオプションの自動ログ
サポートされているフレームワークを使用している場合は、アプリのログとリンク メタデータを New Relic に自動的に送信するように APM エージェントを構成できます。コンテキスト内の自動ログでサポートされているフレームワークには、次のものがあります。
- モノログ (バージョン 2 または 3)
これは最も単純なアプローチであり、ログフォワーダーの設定にアクセスしたり関心を持ったりしていない開発者や、アプリのコンテキストでログやその他のリンクメタデータの機能を確認したいアカウントに最適です。多くのオーバーヘッド。
このオプションを使用して、エージェントはspan.id
、 trace.id
、 hostname
、 entity.guid
、およびentity.name
を追加します。ログ転送の制限について学習します。
重要
エージェント リリース 10.3.0 以降、ロギング メトリックとエージェント ログ転送機能はデフォルトで有効になっています。
ログ転送機能を備えたバージョンのエージェントをインストールするだけです ( PHP エージェント 10.1.0 以降)。転送が無効になっている場合は、次の構成を使用できます。
構成ファイル( newrelic.ini
):
newrelic.application_logging.enabled = truenewrelic.application_logging.metrics.enabled = truenewrelic.application_logging.forwarding.enabled = true
PHP エージェント構成ドキュメントでは、エージェントの構成方法について詳しく説明していますが、ここでは、PHP ログ構成の最も重要な側面のいくつかを確認してリンクします。
コア ロギング機能がアクティブかどうかを制御するオプションは 1 つあります。
サポートされているロギング フレームワークを使用している場合、エージェントは、アプリケーションが生成しているログ メッセージの重大度を測定するメトリクスを送信できます。newrelic.config.application_logging.metrics.enabled
構成を使用して、この機能を有効にすることができます。
サポートされているロギング フレームワークを使用していて、エージェントを使用してアプリケーション ログを New Relic に送信したい場合は、INI 設定の接頭辞newrelic.config.application_logging.forwarding
を使用して制御できます。利用可能なオプションは次のとおりです。
重要
既存のログ転送ソリューションがあり、コンテキストで自動ログを使用するようにエージェントを更新している場合は、手動ログ転送を無効にしてください。そうしないと、アプリは 2 倍のログ データを送信します。アカウントによっては、二重請求になる可能性があります。詳細については、特定のログ フォワーダーを無効にする方法をご覧ください。
このドキュメントはインストールで役立ちましたか。
データを保護する
ログには、HIPAAまたはその他のコンプライアンスプロトコルによって保護されている機密情報が含まれている場合があります。デフォルトでは、クレジットカードや社会保障番号などのアイテムのように見える番号パターンを難読化しますが、追加情報をハッシュまたはマスクする必要がある場合があります。
詳細については、難読化の式とルールに関するドキュメントを参照してください。 New Relic UIを使用するか、GraphQL APIであるNerdGraphを使用して、ログデータをハッシュまたはマスクできます。
データを調べる
ログデータを最大限に活用するには:
- [ APMの概要]ページで、 Webトランザクションのタイムチャートをクリックして、特定の時点に関連付けられたログを表示します。
- エラーに関連するログを表示するには、アプリの[エラー]受信ボックスを確認してください。
- 分散トレースを使用して、個々のトレースに関連付けられているログを確認します。
- Logs UIを使用して、プラットフォーム全体でより多くのログデータを探索します。
- ログ出力と重大度に基づいてアラートを設定します。
- ログデータ専用のUIを使用してデータをクエリし、結果を含むダッシュボードを作成します。
トラブルシューティングのヒント
通常、有効にしてから 1 分以内にログが表示され始めます。 コンテキストでログインします。 アプリの Triage > Logs セクションを確認してください。 また、そこにエラーに関連する ログ パターンが 表示されるようになります。
エラーまたはトレースのログが表示されない場合は、アプリにログがない可能性があります。 UIページを更新するか、選択した期間を変更してみてください。
自動ロギングを無効にする
コンテキスト内の APM ログは自動的に転送されます 有効な場合のエージェント ログ データ。 エージェント リリース 10.3.0 以降、この機能は PHP エージェントに対してデフォルトで有効になっています。これは、セキュリティ、コンプライアンス、課金、またはシステム パフォーマンスに悪影響を及ぼす可能性があります。詳細については、またはデフォルト設定を調整する必要がある場合は、手順に従って 自動ログを無効にしてください。
コンテキストオプションの手動ログ
言語エージェントがログを転送および装飾できるようになる前は、手動ソリューションを使用してリンクメタデータを送信できました。
このオプションは引き続きサポートされていますが、推奨されなくなりました。また、この方法では、コンテキストでログを有効にする前に、ログフォワーダーをインストールする必要があります。ログフォワーダーがない場合は、NewRelicUIでインフラストラクチャエージェントを使用するように求められます。
既存のログ転送ソリューションを使用することにし、後でエージェントを更新してコンテキストで自動ログを使用することにした場合は、必ず手動ログ転送を無効にしてください。それ以外の場合、アプリは二重のログ行を送信します。アカウントによっては、これにより二重請求が発生する可能性があります。詳細については、手順に従って特定のログフォワーダーを無効にしてください。
重要
このオプションは、エージェント内転送では使用しないでください。エージェント内転送が有効になっているときに外部ログフォワーダーを使用してログをNewRelicに送信すると、ログがNewRelicに2回送信されます。アカウントによっては、二重請求が発生する場合があります。
エージェントの構成を更新してログ転送を無効にしてから、エージェントを再起動します。
構成ファイル( newrelic.ini
):
newrelic.application_logging.forwarding.enabled = false
手動プロセスを使用して PHP のコンテキストでログを設定する必要がある場合は、最初に PHP アプリを設定します。
- NewRelicでのロギングをすでに設定していることを確認してください。これには、アプリケーションログを収集し、NewRelicに転送されるメタデータを拡張するサポートされているログフォワーダーの構成が含まれます。
- をインストールするか、 を最新の PHP エージェントバージョンに更新し、 分散型トレーシングを有効にする 。 PHP エージェントのバージョン 9.13.0.270 以降を使用 コンテキストのログを取得します。
- Monolog バージョン1または2をインストールするか、New Relicに組み込まれたMonolog Handlerを使用していない場合は、 互換性のあるログ転送プラグイン を使用します。
- Monolog拡張機能を使用している場合は、PHPのコンテキストでログを設定します。
- ログアペンダーが正しく構成されていることを確認するには、アプリケーションを実行してから、クエリ演算子
has:span.id has:trace.id
を使用してNewRelicのログデータを確認します。
すべてが正しく構成され、データが強化されたメタデータとともにNew Relicに転送されている場合、ログはJSONとして出力され、 trace.id
}フィールドとspan.id
フィールドが含まれているはずです。 UIにログデータが表示されない場合は、トラブルシューティング手順に従ってください。
アプリケーションのログにtrace.id
やspan.id
などのフィールドが含まれていない場合は、Monologログエンリッチャーの構成に問題がある可能性があります。この状況では:
- アプリ用のPHPエージェントがインストールされ、分散型トレースを有効にするように設定されていることを確認します。
syslog()
ではなくログレコードを送信するときに、アプリケーションがMonologロガーオブジェクトを使用していることを確認してください。- 他のMonologハンドラーが、ログレコードが bubbling を妨げていないか確認してください。