本記事では、ファーストステップガイドの一つとして、Fluentd を使用して任意のログを New Relic に送信するための設定方法と、カスタマイズのヒントについてご紹介します。
また、New Relic アカウントをお持ちでない場合は これからはじめるNew Relicライフ! 無料でアカウントを開設しよう!をご覧ください。
Fluentdについて
Fluentd は、様々なデータソースや送信先サービスに対応した、オープンソースのログ転送ソリューションです。
New Relic の Infrastructure Agent には、ビルトインのログ転送機能がありますが、すでに Fluentd を使ってログを集約している場合や、あるいはログの送信前に細かなデータ加工を行うようなユースケースでは、引き続き Fluentd を使用することも選択できます。また、インフラ監視を行わずにログ転送のみを設定したい場合にも有効です。
設定方法
本記事では、一般的な Linux OS 上で nginx のログを転送する例について記載します。Fluentd のセットアップは、同プロジェクトのドキュメントに沿って実施してください。
なお、Fluentd は最新の calyptia-fluentd をセットアップしています。calyptia-fluentd と td-agent は提供元に違いがありますが、バイナリや設定ファイルのパスが異なる以外は、基本的には同様に使用可能です。td-agent をご利用の場合には、calyptia-fluentd を td-agent と読み替えてください。
Fluentdプラグインのインストール
Fluentd はプラグインを使用して、様々なデータソースや送信先サービスに対応できることが特徴です。New Relic へデータを送信するためのプラグインをセットアップするには、以下コマンドを実行します。
calyptia-fluentd-gem install fluent-plugin-newrelic
ログ転送設定サンプル
今回作成した、nginx のアクセスログとエラーログを New Relic へ送信するための Fluentd の設定ファイルを例として紹介します。
ドキュメントに記載の設定例にくわえて、New Relic の UI 上での可視性や分析のしやすさに考慮し、以下のような設定を行い、各ログ行にいくつかの属性を付与しています。
- nginx 用の Parser プラグインを使用して、ログの各フィールドをカスタム属性(Custom attributes)に変換
- パース前のメッセージは message 属性として保持
- filePath 属性に、各ログ行の読み取り元ファイルパスを設定
- hostname 属性に、送信元ホスト名を設定
- logtype 属性に、ログ種別を示すタグを指定
設定ファイルは /etc/calyptia-fluentd/calyptia-fluentd.conf です。このファイルの末尾に以下のような設定を追加して保存します。YOUR_LICENSE_KEY は、送信先となる New Relic アカウントの Ingest 用ライセンスキーで置換してください。
動作確認
Fluentdを起動します。
systemctl start calyptia-fluentd.service
実際にアクセスログを発生させて、ログ転送が行えていることを確認してみましょう。今回は curl で localhost:80 にアクセスする形で簡易的な検証を行いました。設定に誤りがなければ、まもなく New Relic の Logs UI 上で転送されたログが確認できます。

転送されたログエントリを確認すると、Fluentd 側で設定したカスタム属性が付与されていることが分かります。
Logs UI メニューの Attributes ページでは、ログ行に付与された属性に基づいたデータの抽出が可能です。例えば、特定のパスで特定のレスポンスコードを返したログのみを抽出するといった分析が容易になります。

おわりに
今回は Fluentd を使用して New Relic にログを送信する方法について紹介しました。New Relic では、その他にも様々なサービスやソリューションからのログを取り込み、分析に用いることができます。ぜひ皆様のアプリケーションの運用や改善活動にお役立てください。詳細はドキュメントもご確認ください。
이 블로그에 표현된 견해는 저자의 견해이며 반드시 New Relic의 견해를 반영하는 것은 아닙니다. 저자가 제공하는 모든 솔루션은 환경에 따라 다르며 New Relic에서 제공하는 상용 솔루션이나 지원의 일부가 아닙니다. 이 블로그 게시물과 관련된 질문 및 지원이 필요한 경우 Explorers Hub(discuss.newrelic.com)에서만 참여하십시오. 이 블로그에는 타사 사이트의 콘텐츠에 대한 링크가 포함될 수 있습니다. 이러한 링크를 제공함으로써 New Relic은 해당 사이트에서 사용할 수 있는 정보, 보기 또는 제품을 채택, 보증, 승인 또는 보증하지 않습니다.