アプリケーションの規模と複雑性が増すにつれ、ログの管理はますます難しくなっていきます。オープンソースのロギングツールなら、完全カスタマイズのオープンソースソリューションであっても、New Relicのようなオブザーバビリティツールとオープンソースツールの組み合わせであっても、ログ管理をサポートしてくれます。このブログでは、オープンソースのロギングツールをいくつか取り上げ、スタック全体のオブザーバビリティ拡張にどう役立つか、またNew Relicと組み合わせてスタック全体のオブザーバビリティとロギングをどう最大化できるかを説明します。以下のオープンソースツールのNew Relicでのユースケースを紹介します。
- OpenTelemetry
- Logstash
- Fluent Bit
- Fluentd
- Rsyslog
これらのロギングツールでは、ログデータのインポート、解析、変換、フィルタリング、エクスポートが可能で、その柔軟性を生かしてオブザーバビリティ実践の強化を支援します。例えば、使用しているツールに応じてログを構造化し、個人データを難読化し、ログを読みやすくします。これらはすべて、ログがNew Relicに送信される前に行われます。
多くのオープンソースロギングツールには、ログデータ転送のプラグインやその他のオプションが用意されていますが、ログデータをNew Relicに送信するには別のソリューションを使う必要がある場合もあります。また、ログデータ転送の基本と、REST APIを使用してログデータをNew Relicに転送する方法についてもご紹介します。
オープンソースのロギングツールのユースケース
ログデータを適切に相関させて比較するには、中央集約化されたログ管理ソリューションが必要です。ログを標準化することも同じくらい重要ですが、多くの異なるサービスからのログを扱っていると、これがやっかいな場合もあります。異なるサービスからのログには異なる属性が含まれることが多く、しかも同じ属性に異なる名称がついていたりします。New Relicのようなオブザーバビリティツールは、ログを集約して管理し、アプリケーション内で実際に起こっていることの強力なデータを提供することができます。しかし、ログのフォーマットや標準化をサポートするオープンソースのロギングツールでも、これは可能です。オープンソースのロギングツールが、どのようにアプリケーションパフォーマンスの監視、分析の効果を高めるのか、ユースケースを見ていきましょう。
- ログデータのエクスポートとインポート:New Relicのようなオブザーバビリティツールは、サービスのカスタム実装向けのオプションと併せ、多くのサービスの自動計装機能を提供しています。それでもなお、サービスやアプリケーションからログやその他データをエクスポートするのが難しい状況に遭遇するかもしれません。例えば、カスタマイズされたインハウスのソリューションがあれば、それは一からログをエクスポートする必要があるということになります。OpenTelemetryやFluentdなどのオープンソースのツールは、ベンダー中立的なソリューションを提供し、ログデータを収集してNew Relicなどのツールに送信します。
- ログデータの中央集約化:理想的には、データは1か所に集約するべきです。そうでなければ、サービス間のログデータの相関と比較が効果的に行えません。オープンソースのロギングツールはログのインポートやエクスポートに対する柔軟性が非常に高いため、それを使用して確実にすべてのログデータを1か所に集約できます。
- ログの標準化と構造化:多くのオープンソースのロギングツールの重要な点は、ログデータの変換に使用できるということです。これは特に、構造化ログにおいて役立ちます。例えば、Logstashのようなロギングツールを使用して、ログがサービス全体で一貫した属性と測定単位を持つようにできます。標準化されたログは機械での読み込みがしやすくなり(自動化と分析の簡素化が容易になる)、また標準化されていないデータの比較をしようとする際の混乱やエラーを排除できるため、人間にとっても判読しやすくなります。
- 機密データの難読化:ログデータの一部を難読化する必要は、特に個人情報(PII)が含まれている場合によくあります。ロギングツールは、これらのデータを隠し、情報セキュリティ侵害やHIPAAなどの法律違反を防ぎます。
オープンソースの上位ロギングツール
オープンソースの上位ロギングツールのいくつかを、New Relicとの統合方法のヒントと併せてご紹介します。
OpenTelemetry
OpenTelemetryは、アプリケーションやサービスから、ログを含めたテレメトリデータを収集し、処理、エクスポートを行える強力なオープンソースツールです。これはログ管理やオブザーバビリティツールではなく、ベンダー中立の一連のツール、API、SDKの集積であり、コードを簡単にインストゥルメントし、必要に応じてどこへでも送信できます。また、OpenTelemetry(OTel)コレクターを使用して、ログを1か所に集約もできます。
OpenTelemetryはオブザーバビリティプラットフォームではないため、監視には追加のツールが必要です。そこでNew Relicのような、オールインワンのオブザーバビリティソリューションを提供するツールを使用することで、スタックの監視が非常にしやすくなります。
また、OpenTelemetryを使用すると、New Relicでのフルオブザーバビリティの実現も容易になります。New Relicは多くの環境で自動計装を提供しますが、一方で、カスタマイズされた計装が必要なサービスやアプリケーションもあるかもしれません。そこで、OpenTelemetryのベンダー中立のフレキシブルなソリューションを使うことにより、すべてのログとその他のテレメトリデータがNew Relicに送信されていることを担保されます。
OpenTelemetryが初めての方にも、より高度なソリューションを検討している方にも、New Relicはそれらを支援する多くのリソースを用意しています。以下にそのいくつかをご紹介します。
- 「OpenTelemetryメトリクス入門」は、ログを含むOpenTelemetryメトリクスの概要を説明しています。
- 「OpenTelemetry Collectorでログを強化する」では、OpenTelemetryでログを送信、強化する方法を紹介しています。
- 「OpenTelemetryの開始方法」は、OpenTelemetryでのアプリケーション設定、ホスト監視、Kubernetes監視をサポートします。
Logstash
Logstashは、さまざまなソースからのログデータの収集、解析、変換を行うデータ処理パイプラインです。このプラグインベースのアーキテクチャを使用してログなどのソースからのデータ収集をカスタマイズし、フィルターを使用してデータを変換し、さらに出力をカスタマイズして変換されたデータをNew Relicなどのソースに送信することができます。データの変換と解析機能は、ログの構造化と標準化に特に役立ちます。これにより、他のソースにエクスポートする前にデータの一貫性を確保することができます。
Logstashをすでに使用しており、New RelicでLogstashデータを転送してより有用にしたいのであれば、こちらのドキュメンテーションに従い、New RelicのLogstashアウトプットプラグインを設定してください。
Fluent Bit
Fluent Bitは、速くて軽量なオープンソースデータコレクターおよびプロセッサーです。典型的にはログデータの収集と処理に使用しますが、その他のMELT(メトリクス、イベント、ログ、トレース)データにも使用できます。Logstashと同様、ビルトイン・プラグインを使用してデータの解析、フィルタリング、変換ができます。
Fluent BitログをNew Relicに転送したい場合は、New Relic Fluent Bitプラグインに関するドキュメントをご確認ください。
また、Fluent Bitを使用して、New Relicログの柔軟性をさらに高めることもできます。以下にその例を挙げます。
- Fluent Bitを使用して、ログに含まれる個人情報(PII)やその他の機密情報の難読化ができます。詳細はFluent Bitを使用してNew Relicでログを難読化する方法でご紹介しています。
- また、Fluent Bitは、New Relicに送信しようとしている複数行のログを、判読、分析が容易な形にし、解析しやすくすることにも優れたツールです。
Fluentd
Fluent Bit同様、Fluentdはログデータの処理に使われることの多いオープンソースデータコレクターです。メトリクスやイベントなどの他のタイプのデータも処理できます。ただし、軽量のFluent Bitとは違い、Fluentdはより多くの機能を持ち、プラグインも多数あります。言い換えると、Fluent Bitのプラグインは軽量なアーキテクチャに最適化されているのに対し、Fluentdはより多くのユースケースをサポートする設計になっています。
もしすでにFluentdを使用しており、FluentdのログデータをNew Relicに転送したい場合、ログ転送用のFluentdプラグインのドキュメンテーションを確認して開始してください。
Rsyslog
Rsyslogは、「Rocket-fast system for log processing(ロケットのように速いログ処理システム)」の略です。その名が示す通り、Unixのようなシステム上でログデータの収集、処理、転送を行う高パフォーマンスのソフトウェアユーティリティです。ローカルファイルやクエリ、データベース、リモートサーバーなど、さまざまな場所にログデータを書き込むのに役立つツールであり、保管前にログデータを変換、構造化するのにも使用できます。典型的にはさまざまなソースからログデータを収集し、それを1か所に集約して保管するのに使用されます。Rsyslogは広く普及しており、ログ管理をすばやく実施したいと考えるチームによく使用されています。
- New Relicは、rsyslogでのsyslogデータ転送のネイティブサポートを提供します。
- rsyslogでのNew Relicへのログ転送に関する実践的チュートリアルについては、こちらのブログをお読みください。syslog、Rsyslog、syslog-ngの違いについてもご確認いただけます。
New Relicへのログ転送
多くのオープンソースツールには、すでにNew Relicへのデータ転送を行うプラグインやその他のライブラリがあります。実際、これらのツールがまさにデータ転送に必要なソリューションであることも多々あります。しかし、New Relicにデータを転送するためのネイティブの転送ソリューションがないロギングツールやサービスを使用しているとしたら、どうすべきでしょうか?
New Relicへのデータ転送のオプションは多くあり、詳細はNew Relicへのデータ転送ドキュメンテーションで説明されています。このドキュメンテーションでは、ログ転送がNew Relicでどのように機能するかを示す図表も記載されています。実行可能な方法の例として、以下のようなものがあります。
- アプリケーションログデータの転送には、エージェントによる方法を使用できます。New Relicは、Go、Java、Node.js、.NET、Python、PHP、Rubyなど、多くの言語のアプリケーションを自動計装トします。New Relicは、環境を自動検知するアプリ内のガイド付きインストレーションを提供しています。
- インフラストラクチャログデータの転送には、インフラストラクチャエージェントが使用でき、これもガイド付きインストールの一部になっています。もしくは、Fluent Bit、Fluentd、Logstashなど、前述した多くのオープンソースツールを使用することもできます。
- クラウドログデータの転送には、New Relicは、Amazon Web Services(AWS)、Google Cloud Platform(GCP)、Microsoft Azureとのインテグレーションを提供しています。クラウドインテグレーションの詳細については、インフラストラクチャインテグレーションの紹介をご覧ください。
- コンテナログデータの転送には、Kubernetesプラグインを使用するか、インフラストラクチャエージェントを使用してDockerを計装できます。New RelicログAPIやFastlyなどのAPIを含め、柔軟性の高いオプションが数多くあります。
次のステップ
New Relicでのログ管理についてさらに学びましょう。
New Relicがサポートするオープンソースプロジェクトについて学びましょう。例えば、New Relicエージェントはオープンソースです。
まだNew Relicをお使いではありませんか?無料のアカウントにサインアップしてください。アカウントには、毎月100GBの無料データ取込み、1名の無料フルプラットフォームユーザー、および無制限の無料ベーシックユーザーが含まれています。
本ブログに掲載されている見解は著者に所属するものであり、必ずしも New Relic 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。