CloudwatchLogsをDatadogへ連携する
AWSのCloudwatchLogsやs3上のログを、DatadogのLogManagementまで連携するための設定を調べてみました。公式のマニュアルはこちら。
連携用Lambdaファンクションを用意
まずAWSから各種ログを、Datadogまで連携するためのLambdaファンクションを用意してあげる必要があります。
コードを用意
ファンクション作成用のserverless repositoryが公開されており、ここからデプロイすれば該当となるLambdaファンクションをCloudFormation経由で作ってくれます。
コードはGithubにて公開されているため、それを利用して作成することも可能です。
Lambda基本設定
利用するメモリサイズは1GB、タイムアウト値は120秒とするのが推奨のようです。
Lambda環境変数の設定
Datadog APIキー情報を、Lambda環境変数として設定する必要があります。APIキーを与える方法として、以下の3つがあります。
- KMS Encrypted key
- Lambdaの環境変数を設定
- 直接コードに記載
- コード内の
<your_api_key>
部分に、APIキー情報を入れ込む
- コード内の
今回はKMSの設定を採用しています。
Metadataの設定
コード内の metadata
に追加することで、取込むログレコードに独自の文字列(メタデータ)を追加できます。
metadata = { "ddsourcecategory": "aws", "metadata": "test" }
カスタムタグの設定
Datadogに取込むログレコードに、独自のタグを設定できます。Lambdaの環境変数にKey値 DD_TAGS
として登録したValue値が、カスタムタグとして設定されます。
Lambdaファンクションのテスト
Event Templateを Cloudwatch Logs
にして、テストを実行、エラーが発生しないことを確認します。尚このテストでは、Datadog側には何も出力されていません。
作成したLambdaファンクションに連携したいログを設定
作成したLambdaファンクションのトリガーとして、CloudwatchLogsまたはs3を設定することで、トリガーとして指定したログをDatadogに連携されるようになります。公式手順はこちらです。
簡単ですね。