こちらのブログでも紹介しているLogs in Contextが全てのAPMエージェントで利用可能になりました。

人気の新機能”Logs in Context”を紹介します

英語記事も公開されています。

New Relic Logs Update: Announcing Logs in Context for All New Relic Agents

Logs in ContextはAPMエージェントと連携して関連性の高いログを素早く見つけるための機能です。そのため、ログ単体ではなく、APMエージェントの機能と組み合わせて導入する必要があります。また、素早く導入できる様にするために各言語のログフレームワークごとにライブラリを提供していることもあり、ドキュメントが分かれています。そこで本記事ではセットアップの概要をまとめたいと思います。

詳細については「Configure logs in context with APM agents」でも説明しているので合わせてご参照ください。

必要なセットアップは大きく三つです。

  1. APMエージェントを設定する
  2. アプリケーションからAPMエージェントを利用してLogs in Contextに対応したフォーマットでログを出力する
  3. 出力したログをNew Relic Logsに送信する

それでは順番にみていきましょう。

APMエージェントを設定する

すでにご利用の場合はAPMエージェントがLogs in Contextをサポートしているバージョンかどうかご確認ください。新規でインストールする場合は最新版の利用をおすすめします。

https://docs.newrelic.com/docs/logs/enable-logs/configure-logs-context/configure-logs-context-apm-agents#compatibility-requirements

また、分散トレーシングのトレースと関連するLogsを表示する機能を利用する場合は分散トレーシングを有効化してください。

アプリケーションからAPMエージェントを利用してLogs in Contextに対応したフォーマットでログを出力する

New Relicではすぐに利用できる様に、いくつかのログライブラリについては拡張機能の提供などを行っています。お使いのログライブラリに対応しているかはリンク先の表でご確認ください。

https://docs.newrelic.co.jp/docs/logs/enable-logs/configure-logs-context/configure-logs-context-apm-agents#enable-logs

対応している場合、さらにリンクを飛び、ライブラリごとの導入手順をご参照ください。

また、お使いのライブラリについて提供していない場合ですが、APMエージェントのAPIで必要な情報を取得し、所定のフォーマットで出力することでLogs in Contextを利用することが可能です。詳細は以下のドキュメントをご参照いただきたいのですが、合わせて担当営業やSC、サポートチケットにもお問い合わせください。将来の対応予定の確認や、実装のお手伝いができることがあります。

https://docs.newrelic.co.jp/docs/logs/enable-logs/logs-context-agent-apis/annotate-logs-logs-context-using-apm-agent-apis

出力したログをNew Relic Logsに送信する

出力したログの送信方法もいくつか選択肢があります。既存の仕組みと利用可能な方法を踏まえて選択できます。いくつか代表的な方法を紹介します。

  • OS上で直接動いている場合、ファイルとして出力し、FluentdFlunt BitLogstashで転送する
  • コンテナ上で動いている場合、サイドカーコンテナにFluentdFlunt Bit を入れて転送する。あるいは、dockerのログドライバー経由でホスト側のFluentdなどで転送する。
  • kubernetes上で動いている場合、New Relic LogsのKubernetes pluginを利用する
  • CloudWatchに出力できる場合、CloudWatch pluginを利用する。あるいはECSの場合はFireRens pluginが利用できます。
  • ログライブラリがサポートしている場合、ログライブラリから直接New Relic Logsに転送するエージェントレス送信が利用できます

 

以上、Logs in Contextのセットアップ概要をまとめてみました。実際にどの方法を選択するか迷ったときや、うまく動かない時はぜひNew Relicまでご相談ください。

ソフトウェアエンジニア、インフラエンジニアなど自社開発や自社運用の現場で経験を積んだのち外資系ソフトウェアベンダーでのテクニカルサポートを経て現職。New Relicユーザーだった経験あり。コミュニティでの登壇活動も多く、Microsoft MVPを7年連続受賞中。得意分野はC#をはじめとするソフトウェア開発、Kubernetes関連技術およびパブリッククラウド。 View posts by .