たそらぼ

日頃思ったこととかメモとか。

統合 CloudWatch エージェントの設定方法

CloudWatch Agentの設定方法をまとめました。

統合 CloudWatch エージェントとは

CloudWatch エージェントで、いわゆるカスタムメトリクスの収集とログの収集が可能です。

統合 CloudWatch エージェントを使用すると、以下のことを実行できます。


オペレーティングシステム全体で Amazon EC2 インスタンスからより多くのシステムレベルのメトリクスを収集します。

このメトリクスには、EC2 インスタンスのメトリクスに加えて、ゲスト内メトリクスを含めることができます。収集することができる追加のメトリクスについては、「CloudWatch エージェントにより収集されるメトリクス」を参照してください。

オンプレミスサーバーからシステムレベルのメトリクスを収集します。これには、ハイブリッド環境のサーバーや AWS によって管理されていないサーバーも含まれる可能性があります。

カスタムメトリクスは、StatsD および collectd プロトコルを使用して、アプリケーションまたはサービスから取得します。StatsD は、Linux サーバーと、Windows Server を実行するサーバーの両方でサポートされています。collectd は、Linux サーバーでのみサポートされています。

Linux または Windows Server を実行している Amazon EC2 インスタンスおよびオンプレミスサーバーから、ログを収集します。

CloudWatch エージェントを使用して Amazon EC2 インスタンスとオンプレミスサーバーからメトリクスとログを収集する - Amazon CloudWatch


インストールとIAMの設定

インストール

下記を参考に、自分のEC2があるリージョンのURLからCloudWatch エージェントパッケージをダウンロードし、インストールします。
docs.aws.amazon.com

IAMロールの設定

EC2にCloudWatch Agentを入れる想定ですが、EC2にCloudWatchAgentServerPolicyのついたIAMロールをアタッチするとカスタムメトリクス及びログをAWSに送ることができます。
docs.aws.amazon.com


設定

基本的には以下のドキュメントに書かれています。
docs.aws.amazon.com

設定ファイルの作成

以下が推奨されています。

  • 名前はamazon-cloudwatch-agent.jsonにする。
  • 場所は/opt/aws/amazon-cloudwatch-agent/etc/に設置する。

amazon-cloudwatch-agent.jsonはagent、metrics、logs の 3 つのセクションから構成されます。

  • agent セクション…エージェントの全体的な設定。
  • metrics セクション…カスタムメトリクスの指定します。
  • logs セクション…CloudWatch Logs に送るログファイルの指定。及びログストリームの指定。

設定ファイルの書き方

各々のセクションの書き方は、以下を見ると良いです。

設定の読み込み

作成したログを読み込みます。

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2  -c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json -s

下記コマンドを実行して、statusがrunningになっていれば起動しています。

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status

CloudWatch Agent自体のログは/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log に出力されるので、カスタムメトリクスやログが送られてこない場合は確認します。