前回の続きです。前の記事ではEmbulkのログをCloudWatchに転送する設定をやりましたが、今回はその転送されたログを使ってエラーを検知するように設定します。
www.capybara-engineer.com
今回の参考記事
blog.serverworks.co.jp
実施作業
出力されるログメッセージ確認
Embulk実行ログに出力するメッセージはシンプルに以下の3つです。
このうちエラーのメッセージが出力された場合にCloudWatchからアラートを出すように設定します。
開始時:「start embulk」 終了時:「end embulk」 エラー時:「error embulk」
メトリクスの設定
CloudWatchのコンソールからメトリクスを作成するロググループを選択して、アクションを押下します。
「メトリクスフィルターを作成」を選択します。
フィルターパターンとパターンテストを実施し、想定通りパターンに一致しているようであれば、次の設定に移ります。
メトリクスの設定を行います。
名前は適当ですが、メトリクス値は1件以上パターンにマッチした場合、デフォルト値はマッチしない場合の値を設定します。
最後に設定した結果を確認して問題なければ作成します。
Embulkのメトリクスが作成されていることを確認します。
この時点ではまだアラームは設定されていません。
アラームの設定
メトリクスの作成後の画面でメトリクスフィルターにチェックをつけて、アラームを作成ボタンを押下します。
今回は設定として15分以内にエラーが1件以上発生した場合にアラートが出るように設定します。
アラーム時の通知先を設定します。
SNSトピックは新規に作成しても既存のものを使ってもどちらでも大丈夫なので、既存のものを選択します。
アラーム名は適当に入力します。
最後に設定内容を確認して、問題なければアラームを作成します。
これでアラームが作成されました。
エラー発生
Embulkバッチを少し弄って敢えてエラーを出力させます。
CloudWatchのログにエラーがあることが確認できます。
作成したアラームのステータスを見るとアラーム状態となっています。
通知先のメールアドレスにメールが届いているのも確認できました。
感想及び所感
ということで、EmbulkのログをCloudWatchに転送して、エラー時は特定のメールアドレスに通知する設定を実施しました。
Embulkを複数実行する場合は送り先のロググループを一緒にして種類ごとにログストリームを分けることで、別々に検知することも可能と思います。