0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

EC2のプロセスを監視してみた。(EC2 + CloudWatch + SSM + SNS)

Posted at

#はじめに
こんにちは、山田です。
今回はEC2のプロセス監視を実装してみました。

#前提条件
今回は、SystemManagerとCloudWatchAlarmの構築をメインに記載していきます。
また、今回は監視するプロセスはApacheとし、プロセスが終了したらSNSにて通知が行くように実装していきます。

#全体構成図
image.png

①:プロセスを監視するためのパラメータの作成
②:RunCommandにて、パラメータを実行
③:CloudWatchにプロセスのメトリクスを送信
④:プロセス終了をきっかけに、CloudWatchAlarm発動
⑤:SNSにて通知

#パラメータの作成
①:AWS管理コンソール -> AWS Systems Manager -> パラメータストア -> パラメータの作成をクリックする。
②:名前はtest-parameterとし、値は以下のように入力する。

{
    "metrics": {
        "metrics_collected": {
            "procstat": [
                {
                    "exe": "httpd",
                    "measurement": [
                        "pid_count"
                    ],
                    "metrics_collection_interval": 60
                }
           ]
        }
    }
}

③:その他の設定値はデフォルトとする。

image.png

#RunCommandにてコマンド実行
①:AWS管理コンソール -> AWS Systems Manager -> RunCommand -> RunCommandをクリックする。
②:コマンドドキュメントは、AmazonCloudWatch-ManageAgentを選択する。
image.png
③:コマンドパラメータのOptional Configuration Locationで先ほど作成したパラメータの名前を入力する。
今回はtest-parameterと入力する。

image.png
④:対象のインスタンスを選択してRunCommandを実行する。

#CloudWatchAlarmの作成
①:はじめに対象のメトリクスが取得できてるか確認する。
プロセスのメトリクスは、すべて -> CWAgent -> exe,host,pid_finderの中に格納されている。

image.png

②:CloudWatchAlarmを作成する。名前はtest-larmとし、procstat_lookup_pid_count5分間の平均値が1未満になったらアラームが発動するように設定する。

image.png
image.png

#動作確認
①:強制的にApacheを終了する。

systemctl stop httpd

②:CloudWatchAlarmがアラーム状態になり、SNSにて以下のような通知が来ていれば完了。
image.png

image.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?