カピバラ好きなエンジニアブログ

興味ある技術とか検証した内容を赴くままに書いていきます。カピバラの可愛さこそ至高。

Digdagで実行したEmbulkのエラーをCloudWatchに検知する

前回の続きです。前の記事ではEmbulkのログをCloudWatchに転送する設定をやりましたが、今回はその転送されたログを使ってエラーを検知するように設定します。
www.capybara-engineer.com


今回の参考記事
blog.serverworks.co.jp

実施作業

出力されるログメッセージ確認

Embulk実行ログに出力するメッセージはシンプルに以下の3つです。
このうちエラーのメッセージが出力された場合にCloudWatchからアラートを出すように設定します。

開始時:「start embulk」
終了時:「end embulk」
エラー時:「error embulk」


メトリクスの設定

CloudWatchのコンソールからメトリクスを作成するロググループを選択して、アクションを押下します。
f:id:live-your-life-dd18:20201105151613p:plain


「メトリクスフィルターを作成」を選択します。
f:id:live-your-life-dd18:20201105151723p:plain


フィルターパターンとパターンテストを実施し、想定通りパターンに一致しているようであれば、次の設定に移ります。
f:id:live-your-life-dd18:20201105152204p:plain


メトリクスの設定を行います。
名前は適当ですが、メトリクス値は1件以上パターンにマッチした場合、デフォルト値はマッチしない場合の値を設定します。
f:id:live-your-life-dd18:20201105152617p:plain


最後に設定した結果を確認して問題なければ作成します。
f:id:live-your-life-dd18:20201105152728p:plain


Embulkのメトリクスが作成されていることを確認します。
この時点ではまだアラームは設定されていません。
f:id:live-your-life-dd18:20201105160521p:plain

アラームの設定

メトリクスの作成後の画面でメトリクスフィルターにチェックをつけて、アラームを作成ボタンを押下します。
f:id:live-your-life-dd18:20201105160540p:plain


今回は設定として15分以内にエラーが1件以上発生した場合にアラートが出るように設定します。
f:id:live-your-life-dd18:20201105153634p:plain


アラーム時の通知先を設定します。
SNSトピックは新規に作成しても既存のものを使ってもどちらでも大丈夫なので、既存のものを選択します。
f:id:live-your-life-dd18:20201105155751p:plain


アラーム名は適当に入力します。
f:id:live-your-life-dd18:20201105155908p:plain


最後に設定内容を確認して、問題なければアラームを作成します。
f:id:live-your-life-dd18:20201105155942p:plain


これでアラームが作成されました。
f:id:live-your-life-dd18:20201105160034p:plain

エラー発生

Embulkバッチを少し弄って敢えてエラーを出力させます。
f:id:live-your-life-dd18:20201105162330p:plain


CloudWatchのログにエラーがあることが確認できます。
f:id:live-your-life-dd18:20201105162422p:plain


作成したアラームのステータスを見るとアラーム状態となっています。
f:id:live-your-life-dd18:20201105163204p:plain


通知先のメールアドレスにメールが届いているのも確認できました。
f:id:live-your-life-dd18:20201105162615p:plain

感想及び所感

ということで、EmbulkのログをCloudWatchに転送して、エラー時は特定のメールアドレスに通知する設定を実施しました。


Embulkを複数実行する場合は送り先のロググループを一緒にして種類ごとにログストリームを分けることで、別々に検知することも可能と思います。