CloudWatch Logs を使用した Kinesis Data Firehose のモニタリング - Amazon Kinesis Data Firehose

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

CloudWatch Logs を使用した Kinesis Data Firehose のモニタリング

Kinesis Data Firehose は Amazon CloudWatch Logs と統合されているため、データ変換用の Lambda 呼び出しまたはデータ配信が失敗した場合の特定のエラーログを表示できます。配信ストリームの作成時に Kinesis Data Firehose のエラーログ記録を有効にできます。

Kinesis Data Firehose コンソールで Kinesis Data Firehose エラーログ記録を有効にすると、ロググループと対応するログストリームが、お客様に代わって配信ストリーム用に作成されます。ロググループ名の形式は /aws/kinesisfirehose/delivery-stream-name です (delivery-stream-name は対応する配信ストリームの名前です)。ログストリーム名は次のとおりです。S3デリバリー,RedshiftDelivery, またはAmazonOpenSearch サービスデリバリー、配達先によって異なる。データ変換の Lambda 呼び出しエラーも、データ配信エラーに使用されるログストリームに記録されます。

たとえば、Amazon Redshift を送信先とする配信ストリーム「MyStream」を作成し、Kinesis Data Firehose のエラーログ記録を有効にした場合、お客様に代わって次のようなロググループが作成されます。aws/kinesisfirehose/MyStreamという名前の 2 つのログストリームS3デリバリーおよびRedshiftDelivery。この例では、S3Delivery ログストリームは、中間 S3 バケットへの配信失敗に関連するエラーのログ記録に使用されます。-RedshiftDeliveryログストリームは、Amazon Redshift クラスターへの Lambda 呼び出し失敗および配信失敗に関連するエラーをログ記録するために使用されます。

Kinesis Data Firehose のエラーログは、AWS CLI、API、またはAWS CloudFormationを使用して、CloudWatchLoggingOptionsの設定 これを行うには、事前にロググループとログストリームを作成します。Kinesis Data Firehose エラーログ記録専用に、そのロググループとログストリームを予約することをお勧めします。また、関連付けられた IAM ポリシーに"logs:putLogEvents"アクセス許可。詳細については、「Amazon Kinesis Data Firehose によるアクセスの制御 」を参照してください。

Kinesis Data Firehose では、すべての配信エラーログが CloudWatch Logs に送信されることが保証されません。配信失敗率が高い状況では、Kinesis Data Firehose hode は CloudWatch Logs に送信する前に配信エラーログをサンプリングします。

CloudWatch Logs に送信されるエラーログには、わずかな金額が課金されます。詳細については、Amazon CloudWatch 料金表をご覧ください。

データ配信エラー

以下は、各 Kinesis Data Firehose の送信先に関するデータ配信エラーコードおよびメッセージのリストです。各エラーメッセージには、問題を解決するために実行する適切なアクションも示されます。

Amazon S3 データ配信エラー

Kinesis Data Firehose は、次の Amazon S3 関連のエラーを CloudWatch Logs に送信できます。

エラーコード エラーメッセージおよび情報
S3.KMS.NotFoundException

"指定された AWS KMS キーが見つかりませんでした。正しいロールを持つ有効な AWS KMS キーであると考えるものを使用している場合は、AWS KMS キーがアタッチされるアカウントに問題がないかどうか確認してください。"

S3.KMS.RequestLimitExceeded

"S3 オブジェクトを暗号化しようとしているときに、KMS リクエスト/秒の制限を超えました。1 秒あたりのリクエストの制限を引き上げてください。"

詳細については、「」を参照してください。制限AWS Key Management Serviceデベロッパーガイド

S3.AccessDenied "アクセスが拒否されました。指定した IAM ロールの信頼ポリシーで、Kinesis Data Firehose がロールを引き受けることができ、アクセスポリシーで S3 バケットへのアクセスが許可されることを確認してください。
S3.AccountProblem 「お客様に問題があるAWSオペレーションが正常に完了するのを妨げるアカウント。連絡先AWSSupport。」
S3.AllAccessDisabled "指定されたアカウントへのアクセスが無効になっています。連絡先AWSSupport。」
S3.InvalidPayer "指定されたアカウントへのアクセスが無効になっています。連絡先AWSSupport。」
S3.NotSignedUp 「アカウントが Amazon S3 にサインアップされていません。アカウントにサインアップするか、別のアカウントを使用します。"
S3.NoSuchBucket "指定されたバケットが存在しません。バケットを作成するか、存在する別のバケットを使用します。"
S3.MethodNotAllowed "指定されたメソッドは、このリソースに対して許可されていません。Amazon S3 オペレーションの正しい Amazon S3 オペレーションのアクセス許可を許可するようバケットのポリシーを変更します。」
InternalError "データを配信しようとして内部エラーが発生しました。配信は再試行されます。エラーが解消されない場合は、に報告されます。AWS解決のために。」

Amazon Redshift データ配信エラー

Kinesis Data Firehose は、次の Amazon RedShift 関連のエラーを CloudWatch Logs に送信できます。

エラーコード エラーメッセージおよび情報
Redshift.TableNotFound

"データのロード先となるテーブルが見つかりませんでした。指定されたテーブルが存在することを確認してください。"

S3 からのデータのコピー先となる Amazon Redshift の送信先テーブルが見つかりませんでした。Amazon Redshift テーブルが存在しない場合、Kinesis Data Firehose はテーブルを作成しないことに注意してください。

Redshift.SyntaxError "COPY コマンドには構文エラーが含まれています。コマンドを再試行してください。"
Redshift.AuthenticationFailed "指定されたユーザー名とパスワードで認証に失敗しました。有効なユーザー名とパスワードを指定してください。"
Redshift.AccessDenied "アクセスが拒否されました。指定された IAM ロールの信頼ポリシーで、Kinesis Data Firehose がロールを引き受けられることを確認します。」
Redshift.S3BucketAccessDenied "COPY コマンドは S3 バケットにアクセスできませんでした。指定した IAM ロールのアクセスポリシーで、S3 バケットへのアクセスが許可されることを確認してください。」
Redshift.DataLoadFailed "テーブルへのデータのロードに失敗しました。詳細については、STL_LOAD_ERRORS システムテーブルを確認してください。"
Redshift.ColumnNotFound "COPY コマンドの列がテーブルに存在しません。有効な列名を指定してください。"
Redshift.DatabaseNotFound 「Amazon Redshift の送信先設定または JDBC URL で指定されたデータベースは見つかりませんでした。有効なデータベース名を指定してください。"
Redshift.IncorrectCopyOptions

"競合するか冗長な COPY のオプションが指定されました。一部のオプションは、特定の組み合わせと互換性がありません。詳細については、COPY コマンドのリファレンスを参照してください。"

詳細については、「」を参照してください。Amazon Redshift COPY コマンドAmazon Redshift データベース開発者ガイド

Redshift.MissingColumn "デフォルト値がなく、列リストに含まれていない、NOT NULL としてテーブルスキーマに定義されている列があります。この列を除外し、ロードされたデータが常にこの列の値を提供することを確認するか、このテーブルの Amazon Redshift スキーマにデフォルト値を追加します。
Redshift.ConnectionFailed 「指定した Amazon Redshift クラスターへの接続に失敗しました。セキュリティ設定で Kinesis Data Firehose 接続が許可され、Amazon Redshift 送信先設定または JDBC URL で指定されたクラスターまたはデータベースが正しいこと、およびクラスターが使用可能なことを確認します。
Redshift.ColumnMismatch "COPY コマンドの jsonpaths の数および宛先テーブルの列数が一致する必要があります。コマンドを再試行してください。"
Redshift.IncorrectOrMissingRegion 「Amazon Redshift は、S3 バケットにアクセスするために間違ったリージョンのエンドポイントを使用しようとしました。COPY コマンドのオプションで正しいリージョンの値を指定するか、S3 バケットが Amazon Redshift データベースと同じリージョンにあることを確認します。
Redshift.IncorrectJsonPathsFile "指定された jsonpaths ファイルが、サポートされている JSON 形式ではありません。コマンドを再試行してください。"
Redshift.MissingS3File 「Amazon Redshift で必要な 1 つまたは複数の S3 ファイルが S3 バケットから削除されました。S3 バケットポリシーを確認し、S3 ファイルの自動削除がある場合はそれを除外します。"
Redshift.InsufficientPrivilege "データをテーブルにロードするアクセス許可がユーザーにありません。INSERT 権限の Amazon Redshift ユーザー権限を確認してください。」
Redshift.ReadOnlyCluster "システムがサイズ変更モードであるため、クエリを実行できません。後でもう一度クエリの実行を試みてください。"
Redshift.DiskFull "ディスクがいっぱいのため、データをロードできませんでした。Amazon Redshift クラスターの容量を増やすか、使用されていないデータを削除してディスク容量を解放してください。」
InternalError "データを配信しようとして内部エラーが発生しました。配信は再試行されます。エラーが解消されない場合は、に報告されます。AWS解決のために。」

Splunk データ配信エラー

Kinesis Data Firehose は以下の Splunk 関連のエラーを CloudWatch Logs に送信できます。

エラーコード エラーメッセージおよび情報
Splunk.ProxyWithoutStickySessions

「Kinesis Data Firehose and HEC node, you must enable sticky sessions to support HEC ACKs.」

Splunk.DisabledToken "The HEC token is disabled. Enable the token to allow data delivery to Splunk."
Splunk.InvalidToken "The HEC token is invalid. Kinesis Data Firehose を、有効な HEC トークンで更新します。
Splunk.InvalidDataFormat "The data is not formatted correctly. To see how to properly format data for Raw or Event HEC endpoints, see Splunk Event Data."
Splunk.InvalidIndex "The HEC token or input is configured with an invalid index. Check your index configuration and try again."
Splunk.ServerError "Data delivery to Splunk failed due to a server error from the HEC node. Kinesis Data Firehose は、Kinesis データファイアホースの再試行期間が 0 を超えると、データの送信を再試行します。If all the retries fail, Kinesis Data Firehose はデータを Amazon S3 にバックアップします。」
Splunk.DisabledAck "Indexer acknowledgement is disabled for the HEC token. Enable indexer acknowledgement and try again. For more info, see Enable indexer acknowledgement."
Splunk.AckTimeout "Did not receive an acknowledgement from HEC before the HEC acknowledgement timeout expired. Despite the acknowledgement timeout, it's possible the data was indexed successfully in Splunk. Kinesis Data Firehose は Amazon S3 データをバックアップします。」
Splunk.MaxRetriesFailed

"Failed to deliver data to Splunk or to receive acknowledgment. Check your HEC health and try again."

Splunk.ConnectionTimeout "The connection to Splunk timed out. This might be a transient error and the request will be retried. Kinesis Data Firehose は、すべての再試行が失敗すると、データを Amazon S3 にバックアップします。」
Splunk.InvalidEndpoint "Could not connect to the HEC endpoint. HEC エンドポイント URL が有効で、Kinesis Data Firehose からアクセスできることを確認してください。」
Splunk.ConnectionClosed "Unable to send data to Splunk due to a connection failure. This might be a transient error. Kinesis Data Firehose 設定で再試行時間を長くすると、このような一時的な失敗を防ぐことができます。」
Splunk.SSLUnverified "Could not connect to the HEC endpoint. ホストがピアによって提供された証明書と一致しません。証明書とホストが有効であることを確認してください。"
Splunk.SSLHandshake "Could not connect to the HEC endpoint. 証明書とホストが有効であることを確認してください。"

HTTPS エンドポイントデータ配信エラー

Kinesis Data Firehose は以下の HTTP エンドポイント関連のエラーを CloudWatch Logs に送信できます。これらのエラーのいずれも、発生している問題と一致しない場合、デフォルトのエラーは次のとおりです。"データを配信しようとして内部エラーが発生しました。配信は再試行されます。エラーが解消されない場合は、に報告されます。AWS解決のために。」

エラーコード エラーメッセージおよび情報
HttpEndpoint.RequestTimeout

応答を受信する前に配信がタイムアウトし、再試行されます。それでもこのエラーが解決しない場合は、AWS消防署サービスチーム。

HttpEndpoint.ResponseTooLarge 「エンドポイントから受信した応答が大きすぎます。この問題を解決するには、エンドポイントの所有者に問い合わせてください。」
HttpEndpoint.InvalidResponseFromDestination 「指定されたエンドポイントから受信した応答は無効です。エンドポイントの所有者に問い合わせて、問題を解決してください。」
HttpEndpoint.DestinationException 「エンドポイントの宛先から次の応答が受信されました。」
HttpEndpoint.ConnectionFailed 「送信先エンドポイントに接続できません。この問題を解決するには、エンドポイントの所有者に問い合わせてください。」
HttpEndpoint.ConnectionReset 「エンドポイントとの接続を維持できません。この問題を解決するには、エンドポイントの所有者に問い合わせてください。」
HttpEndpoint.ConnectionReset 「エンドポイントとの接続の維持に問題がある。エンドポイントの所有者に連絡してください。」

Amazon OpenSearch Service Data Delivery エラー

OpenSearch サービスの宛先については、Kinesis Data Firehose は OpenSearch サービスによって返されるエラーを CloudWatch Logs に送信します。

Lambda 呼び出しエラー

Kinesis Data Firehose は、次の Lambda 呼び出しエラーを CloudWatch Logs に送信できます。

エラーコード エラーメッセージおよび情報
Lambda.AssumeRoleAccessDenied

"アクセスが拒否されました。指定された IAM ロールの信頼ポリシーで、Kinesis Data Firehose がロールを引き受けられることを確認します。」

Lambda.InvokeAccessDenied

"アクセスが拒否されました。アクセスポリシーで Lambda 関数へのアクセスが許可されていることを確認してください。」

Lambda.JsonProcessingException

「Lambda 関数から返されたレコードの解析時にエラーが発生しました。返されたレコードが Kinesis Data Firehose で必要なステータスモデルに従っていることを確認してください。」

詳細については、「データ変換とステータスモデル」を参照してください。

Lambda.InvokeLimitExceeded

「Lambda の同時実行の制限を超えています。同時実行の制限を引き上げてください。"

詳細については、「」を参照してください。AWSLambda 制限AWS Lambdaデベロッパーガイド

Lambda.DuplicatedRecordId

"複数のレコードに対して同じレコード ID が返されました。Lambda 関数がレコードごとに一意のレコード ID を返すことを確認してください。」

詳細については、「データ変換とステータスモデル」を参照してください。

Lambda.MissingRecordId

"1 つ以上のレコード ID が返されませんでした。Lambda 関数がすべての受信レコード ID を返すことを確認してください。」

詳細については、「データ変換とステータスモデル」を参照してください。

Lambda.ResourceNotFound

「指定された Lambda 関数は存在しません。存在する別の関数を使用してください。"

Lambda.InvalidSubnetIDException

「Lambda 関数の VPC 設定で指定したサブネット ID が無効です。サブネット ID が有効であることを確認してください。"

Lambda.InvalidSecurityGroupIDException

「Lambda 関数の VPC 設定で指定したセキュリティグループ ID が無効です。セキュリティグループ ID が有効であることを確認してください。"

Lambda.SubnetIPAddressLimitReachedException

"AWS Lambdaは、1 つ以上の設定済みサブネットに使用可能な IP アドレスがないため、は Lambda 関数の VPC アクセスを設定できませんでした。IP アドレスの制限を引き上げてください。"

詳細については、「」を参照してください。Amazon VPC の制限-VPC とサブネットAmazon VPC User Guide

Lambda.ENILimitReachedException

"AWS Lambdaネットワークインターフェイスの制限に達したため、Lambda 関数設定の一部として指定した VPC に Elastic Network Interface (ENI) を作成できませんでした。ネットワークインターフェイスの制限を引き上げてください。"

詳細については、「」を参照してください。Amazon VPC の制限-ネットワークインターフェイスAmazon VPC User Guide

Kinesis Data Firehose 用 CloudWatch Logs へのアクセス

Kinesis Data Firehose のデータ配信失敗に関連するエラーログを表示するには、Kinesis Data Firehose コンソールまたは CloudWatch コンソールを使用します。次の手順は、これらの 2 つの方法を使用してエラーログにアクセスする方法を示しています。

Kinesis Data Firehose コンソールを使用してエラーログにアクセスするには

  1. AWS Management Console にサインインし、Kinesis コンソール (https://console.aws.amazon.com/kinesis) を開きます。

  2. ナビゲーションペインの [Data Firehose] を選択します。

  3. ナビゲーションバーで、AWSリージョン。

  4. 配信ストリーム名を選択して、配信ストリームの詳細ページに移動します。

  5. データ配信の失敗に関連するエラーログのリストを表示するには、[Error Log] を選択します。

CloudWatch コンソールを使用してエラーログにアクセスするには

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションバーで、リージョンを選択します。

  3. ナビゲーションペインで [ログ] を選択します。

  4. データ配信の失敗に関連するエラーログのリストを表示するには、ロググループとログストリームを選択します。