こちらのブログでも紹介しているLogs in Contextが全てのAPMエージェントで利用可能になりました。
英語記事も公開されています。
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」でも説明しているので合わせてご参照ください。
必要なセットアップは大きく三つです。
- APMエージェントを設定する
- アプリケーションからAPMエージェントを利用してLogs in Contextに対応したフォーマットでログを出力する
- 出力したログをNew Relic Logsに送信する
それでは順番にみていきましょう。
APMエージェントを設定する
すでにご利用の場合はAPMエージェントがLogs in Contextをサポートしているバージョンかどうかご確認ください。新規でインストールする場合は最新版の利用をおすすめします。
また、分散トレーシングのトレースと関連するLogsを表示する機能を利用する場合は分散トレーシングを有効化してください。
アプリケーションからAPMエージェントを利用してLogs in Contextに対応したフォーマットでログを出力する
New Relicではすぐに利用できる様に、いくつかのログライブラリについては拡張機能の提供などを行っています。お使いのログライブラリに対応しているかはリンク先の表でご確認ください。
対応している場合、さらにリンクを飛び、ライブラリごとの導入手順をご参照ください。
また、お使いのライブラリについて提供していない場合ですが、APMエージェントのAPIで必要な情報を取得し、所定のフォーマットで出力することでLogs in Contextを利用することが可能です。詳細は以下のドキュメントをご参照いただきたいのですが、合わせて担当営業やSC、サポートチケットにもお問い合わせください。将来の対応予定の確認や、実装のお手伝いができることがあります。
出力したログをNew Relic Logsに送信する
出力したログの送信方法もいくつか選択肢があります。既存の仕組みと利用可能な方法を踏まえて選択できます。いくつか代表的な方法を紹介します。
- OS上で直接動いている場合、ファイルとして出力し、FluentdやFlunt Bit、Logstashで転送する
- コンテナ上で動いている場合、サイドカーコンテナにFluentdやFlunt 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 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。