#はじめに
こんにちは、山田です。
今回はEC2のプロセス監視を実装してみました。
#前提条件
今回は、SystemManagerとCloudWatchAlarmの構築をメインに記載していきます。
また、今回は監視するプロセスはApacheとし、プロセスが終了したらSNSにて通知が行くように実装していきます。
①:プロセスを監視するためのパラメータの作成
②:RunCommandにて、パラメータを実行
③:CloudWatchにプロセスのメトリクスを送信
④:プロセス終了をきっかけに、CloudWatchAlarm発動
⑤:SNSにて通知
#パラメータの作成
①:AWS管理コンソール -> AWS Systems Manager -> パラメータストア -> パラメータの作成をクリックする。
②:名前はtest-parameter
とし、値は以下のように入力する。
{
"metrics": {
"metrics_collected": {
"procstat": [
{
"exe": "httpd",
"measurement": [
"pid_count"
],
"metrics_collection_interval": 60
}
]
}
}
}
③:その他の設定値はデフォルトとする。
#RunCommandにてコマンド実行
①:AWS管理コンソール -> AWS Systems Manager -> RunCommand -> RunCommandをクリックする。
②:コマンドドキュメントは、AmazonCloudWatch-ManageAgent
を選択する。
③:コマンドパラメータのOptional Configuration Locationで先ほど作成したパラメータの名前を入力する。
今回はtest-parameter
と入力する。
④:対象のインスタンスを選択してRunCommandを実行する。
#CloudWatchAlarmの作成
①:はじめに対象のメトリクスが取得できてるか確認する。
プロセスのメトリクスは、すべて -> CWAgent -> exe,host,pid_finder
の中に格納されている。
②:CloudWatchAlarmを作成する。名前はtest-larm
とし、procstat_lookup_pid_count
5分間の平均値が1未満になったらアラームが発動するように設定する。
#動作確認
①:強制的にApacheを終了する。
systemctl stop httpd