Datadog Forwarderで、S3のログをDatadogへ転送しよう

S3のログをDatadogへ転送しよう

この記事は「ウィルゲート Advent Calendar 2023」の 10 日目の記事です。

adventar.org

こんにちは、ウィルゲート開発室の加藤です。

今回、S3のログをDatadogへ転送できるDatadog Forwarderを検証しました。

Datadog Forwarderの導入から、Datadogへログが転送される様子までを解説していますので、S3のログをDatadogで分析したい方への参考になれば幸いです。

Datadog Forwarderとは?

Datadog Forwarderは、AWSの各種ログをDatadogへ転送するLambda関数です。

CloudWatch、ELB、S3、CloudTrail、VPC、SNS、CloudFrontなどのログを転送し、Datadog上でこれらのログを収集・分析できるようになります。

また、セットアップは非常に楽で、Datadogが提供するCloudFormationのテンプレートですぐに構築できます。

Datadog Forwarderの事前準備

Datadog ForwarderをCloudFormationでセットアップする前に、事前に必要な情報を確認しておきましょう。

  • Datadog API キー
  • Datadog サイトパラメーター

Datadog API キー

Datadog APIキーは、メトリクスとイベントを Datadogへ送信するために利用します。 セットアップの際にこちらのキーを利用しますので、下記の手順で取得しておきましょう。※APIキーがなければ新規で作成してください。

  1. Datadog トップページから、[Organization Settings]へアクセス
  2. [Access] - [API Keys]から、keyをコピーし控えておいてください。

Datadogサイトパラメーター

Datadogは世界中でさまざまなサイトを提供しており、 アカウントによってはhttps://app.datadoghq.comhttps://us3.datadoghq.comなど、サイトが異なってきます。

また、サイトごとにサイトパラメーター(※datadoghq.comus3.datadoghq.comなど)が決まっており、Datadog Frowarderではこのサイトパラメーターを指定する必要があります。

利用しているアカウントのサイトパラメーターは、Datadogのこちらのページから事前に確認してください。

Datadog Forwarderの構築

Datadog APIキーDatadog サイトパラメーターの準備ができたら、Datadog Forwarderを構築していきましょう。

構築するためのCloudFormationテンプレートは、こちらのページから利用することができます。

それでは、リンク先のページにある[Launch Stack]からCloudFormationを起動しましょう。

CloudFormationを起動する

[Launch Stack]をクリックすると、Datadog Forwarderのセットアップに必要なパラメータを入力する画面へ遷移します。ここでは、先ほど控えたDatadog APIキーDdApiKeyへ、Datadog サイトパラメーターDdSiteへ入力します。

Datadog Forwarderのパラメータを入力

※その他のパラメータはこちらのページを参照してください。DdTagsでカスタムタグを設定できるなど、便利なオプションがあります。

そのまま[スタックの作成]へ進んでいきましょう。

CREATE_COMPLETEステータスになり、CloudFormationのスタックが作成できたら、Datadog Forwarderの構築は完了です!

スタックの作成完了

LambdaにS3のトリガーを追加する

Datadog ForwarderのLambda関数を構築できたら、関数のトリガーを追加していきましょう。

作成直後は、Lambdaを起動するためのトリガーは何も設定されていません。[トリガーを追加]からS3のトリガーを追加していきます。

トリガーを追加する

[Bucket]には、Datadogへ転送したいログが格納されているS3バケットを指定しましょう。必要であれば、その他オプションでトリガーの条件を設定します。

トリガーを設定する

S3のトリガーが追加されたことを確認します。

トリガーが追加されたことを確認

Datadogへ転送できるか確認する

いよいよ、Datadog ForwarderでS3のログを転送する準備ができました。

今回は下記のようなダミーのログを記述したdummy.logを準備しておきます。

Tom GET http://www.example.com/
Alice POST http://www.example.com/top
…

転送ができたか確認するために、DatadogのLive Tailからsource:s3のフィルターをつけて、ログを待ち受けましょう。

Live Tailでsource:s3を待ち受ける

S3へ作成したdummy.logをアップロードします。

ログをアップロード

アップロード後、Live Tailを確認しログが流れてくれば、転送成功です!

Live Tailでログが流れてくる

まとめ

Datadog Forwarderの構築とS3ログの転送の様子までをご紹介しました!

これでS3のログをDatadog上で分析するための一歩を踏むことができました。 取り込んだデータを分析しやすくパースするために、是非パイプラインの作成にも挑戦してみてください!

そして「ウィルゲート Advent Calendar 2023 - Adventar」、翌日は浅井さんによる「アフィリエイト計測の仕組みってどうなっていますか?」です。 お楽しみに!

参考文献

Datadog公式ドキュメント

docs.datadoghq.com

docs.datadoghq.com

docs.datadoghq.com

AWS公式ドキュメント

docs.aws.amazon.com