ヤマムギ

growing hard days.

*

EC2にSystems MangerからCloudWatchエージェントをインストール

   

CloudWatchエージェント

EC2の標準メトリクスでは収集できないメモリの情報などをカスタムメトリクスとして収集し、アプリケーションログをCloudWatch Logsへの収集をまとめて行ってくれるCloudWatchエージェントをインストールしました。

CloudWatch エージェントにより収集されるメトリクス

IAMロールの作成

EC2がCloudWatchにメトリクスやログを書き込めるようにすることももちろんですが、SSMからインストールするのでSSMに対しての権限も必要です。

公式の手順Amazon EC2 Linux インスタンスに SSM エージェント を手動でインストールするにそって進めてみます。

IAMロールを新規作成して、AmazonEC2RoleforSSMポリシーをアタッチしました。

AmazonEC2RoleforSSMポリシー

AmazonEC2RoleforSSMポリシーを見てみました。

SSM、CloudWatchLogs、メトリクス、だけでなく、S3に対しての権限も有効になっています。

EC2にSSMエージェントをインストール

インストールが終わってamazon-ssm-agentのステータスを見てみるとすでに起動しています。
自動起動も出来ているらしい。

CloudWatchAgentのインストール

EC2用に作成したIAMロールにCloudWatchAgentAdminPolicyをアタッチします。

CloudWatchAgentAdminPolicy

CloudWatchAgentAdminPolicyポリシーを見てみました。

AmazonEC2RoleforSSMポリシーと内容がかぶってるステートメントもあります。
ですが、”ec2:DescribeTags”と”ssm:GetParameter” , “ssm:PutParameter”はない(GetPrametersはある)のでアタッチします。

必要なものだけインラインポリシーにするのも一つの方法ですが、ポリシーがまるごといらないときにデタッチしやすいのでCloudWatchAgentAdminPolicyポリシーを使います。

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

Systems Manager Servicesの[コマンドの実行]からコマンドを実行します。

AWS-ConfigureAWSPackageを選択します。

  • 対象のEC2インスタンスを選択
  • Action: insatll
  • Name: AmazonCludWatchAgent
  • Version: latest

にしました。

成功しました。

CloudWatchエージェントの設定

EC2にSSHでログインして設定します。

amazon-cloudwatch-agent-config-wizardを実行しました。

Amazon Linux 2 なのでlinuxを選択しました。

EC2を選択しました。

メトリクスの収集をします。

CPUメトリクスも追加します。

追加可能な情報をメトリクスに追加します。

収集間隔を10秒ごとにしました。

より多くの情報を収集してみたかったのでタイプはアドバンスドにしました。

設定ファイルの内容が表示されたので、yesを選択しました。

すでにインストールしているCloudWatxh Logsエージェントがあるか聞かれたので、noを選択しました。
既存のCloudWatxh Logsエージェントがある場合はここでyesを選択することで設定をインポート出来るようです。

ログ収集するかを聞かれるのでyesを選択しました。

ここから先は1ファイルづつ対象を設定していきます。

ログ設定の内容が表示されましたので、yesを選択しました。

SSM パラメータストアに登録する名前は、デフォルトのAmazonCloudWatch-linuxにしました。

リージョンを選択します。
今回はバージニア北部です。

SSMパラメータストアに設定を書き込む認証をどれにするかを聞かれます。
IAMロールを設定することによって、EC2に設定されているアクセスキーを使用します。

成功しました。

ちなみに前述のポリシーでPutParameterがないと、「Error in putting config to parameter store AmazonCloudWatch-linux: AccessDeniedException: 」になります。

CloudWatch Logsエージェントの起動

Systems Managerのコマンド実行から起動します。
amazonCloudWatch-ManageAgentを選択します。

  • 対象のインスタンスを選択
  • Action: Configure
  • Mode: ec2
  • Option Configuration Source: ssm
  • Option Configuration Location: AmazonCloudWatch-linux(パラメータストアに登録した名前)
  • Optional Restart: yes

で実行しました。

結果は成功しました。

結果を確認

このあと、対象のEC2からAMIを作成して起動設定を作成して、AutoScalingで起動してます。

カスタムメトリクスにCWAgentがあります。

ちゃんととれてます。

ログもちゃんととれてます。

一つのAgentでカスタムメトリクスもログも収集できるので便利でした。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , ,

  関連記事

LINE BOT AWARDS 2017に応募しました

LINEの友達追加QRです。 動作のご確認にどうぞ LINE BOT AWARD …

EC2 Global Viewで不要なインスタンスを見つけて4つほど終了しました

EC2 Global Viewという機能がリリースされました。 EC2コンソール …

AWS Network Firewallの入門

公式のGetting started with AWS Network Fire …

Amazon Glacierのプロビジョニングされた迅速取り出し容量をなぜか購入しました

過去1年ぐらいのAWSコストをCost Explorerで見てまして、10/10 …

Amazon Augmented AI (Amazon A2I) のチュートリアル

Amazon Augmented AI (Amazon A2I)を使ったことがあ …

特定AWSアカウント特定リージョンのCloudFormationスタックを削除するLambda(Python)

やりたいこと 特定アカウント内特定リージョン内のCloudFormationスタ …

Amazon SES, S3で受信したメールをAWS Lambda, SESで別のメールへ転送する

Amazon SESでメール受信で受信したメールを、毎回S3バケットに見に行って …

VPC新コンソールの日本語UIでルートテーブル編集時のエラー(2021/6/10)が発生したのでフィードバックを送った

VPCの新コンソールがリリースされていたので使って作業してましたところ、こんなエ …

AWS東京リージョンのAZ(apne1-az1)障害時の当ブログで発生していたことの記録

日本時間2/19 23:01頃より、東京リージョン、特定AZの1つでEC2インス …

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー」執筆裏話

今日2019/4/20発売となりました「AWS認定資格試験テキスト AWS認定ク …