Amazon Data Firehose は、以前は Amazon Kinesis Data Firehose と呼ばれていました。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
CloudWatch ログを使用した Amazon Data Firehose への書き込み
CloudWatch ログイベントは、 CloudWatch サブスクリプションフィルターを使用して Firehose に送信できます。詳細については、「Amazon Data Firehose を使用したサブスクリプションフィルター」を参照してください。
CloudWatch ログイベントは圧縮された gzip 形式で Firehose に送信されます。解凍されたログイベントを Firehose の送信先に配信する場合は、Firehose の解凍機能を使用して自動的に CloudWatch ログを解凍できます。
重要
現在、Amazon は CloudWatch 複数の CloudWatch ログイベントを 1 つの Firehose レコードに結合し、Amazon OpenSearch Service は 1 つのレコードで複数のログイベントを受け入れることができないため、Firehose は Amazon OpenSearch Service の送信先へのログの配信をサポートしていません。別の方法として、 CloudWatch ログで Amazon OpenSearch Service のサブスクリプションフィルターを使用することを検討することもできます。
CloudWatch ログの解凍
Firehose を使用して CloudWatch ログを配信し、解凍したデータを Firehose ストリームの送信先に配信する場合は、Firehose データ形式変換 (Parquet、ORC) または動的パーティショニング を使用します。Firehose ストリームの解凍を有効にする必要があります。
、 AWS Management Console、 AWS Command Line Interface または AWS SDKs を使用して解凍を有効にできます。
注記
ストリームで解凍機能を有効にする場合は、そのストリームを CloudWatch ログサブスクリプションフィルターにのみ使用し、提供されたログには使用しません。 CloudWatch ログと提供されたログの両方を取り込むために使用されるストリームで解凍機能を有効にすると、Firehose への提供されたログの取り込みは失敗します。この解凍機能は CloudWatch ログ専用です。
CloudWatch ログの解凍後のメッセージ抽出
解凍を有効にすると、メッセージ抽出を有効にすることもできます。メッセージ抽出を使用する場合、Firehose は、所有者、ロググループ、ログストリームなどのすべてのメタデータを解凍された CloudWatch ログレコードから除外し、メッセージフィールド内のコンテンツのみを配信します。Splunk の送信先にデータを配信する場合は、Splunk がデータを解析するためのメッセージ抽出を有効にする必要があります。メッセージ抽出の有無にかかわらず、解凍後の出力例を次に示します。
図 1: メッセージ抽出なしで解凍後の出力例:
{ "owner": "111111111111", "logGroup": "CloudTrail/logs", "logStream": "111111111111_CloudTrail/logs_us-east-1", "subscriptionFilters": [ "Destination" ], "messageType": "DATA_MESSAGE", "logEvents": [ { "id": "31953106606966983378809025079804211143289615424298221568", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root1\"}" }, { "id": "31953106606966983378809025079804211143289615424298221569", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root2\"}" }, { "id": "31953106606966983378809025079804211143289615424298221570", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root3\"}" } ] }
図 2: メッセージ抽出による解凍後の出力例:
{"eventVersion":"1.03","userIdentity":{"type":"Root1"} {"eventVersion":"1.03","userIdentity":{"type":"Root2"} {"eventVersion":"1.03","userIdentity":{"type":"Root3"}
解凍の有効化と無効化
、、 AWS Command Line Interface または AWS SDKs を使用して AWS Management Console、解凍を有効または無効にできます。
を使用して新しいデータストリームで解凍を有効にする AWS Management Console
を使用して新しいデータストリームで解凍を有効にするには AWS Management Console
にサインイン AWS Management Console し、https://console.aws.amazon.com/kinesis
で Kinesis コンソールを開きます。 -
ナビゲーションペインで Amazon Data Firehose を選択します。
-
Firehose ストリームの作成 を選択します。
-
「送信元と送信先の選択」
- ソース
-
Firehose ストリームのソース。次のいずれかのソースを選択します。
-
直接 PUT – プロデューサーアプリケーションが直接 に書き込む Firehose ストリームを作成するには、このオプションを選択します。Firehose の AWS Direct PUT と統合されている のサービス、エージェント、オープンソースサービスのリストについては、このセクションを参照してください。
-
Kinesis ストリーム: Kinesis データストリームをデータソースとして使用する Firehose ストリームを設定するには、このオプションを選択します。その後、Firehose を使用して既存の Kinesis データストリームからデータを簡単に読み取り、送信先にロードできます。詳細については、「Kinesis Data Streams を使用した Firehose への書き込み」を参照してください。
-
- 送信先
-
Firehose ストリームの送信先。以下のうちのひとつを選択します。
-
Amazon S3
-
Splunk
-
Firehose ストリーム名 に、ストリームの名前を入力します。
(オプション) 「レコードの変換」:
-
「Amazon CloudWatch Logs からソースレコードを解凍する」セクションで、「解凍を有効にする」を選択します。
-
解凍後にメッセージ抽出を使用する場合は、「メッセージ抽出を有効にする」を選択します。
-
を使用して既存のデータストリームで解凍を有効にする AWS Management Console
解凍を実行する Lambda 関数を持つ Firehose ストリームがある場合は、Firehose 解凍機能に置き換えることができます。続行する前に、Lambda 関数コードを確認して、解凍またはメッセージ抽出のみを実行することを確認します。Lambda 関数の出力は、前のセクションの図 1 または図 2 に示す例のようになります。出力が似ている場合は、次のステップを使用して Lambda 関数を置き換えることができます。
現在の Lambda 関数をこの設計図
に置き換えます。新しい設計図の Lambda 関数は、受信データが圧縮されているか解凍されているかを自動的に検出します。入力データが圧縮されている場合にのみ解凍を実行します。 解凍用の組み込み Firehose オプションを使用して解凍を有効にします。
Firehose ストリームの CloudWatch メトリクスがまだ有効になっていない場合は、有効にします。メトリクス CloudWatchProcessorLambda_ をモニタリングIncomingCompressedData し、このメトリクスがゼロに変わるまで待ちます。これにより、Lambda 関数に送信されるすべての入力データが解凍され、Lambda 関数が不要になります。
ストリームを解凍する必要がなくなったため、Lambda データ変換を削除します。
を使用した解凍の無効化 AWS Management Console
を使用してデータストリームの解凍を無効にするには AWS Management Console
にサインイン AWS Management Console し、https://console.aws.amazon.com/kinesis
で Kinesis コンソールを開きます。 -
ナビゲーションペインで Amazon Data Firehose を選択します。
-
編集する Firehose ストリームを選択します。
-
Firehose ストリームの詳細ページで、設定タブを選択します。
-
「レコードの変換と変換」セクションで、「編集」を選択します。
-
「Amazon CloudWatch Logs からソースレコードを解凍する」で、「解凍を有効にする」を選択し、「変更を保存」を選択します。
よくある質問
解凍中にエラーが発生した場合、ソースデータはどうなりますか?
Amazon Data Firehose がレコードを解凍できない場合、レコードはそのまま (圧縮形式で)、Firehose ストリームの作成時に指定したエラー S3 バケットに配信されます。レコードに加えて、配信されたオブジェクトにはエラーコードとエラーメッセージも含まれ、これらのオブジェクトは という S3 バケットプレフィックスに配信されますdecompression-failed
。Firehose は、レコードの解凍に失敗した後も他のレコードを処理し続けます。
解凍が成功した後に処理パイプラインでエラーが発生した場合、ソースデータはどうなりますか?
動的パーティショニングやデータ形式変換などの解凍後に Amazon Data Firehose が処理ステップでエラーが発生した場合、レコードは圧縮形式で Firehose ストリームの作成時に指定したエラー S3 バケットに配信されます。レコードに加えて、配信されたオブジェクトにはエラーコードとエラーメッセージも含まれます。
エラーや例外が発生した場合にどのように通知されますか?
解凍中にエラーまたは例外が発生した場合、 CloudWatch ログを設定すると、Firehose はエラーメッセージを CloudWatch ログに記録します。さらに、Firehose はモニタリングできるメトリクスに CloudWatch メトリクスを送信します。オプションで、Firehose によって発行されたメトリクスに基づいてアラームを作成することもできます。
put
オペレーションが CloudWatch Logs から行われない場合はどうなりますか?
顧客が CloudWatch Logs から来puts
ない場合、次のエラーメッセージが返されます。
Put to Firehose failed for AccountId: <accountID>, FirehoseName: <firehosename> because the request is not originating from allowed source types.
Firehose は解凍機能に対してどのようなメトリクスを出力しますか?
Firehose は、すべてのレコードを解凍するためのメトリクスを出力します。期間 (1 分)、統計 (合計)、日付範囲を選択して、DecompressedRecords
失敗した、成功した、DecompressedBytes
失敗した、成功した の数を取得する必要があります。詳細については、「CloudWatch ログの解凍メトリクス」を参照してください。