「New Relic Drinks Straight from the Firehose: Consuming Amazon Kinesis Data」の抄訳です。

 

新しいNew Relic One開始にあわせて、AWSとのパートナーシップと、すべてのテレメトリデータに対応したオープンでプログラマブルなプラットフォームをお客様に提供する取り組みを正式に発表しました。

Telemetry Data Platformの一部として、New Relicを利用したログ管理は、これまで以上に簡単かつ手頃な価格で利用できるようになりました。毎月100GBのデータ取り込みは無料です。また、100GBを超えるデータは、1ヶ月のデータ取り込み$0.35/GBドルとなっています。

この取り組みの一環として、New Relicはお客様がAmazon Kinesis Data Firehoseからデータを簡単に直接取り込みできるようになりました。

New Relic One + Amazon Kinesis Data Firehose

New Relicは、Amazon Kinesis Data Firehoseから直接データを取り込むことができるようになり、より完璧なソフトウェアを実現するためのインサイトを拡張しました。Kinesis Data FirehoseはAmazon Simple Storage Service(Amazon S3)、Amazon RedshiftなどのAWSサービス、その他さまざまな外部サービスに、リアルタイムストリーミングデータを配信するフルマネージドサービスです。

ソフトウェアチームは、インフラ、アプリケーション、ログ、デジタルエクスペリエンスのために、別々の監視ツールの採用を余儀なくされてきたため、データのサイロ化が発生し、結果として死角が生まれていました。死角を無くすために、ツールを切り替えて作業する必要があり、問題根本原因を突き止めることが難しくなります。New Relic Oneは、すべてのデータを1つの場所でリアルタイムに見ることができます。New Relicのオープンプラットフォームは、ソースに関わらず、すべてのテレメトリーデータを簡単に取り込み、分析できるように設計されています。

今回のKinesis Data Firehose HTTPエンドポイント配信のリリースにより、データを自動的に取り込み、New Relicに転送するようにデータストリームを簡単に構成することができます。また、Kinesis Data Firehoseを設定して、データを配信する前にデータを変換したり、Attribute情報を付与したりすることもできます。アプリケーションを作成したり、リソースを管理したり、AWS Lambda関数を作成したりする必要がないので、データ量に応じたコストの管理・見積もりが容易になります。

この投稿では、Kinesis Firehoseデータ配信ストリームを使用して、Amazon CloudWatch LogsデータをNew Relic にストリーミングする方法を実際の設定・画面と合わせてご紹介します。

 

前提条件

New Relicの設定にはNew RelicアカウントとInsights Insights Insert API Keyが必要になります。またAWSにおいてすべてのデータを転送するのに十分なサービス制限割り当てが配信ストリームにあることを確認する必要もあります。Kinesis Data Firehoseには、リージョンによって異なるデフォルトの割り当てが設定されています。もし不足している場合は、AWSでケースを作成して、割り当ての増加をリクエストできます。

配信ストリームの作成

まずデータを取り込むための配信ストリームを作成する必要があります。次の手順を実行します。

  1. AWSマネジメントコンソールにサインインし、Kinesis移動します。

  2. [ Data Firehose]で、[ Create delivery stream]を選択します

    Kinesis Data Firehose delivery streams

  3. 配信ストリームの名前を入力します。

  4. ソースは[Direct PUT or other sources]を選択します。

  5. [Next]を選択します。Destinationを選択できるので、[Third-party service provider]を選択します。

  6. ドロップダウンメニューから、[New Relic ]を選択します。

  7. New Relic configurationを設定するフォームがでてきます。HTTP endpoint URLフィールドに [https://aws-api.newrelic.com/firehose/v1]を入力します。(デフォルトで入力されています)

  8. API keyフィールドにInsights Insert APIキー入力します。

  9. オプションでパラーメータを設定します。ここで指定するパラーメータはこの配信ストリームを通過するすべてのログに挿入され、New Relic LogsのAttributeとして照会できます。ベストプラクティスとして、ログが正しくパースされるように、logtype属性を含めることをお勧めします。logtypeのルールセットで準備されているログであれば自動的にパースし、理解することができます。このlogtype属性を利用してNew Relic Logsに適用するパースルールを設定できるので、ログタイプ毎に別の配信ストリームを作成することをお勧めします。もしルールセットで準備されていないログメッセージをパースしたい場合は、How to Parse Logs with Grok Patterns In New Relicをご覧ください。もちろんlogtype属性以外のパラーメータも設定することが可能です。(下記キャプチャ例は、logtypeを[apache]に、それ以外のパラメータとして環境や管理チームを付与した例)

    Kinesis firehoseパラーメータ設定例

  10. 必要に応じて、残りの項目を設定し、配信ストリームを作成します。

配信ストリーム構成の検証

次の手順を実行して、配信ストリームからNew Relicアカウントにログが転送されていることを確認することができます。

  1. Kinesisダッシュボードで、作成した[配信ストリーム]を選択します。
  2. [Test with demo data]を選択後、[Start sending demo data]を選択します。

    Kinesis FIrehoseデモデータ送信

  3. デモデータが自動的に配信ストリームに書き込まれ、New Relic Logsに転送されます。
  4. New Relic Logsの画面を開き、該当のデモデータが配信されていることを確認します。Kinesis Firehoseのパラメータで設定したlogtypeやenv、teamの情報も付与されていることがわかります。

    Kinesis firehoseからNew Relic Logsに送付したサンプルログ

  5. json形式で送られメッセージは自動的にパースされ、Attributeと認識されるので、+をクリックすることで、表示する項目を増やすことが可能です。

    New Relic Logsに付与されたAttributeを表示する例

  6. またNew Relic LogsのOther attributesから表示するログのフィルター条件に追加することも可能です。

    Kinesis firehoseのパラメータで設定した項目でフィルタ

  7. 追加の使用料金が発生しないようにするには、[デモデータの送信を停止]を選択します。

Amazon Kinesis Data Firehose経由でさまざまなデータを送付可能

データソースとしてAmazon CloudWatch Logs、CloudWatchイベント、AWS IoTなどのAWSサービスに加え、AWS SDKやAPIを利用してさまざまなデータをAmazon Kinesis Firehoseに流し込むことが可能です。今回ご紹介した内容を設定することで、データソースに細かい設定をすることなく、簡単に、よりシンプルにNew Relicにデータを取り込みことが可能となります。

New Relic Oneでのログ管理

Telemetry Data Platformは、組み込みの機能や社内に導入済みのオープンソースツールを使用して、ログデータの検索、フィルタリング、分析、アラート、可視化などの機能を備えたログ管理を提供します。

New Relic Oneでは、よりカスタマイズされたコンテンツをご希望のお客様のために、Full-stack Observabilityも提供しています。Full-stack Observabilityを利用することで、アプリケーション、インフラストラクチャ、デジタルエクスペリエンスなど、スタック全体を網羅したコンテンツのモニタリングを利用することができます。エラー、トレース、スパンの情報を自動的に相関させ、より深く、より迅速な根本原因分析を実現します。

New Relic Oneには、機械学習を活用してインシデントが発生する前にプロアクティブな検出を行い、インシデントインテリジェンスを活用してアラート疲れを軽減するAIのオプションも提供しています。

結論

この投稿では、Kinesis Data Firehose HTTPエンドポイントを使用して配信ストリームに取り込まれたデータを、自動的New Relicに転送する方法を示しました。この手法を活用して、組織内のデータストリームの利用を拡大し、より完璧なソフトウェアをより早く提供できるようにしていただきたいと思います。