みなさん、こんにちは。サニービュー事業部の小寺です。

CloudWatchエージェントをインストールし、CloudWatchで監視する方法について、お伝えします。
今回は、Systems Managerを利用することで、EC2にログインすることなく、エージェントのインストールとEC2インスタンスへ監視設定の紐づけを行うことができます。

EC2にログインせずに、Systems Managerからコマンド実行をして、インストールを行います。
※本記事ではSystems Managerにアクセスするためのamazon-ssm-agentエージェントはインストール済とします。まずは必要なロール作成を行います。

IAMロールの作成

AWSマネジメントコンソールから「IAM」を選び、新しく「IAMロール」の作成を行います。
ロール名は「ec2-cloudwatch-role」とします。
必要なポリシーは以下の2つです。
・AmazonEC2RoleforSSM
・CloudWatchAgentServerPolicy

作成したIAMロールをEC2インスタンスにアタッチしておきましょう。
AWSマネジメントコンソールから「EC2」で該当のインスタンスを選び、「セキュリティ」より「IAMロールの変更」をしましょう。

CloudWatchエージェントをインストール

1) Systems Managerから「Run Command」を選びます。

2) インスタンスの管理から「コマンドを実行する」をクリックします。

3) CloudWatchエージェントをインストールするために実行するのは
コマンドドキュメント「AWS-ConfigureAWSPackage」を選びます。

4)コマンドのパラメータで以下を選びます。
・Action: install
・Installation Type:Uninstall and reinstall
・Name: AmazonCloudWatchAgent
・Version:latest

5) 次にCloudWatchエージェントをインストールするインスタンスを選びます。

6) 出力オプションとして、コマンド出力をS3バケットへ書き込みできます。

7) 完了すると「ステータス」が「成功」と表示されます。

Cloud Watchエージェントのインストールを確認

早速、CloudWatchエージェントがインストールされたか確認してみましょう。
Systems ManagerのSession Managerから先ほどインストールしたEC2インスタンスにアクセスしてみます。
サービスの状態を確認してみます。コマンドを実行して、状態がactiveと表示されていれば成功です。
#systemctl status amazon-cloudwatch-agent.service -l

CloudWatchでメモリ空き容量とディスク使用量、スワップ使用量を取得してみる

Systems Managerのパラメータストアに情報取得用のスクリプトを登録します。

1) Systems Managerより「パラメータストア」を選びます。

2) パラメータストアの使用開始より「パラメータの作成」を選びます。

テキストとして、以下を登録してみます。

{
“agent”: {
“metrics_collection_interval”: 60,
“run_as_user”: “root”
},
“metrics”: {
“metrics_collected”: {
“disk”: {
“measurement”: [
“used_percent”,
“inodes_free”
],
“metrics_collection_interval”: 60,
“resources”: [
“*”
]
},
“mem”: {
“measurement”: [
“mem_available_percent”
],
“metrics_collection_interval”: 60
},
“swap”: {
“measurement”: [
“swap_used_percent”
],
“metrics_collection_interval”: 60
}
}
}
}

3) パラメータストアの登録が完了した後に、EC2にパラメータ投入を行います。先ほどと同様にSystems Managerの「Run Command」を選び、コマンドドキュメントは「AmazonCloudWatch-ManageAgent」を選びます。

4) コマンドのパラメータを設定します。
・Action: configure
・Mode:ec2
・Optional Configuration Source:ssm
・Optional Configuration Location:AmazonCloudWatch-linux
※デフォルトでは表示はされないので、パラメータストアで登録した名称を入力する。

・Optional Open Telementry Collector Configuration Source:ssm
・Optional Restart:yes

5) 完了すると「ステータス」が「成功」と表示されます。

CloudWatchでメモリ空き容量とディスク使用量、スワップ使用量を確認

Run Command実行後、CloudWatchからエージェント経由で情報を取得できるようになったか確認してみましょう。

CloudWatchを選び、全てのメトリクスから「CWAgent」が表示され、スクリプトの内容が監視設定できるようになりました!

まとめ

EC2にログインせずにCloudWatch Agentのインストールを行い、
CloudWatchで必要な情報を取得できるように設定を行いました。

Systems Managerは便利な機能が多いので、ぜひ活用していきたいですね。