• ログイン今すぐ開始

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

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

問題を作成する

インフラストラクチャ・エージェントのロギング動作

New Relicのインフラストラクチャエージェントは、独自のデータと統合のログを収集し、それらを単一のソースに統合します。デフォルトでは、ログはstandard-outputに表示され、 ログファイルに追加されます。標準出力でログを無効にするには、エージェントの構成オプションを参照してください

基本構成

次の例は、Linuxシステムでのエージェントログの一般的な構成を示しています(Windowsまたは他のプラットフォームを実行している場合はファイルパスを変更します)。

log:
level: info
file: '/var/log/newrelic-infra/newrelic-infra.log'
rotate:
max_size_mb: 100
max_files: 5
compression_enabled: true
file_pattern: "YYYY-MM-DD_hh-mm-ss".log

ログの重大度レベル

インフラストラクチャーでは、標準的な Syslog の深刻度レベルのサブセットを使用しています

  • ERROR:エラー条件が満たされました
  • WARN:警告条件が満たされました
  • INFO:情報メッセージ
  • DEBUG:デバッグレベルのメッセージが含まれています(トラブルシューティング時に役立ちます)

ログのフォーマット

インフラストラクチャエージェント v1.4.9 以降 では、ログメッセージがコンテキスト値とともにインライン化されます。これにより、グループ化やフィルタリングがしやすくなります。

containerized agent found in container
     containerID: VALUE

デフォルトでは、インフラストラクチャーのログはテキストとしてフォーマットされています。

  • フォアグラウンドモードでは、ログ出力はタイムスタンプなしのカラー表示となります。

    DEBUG Sending deltas divided in blocks component=PatchSender mentityKey=ohaimaci mnumberOfBlocks=1
  • バックグラウンドモードでは、ログはタイムスタンプ付きで出力されます。これは、サービスとして実行する場合や、ログをファイルにダンプする場合に使用されます。

    time="2019-07-12T09:54:15+02:00" level=info msg="Agent service manager shutdown completed successfully." component=AgentService service=newrelic-infra

また、ログをJSONファイルとしてフォーマットすることもできます。

{"context":{},"level":"info","msg":"upstart_interval_sec: 0","timestamp":"2019-07-11T18:24:03+02:00"} 
{"context":{},"level":"info","msg":"plugin_dir: ","timestamp":"2019-07-11T18:24:03+02:00"}

ログ形式を変更するには、 エージェントの構成設定を参照してください。

ビルトインログローテーション

インフラストラクチャエージェントv1.28.0以降の場合、組み込みのログローテーションおよび圧縮メカニズムがエージェントで使用できます。

スマートバーボーズモード

インフラストラクチャエージェントのバージョン1.9.0以降 では、ログのスマートverboseモードを有効にすることができます。

Smart verboseモードでは、エラーメッセージが検出されるまで、デバッグメッセージがログに記録されません。エラーが検出されると、デバッグメッセージはエラーが発生する前にログファイルに書き込まれます。設定された最新の数のデバッグメッセージのみが記録されることに注意してください。例えば、設定された上限を10とした場合、エラーが検出されると、エラーが検出される前の最新の10個のデバッグメッセージがログに記録されます。

スマート冗長モードとデバッグメッセージ制限を有効にする方法の詳細については、 インフラストラクチャ構成設定を参照してください。

統合ログ管理

インテグレーションは、JSONペイロードをSTDOUTに、プレーンテキスト(将来的にはJSON構造化)のログをSTDERRに書き込みます。

インフラストラクチャエージェントは統合STDERR行を処理し、この出力をエージェントログに転送します。

エージェントは各STDERR行を以下のように処理します。

  • エージェントが冗長モードで実行される場合: DEBUGエージェントのログエントリとしてSTDERRの全行を転送するだけで、`msg`フィールド内に統合行のコンテキストを配置します。
  • それ以外の場合: 想定されるフォーマット(下記参照)に沿って行を解析し、深刻度が `fatal` または `error` の統合によって生成されたエントリのみをエージェントの ERROR レベルとして記録します。この場合、フィールドは構造化された方法で抽出され、転送されます (したがって、エージェントで JSON 出力が有効な場合、フィールドはクエリ可能になります。

統合STDERR期待フォーマット

行は、等号で区切られたキーと値のペアのリストであることが期待されます。キーには任意の文字を含めることができますが、値には3つの異なる形式があります。

  1. string:<quote>任意の文字(エスケープされた引用符を含む) ▽"< quote>
  2. 地図:&{任意の文字}。
  3. word: スペースを除く任意の文字

エージェントの内部では、この正規表現を使ってフィールドを抽出しています。

([^\s]*?)=(".*?[^\\]"|&{.*?}|[^\s]*)

例えば、このセリフ。

time="2015-03-26T01:27:38-04:00" level=error msg="Foo bar baz" foo=bar

これらのフィールドを含む構造化されたエージェントログラインが生成されます。

- "time": "2015-03-26T01:27:38-04:00"
- "level": "error"
- "msg": "Foo bar baz"
- "foo": "bar"
Copyright © 2022 New Relic Inc.

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