まえがき
前回の「CloudWatchAgent を用いたWindowsServerプロセス監視 #1」の続きになります。
CloudWatchAgent導入・設定については方法はいくつかありますが、今回はSSMを使用して外部ネットワークに出ないでも導入・設定が行える手順について記載していければと思います。
構成/CloudWatchAgent作業手順
CloudWatchAgentを使用して、WindowsServer上のプロセス監視導入についての構成図、作業手順を記載いたします。
構成図
OS上にCloudWatchAgentを導入し、config設定を行います。
config設定では、取得したいメトリクスを記述します。
詳細については、AWS公式ドキュメントを参照下さい。
設定に問題が無ければ、CloudWatchメトリクス(カスタムメトリクス)にて、メトリクスの取得ができます。
コンソール上で確認ができれば良いというより、運用上の監視として導入される方の方が多いかと思いますので、CloudWatchAlarmにて設定した閾値を超過した場合に、メール通知を行うまでを記載していきます。
作業手順
1. AWS環境の構築
2. CloudWatchAgentの導入・設定・メトリクス取得を行う
- カスタムメトリクスを使用してアラート通知を行う
CloudWatchAgent導入作業
本章では、「2. CloudWatchAgentの導入・設定・メトリクス取得を行う」を行います。
CloudWatchAgentの導入・設定・メトリクス取得を行う
以下手順で作業を行います。
SSM(RunCommand)を使用して、WindowsServerにCloudWatchAgent導入・Agent設定を行い、CloudWatchカスタムメトリクスにて値が取得できているのかを確認いたします。
- CloudWatchAgentのインストール(RunCommand)
- CloudWatchAgentのConfigファイル設定(パラメータストア、RunCommand)
- カスタムメトリクス取得確認
1. CloudWatchAgentのインストール(RunCommand)
前回作成したWindowsServerにCloudWatchAgentをインストールしていきます。
最近のAMIには基本SSMAgentが初期導入されていますが、SSM接続(RunCommand)が使用できない場合は導入されているかご確認ください。
-
SSMコンソールから、RunCommandに進み、「コマンドを実行する」を押下します。
-
「コマンドドキュメント」欄にて、以下を選択する。
コマンドドキュメント:AWS-ConfigureAWSPackage
ドキュメントのバージョン:任意のものを選択してください
-
「コマンドのパラメータ」欄にて、以下を選択する。
Action:Install
Installation Type:Uninstall and reinstall
Name:AmazonCloudWatchAgent
Version:latest
Additional Arguments:オプションは設定しないためデフォルト
-
「ターゲット」欄にて、CloudWatchAgentを導入するEC2を選択します。
今回私は、「インスタンスを取得で選択する」を選択し、対象インスタンスを選択しました。
導入台数が多い場合は、共通タグを設定しタグで選択しても良いかと思います。
-
以下は任意で設定・利用ください。
・その他のパラメータ
・レート制御
・出力オプション
・CloudWatch alarm – optional
・SNS 通知
・AWS コマンドラインインターフェイスのコマンド -
設定内容に問題がなければ「実行」を押下します。
「コマンドID:XXXXXXXX」にて、ステータスが「成功」していれば、インストール完了になります。
エンドポイントへの疎通やIAMロールにて問題・不足があれば、「失敗」になりますのでこれまでの設定部分を見直してみてください。
-
Server上での確認を行う。
接続方法は環境によって変わると思うので割愛いたしますが、WindowsServerに接続し、「サービス」にてAmazonCloudWatchAgentが導入できているかを確認ください。
2. CloudWatchAgentのConfigファイル設定(パラメータストア、RunCommand)
CloudWatchAgentの導入が完了したので、次はCloudWatchAgentのConfigファイルを設定していきます。
-
パラメータストアの設定
SSMコンソールから、パラメータストアに進み「パラメータの作成」を押下します。
「パラメータの詳細」欄にて、以下を設定します。
名前:AmazonCloudWatch-から始まる名前を設定
説明 — Optional:任意
利用枠:標準
タイプ:文字列
データ型:text
値:私は検証のために以下のJSONを作成いたしました。(プロセスとして、「メモ」が1つ起動していれば1カウントします)
監視対象プロセスのコマンドライン名文字列を、patternの値に指定することでAgentが検知してくれます。
そのほかにも方法はありますので、公式ドキュメントを参照ください。{ "metrics": { "append_dimensions": { "InstanceId": "${aws:InstanceId}" }, "metrics_collected": { "procstat": [ { "pattern":"%notepad%" "measurement":[ "pid_count" ] } ] } } }タグ — Optional:任意
設定内容に問題がなければ、「パラメータを作成」を押下して完了します。
パラメータストアの設定が完了したら、作成したパラメータをCloudWatchAgentのConfigファイルとして反映させます。 -
Configファイルへの反映
SSMコンソールから、RunCommandへと進み「コマンドを実行する」を押下します。
↓
「コマンドドキュメント」欄にて、以下を選択します。
コマンドドキュメント:AWS-ConfigureAWSPackage
ドキュメントのバージョン:任意のものを選択してください
↓
「コマンドのパラメータ」欄にて、以下を選択します。
Action:configure
Mode:ec2
Optional Configuration Source:ssm
Optional Configuration Location:AmazonCloudWatch-test(先ほど作成したパラメータ名を入れます。)
Optional Restart:yes
↓
「ターゲット」欄にて、Configファイルを反映させるインスタンスを選択します。
先ほどCloudWatchAgentをインストールした、インスタンスを選択します。
↓
以下は任意で設定・利用ください。
・その他のパラメータ
・レート制御
・出力オプション
・CloudWatch alarm – optional
・SNS 通知
・AWS コマンドラインインターフェイスのコマンド
↓
設定内容に問題がなければ「実行」を押下します。
「コマンドID:XXXXXXXX」にて、ステータスが「成功」していれば、インストール完了になります。
※ConfigファイルのJSON記述に問題があっても、コンソール上は成功する場合があります。
Server上でAgentが起動していない場合は、1度サービスから「AmazonCloudWatch Agent」を手動起動してください。起動時に1053エラーが発生する場合は、Configファイルの設定が誤っている場合がありますので、JSONの記述をご確認ください。
3. カスタムメトリクス取得確認
CloudWatchAgentのインストールとJSONの反映・Agent起動が完了したら、メトリクスの取得確認を行います。
-
CloudWatchメトリクスコンソール上の、カスタム名前空間にて以下の名前空間があるかを確認し押下します。
名前空間:CWAgent
-
次にディメンションを押下します。
-
「参照」タブに表示されているので、チェックを入れます。
-
「グラフ化したメトリクス」タブにて、統計や期間を以下に設定しメトリクス値を確認します。
統計:合計(プロセス数のカウントを行うので、合計数で確認するとわかりやすいです。)
期間:1分(要件に合わせて、適宜変更してください。)
※10分ほどたっても、メトリクスの取得が確認できない場合は主に以下2つの理由があるかと思いますのでご確認ください。
・前述したConfigファイルの記述が誤っている可能性
・Agentが起動できている場合、プロセス部分の文字列の記述が誤っている可能性
あとがき
本章はCloudWatchAgent導入・設定を行い、メトリクスの取得確認を行いました。
JSONの記述が主に引っかかるポイントなのかなと思います。
また、プロセスの指定部分はpattern以外にもありますので、公式ドキュメントを参考に要件に合うものを選択していただければと思います。
次章は最終章で、カスタムメトリクスを使用して、Alarmの設定からSNS通知までを記載いたします。
何かの参考になれば幸いです。

