こんにちは、インフラグループの野口です。
社内サーバーをEC2(AWSの仮想サーバー)で自社構築した際に、AWSで提供されているCloudWatchサービスを利用して、EC2の異常を検知した際に社内担当者にメールアラートを発報する監視を作成しました。
社内サーバー上の CloudWatch エージェントにプロキシを設定することで、サーバーはインターネット接続せず、エージェントのみがプロキシ通信でEC2の情報収集をするように構成しました。
今回実装したのは、パフォーマンス監視(CPUの利用率、メモリの利用率、ディスクの利用率)、プロセス監視(SQL)、イベントログ監視(Windowsイベントログ)の大きく分けて三つの監視です。
目次
1 CloudWatch 監視アラームの仕組み
2 CloudWatch エージェント導入の為の IAM ロール作成
3 SystemsManager を利用した CloudWatch のインストール
4 CloudWatch の Config 設定
5 パフォーマンス監視(CPUの利用率、メモリの利用率、ディスクの利用率)のアラーム作成
6 プロセス監視(SQL)のアラーム作成
7 イベントログ監視(Windowsイベントログ)のアラーム作成
本記事では、目次の1~3についてご案内いたします。4~7は別記事で掲載予定です。
1 CloudWatch 監視アラームの仕組み
CloudWatchは、EC2にエージェントをいれて、ログの収集を行い、エラーログの件数や、
クエリによる計算で出したパフォーマンスの値がアラームルールに設定された、閾値を超えるとメール発報をするような仕組みになっています。

2 CloudWatch エージェント導入の為の IAM ロール作成
今回は社内ネットワークのサーバーになる為、社内のプロキシ経由でSystems Managerを使ってCloudWatchエージェントを配信します。また Systems Managerの機能である セッションマネージャ経由でパフォーマンスを取得します。
その為、EC2インスタンスでCloudWatchエージェントを実行する許可とEC2からセッションマネージャへのアクセス許可を持ったロールを作成します。
- AWSのIAMを開き、ダッシュボードの左上
より、「アクセス権限」>「ロール」をクリックします。
- 画面右上の「ロールを作成」をクリックします。

- 信頼されたエンティティを選択で「AWSのサービス」のまま、サービスまたはユースケースで「EC2」を選択し、次へ進みます。

- 許可を追加で「CloudWatchAgentServerPolicy」を検索し、同一ポリシー名の左にあるボックスにチェックを入れます。

- 同様に「AmazonSSMManagedInstanceCore」を検索し、同一ポリシー名の左にあるボックスにチェックを入れて「次へ」をクリックします。

- 任意のロール名を入れて、右下の「ロールを作成」をクリックします。


- IAMをアタッチするため、AWSのEC2を開き、ダッシュボードの左上
より、「インスタンス」>「インスタンス」にアクセスします。
- 対象のインスタンスの左ボックスにチェックを入れ、「アクション」をクリックします。

- 「セキュリティ」をクリックし、「IAMロールを変更」をクリックします。


- 先ほど作成したロールを選択して、「IAMロールの更新」をクリックします。

以上で、CloudWatch導入の為に必要なロールを作成することができました。
3 SystemsManager を利用した CloudWatchの インストール
- AWS Systems Managerを開き、ダッシュボードの左上
より、「ノードツール」>「Run Command」をクリックします。
- 画面の「コマンドを実行する」をクリックします。

- キーワード検索に「AWS-ConfigureAWSPackage」入力しEnterを押し、実行スクリプトを検索し、左の〇にチェックを入れる。

- コマンドパラメータのNameに「AmazonCloudWatchAgent」を設定する。

- ターゲットを「インスタンスを手動で選択する」をチェックし、サーバーの左のチェックボックスにチェックを入れる。

- 出力オプションで、コマンド出力を「CloudWatch出力」でチェックし、ロググループ名に任意の名前を入力します。

- 右下の実行ボタンをクリックします。

- ステータスが「成功」になるまで待ちます。

- AWSのEC2を開き、ダッシュボードの左上
より、「インスタンス」>「インスタンス」にアクセスします。
- フィルターで対象のインスタンスの左ボックスにチェックを入れ、「アクション」をクリックします。

- 対象サーバーの「モニタリングとトラブルシューティング」>「詳細モニタリングを管理」をクリックします。


- 「詳細モニタリング」の有効化にチェックを入れ、「確認」をクリックします。

ここまでで、監視対象サーバーのログ取得の準備、サーバーのパフォーマンスのモニタリンググラフ表示の準備が完了しました。
次回、CloudWatchエージェントがログ取得するためのConfigの設定と、各項目の監視アラームの作成についてご紹介します。























