- 重要な情報
- はじめに
- 用語集
- ガイド
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- Service Management
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
CloudWatch Log グループに格納された AWS サービスログをサブスクライブして Amazon Kinesis ストリームに転送し、1 つまたは複数の宛先に転送することが可能です。Datadog は、Amazon Kinesis Delivery ストリームのデフォルトの宛先の 1 つです。
AWS は Amazon Kinesis Data Firehose を完全に管理しているため、ログをストリーミングするための追加のインフラストラクチャーや転送構成を維持する必要はありません。AWS Firehose コンソールで Kinesis Firehose Delivery Stream を設定するか、CloudFormation テンプレートを使って自動的に転送先を設定することができます。
Datadog は、Datadog Kinesis 宛先を使用する場合、入力として Kinesis データストリームを使用することをお勧めします。Datadog がログの唯一のコンシューマーではない場合に備えて、ログを複数の宛先に転送する機能が用意されています。Datadog がログの唯一の宛先である場合、またはすでにログを含む Kinesis データストリームを持っている場合、ステップ 1 を無視することができます。
オプションとして、AWS の Amazon Kinesis Data Streams 開発者ガイドのデータストリームの作成セクションを使用して、新しい Kinesis データストリームを作成します。ストリームには DatadogLogStream
のような分かりやすい名前を付けます。
新しい配信ストリームを作成します。 a. ソースを設定します。
Amazon Kinesis Data Streams
Direct PUT
b. 宛先を Datadog
にします。
c. 配信ストリームの名前を指定します。
d. Destination settings で、Datadog サイトに対応する Datadog logs
HTTP エンドポイント URL を選択します。
e. API キーを API key フィールドに貼り付けます。API キーは、Datadog API Keys ページから取得または作成できます。
f. オプションとして、Retry duration、バッファの設定を構成するか、またはログにタグとしてアタッチされる Parameters を追加することができます。
注: Datadog は、ログが 1 行のメッセージである場合、Buffer size を 2 MiB
に設定することを推奨します。
g. Backup settings で、再試行期間を超える失敗したイベントを受け取る S3 バックアップバケットを選択します。
注: 配信ストリームで失敗したログがまだ Datadog に送信されるようにするには、Datadog Forwarder Lambda 関数をこの S3 バケットからログを転送するように設定します。
h. Create delivery stream をクリックします。
または、この CloudFormation テンプレートをカスタマイズして、AWS コンソールからインストールします。Kinesis CloudFormation テンプレート全体をご覧ください。
Datadog に取り込みたい CloudWatch のロググループに、新しい Kinesis ストリームをサブスクライブします。ロググループインデックスページの Subscriptions 列で、ロググループに対する現在のサブスクリプションを確認することができます。サブスクリプションは、AWS のコンソールや API から以下の仕様で作成することができます。 注: 各 CloudWatch Log グループは、2 つのサブスクリプションしか持つことができません。
CloudWatch Log が Kinesis ストリームにデータを入れることができるように、IAM ロールと権限ポリシーを作成します。
logs.amazonaws.com
または logs.<region>.amazonaws.com
がサービスプリンシパルとして構成されていることを確認してください。firehose:PutRecord
firehose:PutRecordBatch
、kinesis:PutRecord
、kinesis:PutRecords
の各アクションが許可されていることを確認してください。AWS CLI で設定する例としては、Kinesis を使ったサブスクリプションフィルターの例 (ステップ 3~6) を使用します。
以下の例では、AWS CLI でサブスクリプションフィルターを作成しています。
```
aws logs put-subscription-filter \
--log-group-name "<MYLOGGROUPNAME>" \
--filter-name "<MyFilterName>" \
--filter-pattern "" \
--destination-arn "<DESTINATIONARN> (data stream or delivery stream)" \
--role-arn "<MYROLEARN>"
```
また、AWS コンソールからサブスクリプションフィルターを作成することも可能です。
CloudWatch のロググループに移動し、Subscription filters タブをクリックし、Create をクリックします。
Create Kinesis subscription filter
を選択します。Create Kinesis Firehose subscription filter
を選択します。データストリームまたは Firehose 配信ストリームを選択し、以前に作成した IAM ロールも同様に選択します。
サブスクリプションフィルターの名前を入力し、Start streaming をクリックします。
重要: Amazon CloudWatch Logs API Reference で説明されているように、サブスクリプションフィルターの宛先はロググループと同じアカウントである必要があります。
CloudWatch のロググループインデックスページの Subscriptions をチェックして、新しい Kinesis ストリームがロググループをサブスクライブしているかを確認します。
Amazon Kinesis 配信ストリームを設定した後、Datadog で配信ストリームにサブスクライブされたログを分析できます。
ARN ですべてのログにデータを入力するには
@aws.firehose.arn:"<ARN>"
と入力し、<ARN>
を Amazon Kinesis Data Firehose ARN に置き換えて、Enter を押します。注: 1 つの Kinesis ペイロードは、65,000 以上のログメッセージであってはなりません。この制限を超えたログメッセージは削除されます。