まえがき
前回の「CloudWatchAgent を用いたWindowsServerプロセス監視 #2」の続きになります。
今回は、取得したカスタムメトリクスを使用して、CloudWatchAlarmからSNS経由でアラート通知を行います。
構成/CloudWatchAgent作業手順
CloudWatchAgentを使用して、WindowsServer上のプロセス監視導入についての構成図、作業手順を記載いたします。
構成図
OS上にCloudWatchAgentを導入し、config設定を行います。
config設定では、取得したいメトリクスを記述します。
詳細については、AWS公式ドキュメントを参照下さい。
設定に問題が無ければ、CloudWatchメトリクス(カスタムメトリクス)にて、メトリクスの取得ができます。
コンソール上で確認ができれば良いというより、運用上の監視として導入される方の方が多いかと思いますので、CloudWatchAlarmにて設定した閾値を超過した場合に、メール通知を行うまでを記載していきます。
作業手順
1. AWS環境の構築
2. CloudWatchAgentの導入・設定・メトリクス取得を行う
3. カスタムメトリクスを使用してアラート通知を行う
CloudWatchAgent導入作業
本章では、「3. カスタムメトリクスを使用してアラート通知を行う」を行います。
カスタムメトリクスを使用してアラート通知を行う
以下手順で作業を行います。
SNSトピック(サブスクリプション)を作成し、取得したカスタムメトリクスからCloudWatchAlarmを作成、Alarmをアラート状態にしメール通知を行います。
- SNSトピック・サブスクリプションの作成
- CloudWatchAlarmの作成
- メールでのアラート通知
1. SNSトピック・サブスクリプションの作成
アラート通知を行うSNSトピックを作成し、メールアドレスをSNSサブスクリプションへ登録、SNSトピックに統合していきます。
-
SNSトピックの作成
SNSコンソールのトピックを選択し、「トピックの作成」を押下します。
詳細タブにて以下を設定します。
タイプ:スタンダード
名前:任意
表示名 – オプション:任意
以下オプションは任意で設定し、「トピックの作成」を押下して完了です。
-
SNSサブスクリプションの登録
SNSコンソールのサブスクリプションを選択し、「サブスクリプションの作成」を押下します。
先ほど作成した、SNSトピックのARNを使用して、以下を設定していきます。
トピックARN:「1. SNSトピックの作成」で作成した、トピックのARN
プロトコル:Eメール
エンドポイント:アラート通知を受信したいメールアドレス
オプションは任意で設定し、「サブスクリプションの作成」を押下し完了。
このようなメール通知が、エンドポイントで設定したメールアドレス宛に届きますので、
「Confirm subscription」のリンクを踏み、サブスクリプションの確認を完了させます。
※この作業を行わなければ、サブスクリプションが使用できません。
SNSコンソールのトピックにて、登録したメールアドレスのステータスが、「確認済み」となっていることが確認できました。
2. CloudWatchAlarmの作成
カスタムメトリクスからCloudWatchAlarmを作成していきます。
この手順は、通常メトリクスと同様になります。
- CloudWatchAlarmの作成
CloudWatchコンソールのすべてのアラームを選択し、「アラームの作成」を押下します。
メトリクスと条件の指定にて、「CloudWatchAgent を用いたWindowsServerプロセス監視 #2」で作成したカスタムメトリクスを選択し、「メトリクス」欄にて以下の設定を行います。
統計:合計
期間:任意
「条件」欄にて、以下設定を行い「次へ」を押下します。
しきい値の種類:静的
次の時…:より低い(<しきい値)
…よりも:1
アラームを実行するデータポイント:1/1
欠落データの処理:任意
アクションの設定の「通知」欄にて、以下設定を行い「次へ」を押下します。
アラーム状態トリガー:アラーム状態
次のSNSトピックに通知を送信:既存のSNSトピックを選択
通知の送信先:先ほど作成したSNSトピックを選択
アラームの詳細の追加にて、以下設定を行い「次へ」を押下します。
「名前と説明」欄
アラーム名:任意
アラームの説明 – オプション:任意
「タグ – オプション」欄
タグ:任意
プレビューと作成にて設定内容に問題がなければ、「アラームの作成」を押下して完了。
3. メールでのアラート通知
実際にアラートが発報されるかを、検証していきます。
-
アラート通知の発報
カスタムメトリクスを取得しているサーバに入り、対象プロセスをダウンさせます。
今回はメモプロセスが対象の為、メモを閉じます。
メモ起動中)
メモ停止済み)
CloudWatchメトリクスとCloudWatchAlarmで確認すると、カウントが0になっており、アラーム状態になっていることが確認できました。
カスタムメトリクス)
CloudWatchAlarm)
-
アラート通知の確認
若干のラグはあるものの、数分でSNSサブスクリプションで設定したメールアドレス宛に「AWS Notifications」から以下のようなメールが届くことが確認できました。
参考_カスタムメトリクスの削除
カスタムメトリクスを削除したい場合は、作成したJSONから対象の記述を削除して再度RunCommandから「configure」を実行し反映させるか、RunCommandから「configure (remove)」を実行し設定の削除をする必要があります。
また、設定を削除し反映しても、コンソール上では残存しています。
削除のフェーズは以下になります。
- 設定の削除
- コンソール上から非表示
2週間メトリクスの取得がなければ、コンソール上から対象カスタムメトリクスが非表示になります。
この段階では、非表示データ自体は残っているため、再度メトリクス取得を行うことで表示を再開することが可能になります。また、CLIでも閲覧は可能です。 - データの削除
メトリクスをしてから、15か月間はデータを保持する為、15か月間経過後にデータは削除されます。
あとがき
本章は取得したカスタムメトリクスを使用して、アラーム状態の検知と発報を行いました。
カスタムメトリクス以外でも、EC2のCPU使用率などでも使用できる手順になりますので、誰かの参考になれば幸いです。
参照
[AWS公式ドキュメント](https://docs.aws.amazon.com/cloudwatch/index.html "AWS公式ドキュメント")

