実現したいこと
AWS EC2インスタンスの起動状況を監視するシステムを構築中です。
以下対象期間でインスタンスが停止状態の場合はアラームをslackに発報するようにしたい。
対象期間:7時-夜21時の期間(期間中はEventbridgeスケジュールでサーバの起動停止を制御しており、期間外は停止している)
発生している問題・分からないこと
対象インスタンスのCPUUtilizationメトリクスでCloudwatchアラームを作成し、低い水準値を下回った場合またはメトリクスの値がとれていない場合(欠落データを不正として処理)にSlackにアラートを発報するように設定しました。
こちらのCloudwatchアラームをEventbridgeスケジュールで7時から21時に有効にしてそれ以外の時間はサーバ自体が停止状態のためアラートが発報されないように制御しています。
ただ、何かしらの問題で7時の時点で停止状態の場合はアラートが発報してくれません。
7時の時点(Cloudwatchアラームを有効化した時点)でサーバが停止中の場合はアラートが発報するようにしたいのですが方法がわからず、藁にも縋るおもいで本質問ページを作成しました。
どなたか知っている方がいらっしゃいましたらご教示いただけますと幸いです。
該当のソースコード
特になし
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
現在こちらのシステムを2パターンにて作成してみました。
1、Eventbridgeルールでサーバの起動状況に変化(stopped)が起きたらslackにアラート発報
2、CloudwatchアラームでCPUUtilizationの値が異常値になった場合slackにアラート発報
※どちらもSNS,AWSchatbotを使用してslackに発報しています。
※どちらもEventbridgeスケジュールで7時から21時に有効となるよう制御しています。
Eventbridgeのルールでサーバのステータスがstoppedになったらアラートが発報されるように設定しましたが、やはりこちらもルールの有効化時点で停止状態の場合は発報されないようです。
イベントパターン
{ "source": ["aws.ec2"], "detail-type": ["EC2 Instance State-change Notification"], "detail": { "state": ["stopping", "stopped"], "instance-id": ["i-007d83df679a3143c"] } }
補足
7時の段階でサーバが起動中の場合はこちらのシステムで問題ないのですが、アラームの有効化時にサーバがすでに問題があり停止していた場合は意味をなさない状態となってしまいます。
回答2件
あなたの回答
tips
プレビュー