CloudWatch Agentでオンプレミスサーバのメトリクスを収集する

こんにちは、菊池です。年末ですね。

先日のアップデートで、CloudWatch Agentを使ってEC2インスタンスの詳細なメトリクスが収集できるようになりました。

新しいCloudWatch Agentでメトリクスとログの収集が行なえます

今回はこちらを応用し、オンプレミスのサーバに対してもCloudWatchによるメトリクスの収集を試してみました。

やってみた

今回は、オンプレミスのHyper-V上で動作するCentOS 7に設定します。

  1. SSMエージェントのインストール/設定
  2. CloudWatch Agentのインストール
  3. 設定の作成
  4. CloudWatch Agent用のIAMユーザの作成・設定
  5. CloudWatch Agentの設定の実行

1.については過去に紹介しています、以下の記事を参照ください。

EC2 Systems Managerでオンプレ環境のサーバを管理する #reinvent

2、3についても、EC2への設定と同様になります。異なるのは、4以降の手順でした。

4. CloudWatch Agent用のIAMユーザの作成・設定

オンプレミスの場合、IAMロールを利用することはできませんので、IAMユーザによるアクセスキー/シークレットキーが必要です。

IAMユーザを作成し、AmazonEC2RoleforSSMのポリシーを割り当てます。また、AWS CLIをインストールし、AmazonCloudWatchAgentというプロファイルでアクセスキー/シークレットキー/リージョンを設定します。

# aws configure --profile AmazonCloudWatchAgent
AWS Access Key ID [None]: xxxxxxxxxxxxxxxxxxx
AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Default region name [None]:ap-northeast-1
Default output format [None]:

5. CloudWatch Agentの設定の実行

次に、設定を反映させます。コマンドで実行する場合には、以下のようになります。

# /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m onPremise -c ssm:agent-config-linux -s

RunCommandでも実行可能です。その場合には、ModeをonPremiseに指定し、パラメータストアのパラメータを入力しましょう。

問題なければ、CloudWatchのメトリクスに設定した項目が反映されます。

最後に

CloudWatch Agentのアップデートにより、AWS/オンプレ問わずに詳細なメトリクスをCloudWatchで収集可能になりました。オンプレの場合には権限設定のところで少し迷いました。

AWS/オンプレで同じツールでモニタリングすることが可能です。