Kinesis Data Firehoseの送信先エラーログをAmazon SNS経由で通知する
こんにちは、洲崎です。
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で通知を行うことができました。
もしエラーが起きたタイミングで検知をしたいなどあれば、参考にしてみてください。
ではまた!コンサルティング部の洲崎でした。