アプリケーションの規模と複雑性が増すにつれ、ログの管理はますます難しくなっていきます。オープンソースのロギングツールなら、完全カスタマイズのオープンソースソリューションであっても、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を含め、柔軟性の高いオプションが数多くあります。
Next steps
New Relicでのログ管理についてさらに学びましょう。
New Relicがサポートするオープンソースプロジェクトについて学びましょう。例えば、New Relicエージェントはオープンソースです。
まだNew Relicをお使いではありませんか?無料のアカウントにサインアップしてください。アカウントには、毎月100GBの無料データ取込み、1名の無料フルプラットフォームユーザー、および無制限の無料ベーシックユーザーが含まれています。
The views expressed on this blog are those of the author and do not necessarily reflect the views of New Relic. Any solutions offered by the author are environment-specific and not part of the commercial solutions or support offered by New Relic. Please join us exclusively at the Explorers Hub (discuss.newrelic.com) for questions and support related to this blog post. This blog may contain links to content on third-party sites. By providing such links, New Relic does not adopt, guarantee, approve or endorse the information, views or products available on such sites.