1
0

More than 3 years have passed since last update.

プライベートネットワークのEC2にCloudWatch Agentを設定

Posted at

0.事前準備

プライベートネットワークにCloudWatch Agentを設定するには事前に以下の設定が必要。

SSMに関してはこのページを見れば大体書いてあった

IAMポリシー

以下のIAMポリシーまたは同等のアクセス権限をロールに設定

ロールをEC2インスタンスに設定

  • AmazonSSMFullAccess
  • CloudWatchAgentAdminPolicy
  • AmazonSSMManagedInstanceCore
  • Amazon S3 バケットアクセスのカスタムポリシー

VPCエンドポイント

以下のVPCエンドポイントを作成する

  • com.amazonaws.ap-northeast-1.s3
    • 以下のPolicyの付与が必要
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "*",
            "Resource": [
                "arn:aws:s3:::aws-ssm-ap-northeast-1/*",
                "arn:aws:s3:::aws-windows-downloads-ap-northeast-1/*",
                "arn:aws:s3:::amazon-ssm-ap-northeast-1/*",
                "arn:aws:s3:::amazon-ssm-packages-ap-northeast-1/*",
                "arn:aws:s3:::ap-northeast-1-birdwatcher-prod/*",
                "arn:aws:s3:::patch-baseline-snapshot-ap-northeast-1/*"
            ]
        }
    ]
}
  • com.amazonaws.ap-northeast-1.ssm
  • com.amazonaws.ap-northeast-1.ec2
  • com.amazonaws.ap-northeast-1.ssmmessages
  • com.amazonaws.ap-northeast-1.ec2messages
  • com.amazonaws.ap-northeast-1.logs
  • com.amazonaws.ap-northeast-1.monitoring

1.SSM Agentのインストール

rpmファイルを転送

踏み台サーバにログイン

踏み台サーバ上のamazon-ssm-agent.rpmファイルをscpコマンドで転送する。

-i オプションで転送先にログインする鍵ファイルを指定。

$ scp -i ./.ssh/(鍵ファイル) amazon-ssm-agent.rpm xx.xx.xx.xx(転送先のIPアドレスを指定):~

SSM Agentのインストール

対象のサーバにログイン

yumでSSM Agentをインストールする。

sudo yum install -y amazon-ssm-agent.rpm

実行後、プロセスを確認。

$ ps -ef | grep ssm

SSM Agentが実行中かを確認

$ sudo systemctl status amazon-ssm-agent

サービスの状態がloadedの場合、しばらく待ってみる。

待っても状態が変わらない場合はサービス再起動してみる。

$ sudo systemctl restart amazon-ssm-agent
$ sudo systemctl status amazon-ssm-agent

コマンド実行確認

正常の場合、インスタンスの情報がjson形式で出力される。

$ aws ssm describe-instance-information --region ap-northeast-1

2. CloudWatch Agentのインストール

CloudWatch Agentのインストール

AWSマネジメントコンソール上から実行する方法と、AWS Cli からSSM経由でインストールする方法の2種類ある。

実行していることは同じなのでどちらから実行しても変わらない。

どちらも実行結果はAWSマネジメントコンソール上のAWS Systems Manager > Run Command > コマンドの履歴 から確認する。

AWSマネジメントコンソール上から実行する場合

  1. AWS Systems Manager > Run Commandを選択する
  2. [Run Command]ボタンをクリック
  3. 以下の通り画面に入力、[実行ボタン]をクリック
    1. コマンドドキュメント:AWS-ConfigureAWSPackage
    2. Action : Install
    3. InstallType : Uninstall and reinstall
    4. Name : AmazonCloudWatchAgent
    5. Version : latest
    6. ターゲット : インストール対象のインスタンスを選択

AWS Cli からSSM経由でインストールする場合

以下のコマンドを実行する

$ aws ssm send-command --document-name "AWS-ConfigureAWSPackage" --targets "Key=instanceids, Values=インストール対象のインスタンスID" --parameters "action=Install, name=AmazonCloudWatchAgent, version=latest" --region ap-northeast-1

複数インスタンスを指定する場合は↓のように--tergets オプションをリストで指定する

 --targets '[{"Key":"InstanceIds","Values":["i-0afe0f5db00eca047","i-0504252b3c897c5e3","i-0412016fa9cb0c9a5"]}]' 

CloudWatch Agent 実行設定

AWSマネジメントコンソール上から実行する方法と、AWS Cli からSSM経由でインストールする方法の2種類ある。

実行していることは同じなのでどちらから実行しても変わらない。

どちらも実行結果はAWSマネジメントコンソール上のAWS Systems Manager > Run Command > コマンドの履歴 から確認する。

AWSマネジメントコンソール上から実行する場合

  1. AWS Systems Manager > Run Commandを選択する
  2. [Run Command]ボタンをクリック
  3. 以下の通り画面に入力、[実行ボタン]をクリック
    1. コマンドドキュメント:AmazonCloudWatch-ManageAgent
    2. Action : configure
    3. Mode : EC2
    4. optional Configure Source : ssm
    5. optional Configuration Location : AmazonCloudWatch-linux
    6. optional Restart : yes
    7. ターゲット : インストール対象のインスタンスを選択

AWS Cli からSSM経由でインストールする場合

以下のコマンドを実行する

$ aws ssm send-command --document-name "AmazonCloudWatch-ManageAgent" --targets "Key=instanceids,Values=インストール対象のインスタンスID" --parameters "action=configure, mode=ec2, optionalConfigurationSource=ssm, optionalConfigurationLocation=AmazonCloudWatch-linux, optionalRestart=yes" --timeout-seconds 600 --max-concurrency "50" --max-errors "0" --region ap-northeast-1

ここまで設定すると、CloudWatch のログやメトリクスに設定したインスタンスから収集した情報が表示される。

表示されない場合、SSM AgentやCloudWatch Agentのログに何らかのエラーが出ている可能性がある。

何かあった時に見るログ

SSMのログ

/var/log/amazon/ssm/amazon-ssm-agent.log

CloudWatch Agentのログ

/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log
1
0
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
1
0