この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、洲崎です。
Kinesis Data Firehoseの送信先エラーログをAmazon SNS経由で通知してみたので共有します。
Kinesis Data Firehoseで送信先エラーログが発生したら検知したい
Amazon Kinesis Data Firehoseは、CloudWatch Logsを使用してデータ配信失敗時にエラーログを記録することができます。
ログストリームはS3だとDestinationDelivery
の中に保存されます。
また、エラーログはKinesis Data Firehoseのコンソールからも内容を確認することができます。
今回はこのエラーログが発生したタイミングで検知を行いたいので、CloudWatch Logs、CloudWatch Alarm、Amazon SNSを利用して通知する仕組みを実装しました。
構成図
検証した構成図はこちらです。(Amazon ConnectやS3は今回あまり関わるところではないです)
Kinesis Data Firehoseで発生したエラーログがCloudWatch Logsに溜まり、それをメトリクスフィルターでメトリクスとして可視化します。そのメトリクスに対してアラームをセットしてSNSを経由して通知します。
やってみる
メトリクスフィルターの作成
Kinesis Data Firehoseで作成されているCloudWatch Logsに飛び、「メトリクスフィルター」で「メトリクスフィルターの作成」をクリックします。
Kinesis Data Firehoseの主なエラーは"errorCode"
で表示される為、フィルターパターンはerror
で作成します。
「パターンをテスト」は実際にフィルターパターンで検知するかのテストなので、念の為"errorCode"
でテストして結果が出ることを確認します。
フィルター名、メトリクス名前空間、メトリクス名を任意の値で設定します。
メトリクス値は1で、デフォルト値は0として、メトリクスフィルターを作成します。
メトリクスフィルターが作成できたら、チェックを入れて「アラームを作成」をクリックします。
アラームの内容は統計を合計
、期間を1分
としました。
条件は静的
、0よりも大きい
とし、errorが1件でもあがればアラーム状態になる形で設定します。
アクションの設定で、「新しいトピックの作成」、「新規トピック名」、「通知を受け取るEメールエンドポイント」を入力します。
トピックの作成をクリックして、その他は入力せず次にいきます。
トピックの作成をクリックしたタイミングでEメールにAWSから確認のメールが届くのでConfirm subscription
します。
アラーム名とアラームが発生した時の通知の内容を記載します。
これで設定完了です。
テスト
CloudWatch Logsの対象のログストリームのDestinationDelivery
を開きます。
アクションから「ログイベントの作成」をクリックします。
ログイベントで「error」と入力します。
1分ほど待つと、登録したEメールアドレスにアラームの内容が届きました!
CloudWatch Alarmにもアラーム状態で上がっている確認がとれました。
最後に
Kinesis Data Firehoseの送信先エラーログが上がったらCloudWatch Logs→CloudWatch Alarm→Amazon SNSで通知を行うことができました。
もしエラーが起きたタイミングで検知をしたいなどあれば、参考にしてみてください。
ではまた!コンサルティング部の洲崎でした。