LoginSignup
0
1

CloudWatchAgentをインストールしてみる

Last updated at Posted at 2023-08-26

EC2にCloudWatchエージェントをインストール方法

インストール方法は2種類あります。

  • CLIからのインストール
  • SystemManagerを使用してインストール

CLIでインストールしてみようと思います。
気が向いたらSystemManageからもやるかも

IAMロールの作成

はじめにインスタンスにアタッチされたIAM ロールCloudWatchAgentServerPolicyがアタッチする必要があります。

信頼されたエンティティタイプをAWSサービスを選択
ユースケースをEC2選択

image.png

CloudWatchAgentServerPolicyで検索してチェックボックスにチェックを入れる

image.png

ロール名と説明を記入する
説明はでデフォルトで記入されてます

image.png

CloudWatch エージェントによるログの保持ポリシーの設定を許可をする
先ほど作成したロール名で検索してポリシー名をクリック

image.png

許可タブから許可を追加からインラインポリシーの作成をクリック

image.png

ビジュアルタブから設定する場合PutRetentionPolicyにチェックを入れる
リソースを全てにチェックを入れる

image.png

JSONから設定する場合はJSONタブを押して以下をコピペする

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "logs:PutRetentionPolicy",
      "Resource": "*"
    }
  ]
}

image.png

これでCloudWatchAgentのIAMロールにログの保持ポリシーを設定するための許可を付与できました。
あとはEC2にアタッチするだけ

CLIからインストールしてみる

amazon linux 2を使用している場合は以下のコマンドインストール

sudo yum install amazon-cloudwatch-agent

念のためyum list installed | grep amazon-cloudwatch-agentをしています。

image.png

ウィザードを使用してCloudWatchエージェント設定ファイルを作成する

以下のコマンドを実行

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
  • エージェントを Amazon EC2 インスタンスとオンプレミスサーバーのどちらにインストールするか。
  • サーバーで Linux と Windows Server のどちらが実行されているか。
  • エージェントがログファイルを CloudWatch Logs に送信するようにするか。持っている場合は、既存の CloudWatch Logs エージェント設定ファイルを持っているか。持っている場合、CloudWatch エージェントは、このファイルを使用してサーバーから収集するログを判別できます。
  • エージェントがログファイルを CloudWatch Logs に送信する場合、それらのログファイルを保持する必要がある期間。デフォルト値の -1 にすると、ログアイテムは無期限に保持されるように設定されます。
  • サーバーからメトリクスを収集する場合は、デフォルトのメトリクスセットの 1 つを監視するか、収集するメトリクスのリストをカスタマイズしますか。
  • StatsD または collectd プロトコルを使用して、アプリケーションまたはサービスからカスタムメトリクスを取得しますか。
  • 既存の SSM Agent から移行しますか?
    などが聞かれます。

collectdのインストールをする
configはstandardで監視するファイルは/var/log/messagesを監視
パラメータストアには登録しません。

## 実際にいろいろなメトリクスを見てみる
CloudWatchからメトリクスを見てみるとconfigをstandardにしたのでメモリ使用率や使用量が見れるはずなのにない
CloudWatchAgentが起動しているか見てみる

image.png

どうやら起動していないっぽいので起動してみる
image.png
開始してすぐに停止しているのでログを見てみる

image.png

エラー内容を見るとjsonコンフィグファイルが存在しないまたは読み込めないと言われている

lsで実際に見てみる

[ec2-user@ip-10-0-0-38 ~]$ ls -l /opt/aws/amazon-cloudwatch-agent/etc/
total 4
drwxr-xr-x. 2 root root   6 Jul 18 21:53 amazon-cloudwatch-agent.d
-rw-r--r--. 1 root root 925 Jul 18 21:53 common-config.toml

どうやら設定ファイルであるjsonがなさげということが分かった

調べた結果sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s
で行けたけどsystemctl status amazon-cloudwatch-agentをするとjsonコンフィグがないとないってる

image.png

起動したけどCloudWatchAgentの項目がない
image.png

2023-08-26T13:25:24.936Z        warn    ec2tagger/ec2tagger.go:495      ec2tagger: Unable to describe ec2 tags for initial retrieval    {"kind": "processor", "name": "ec2tagger", "pipeline": "metrics/host", "error": "UnauthorizedOperation: You are not authorized to perform this operation.\n\tstatus code: 403, request id: 33de39c8-55a4-4993-b071-4705b158252a"}

どうやら権限がなくEC2のタグが読み込めないエラーが出ていたので、EC2のタグを削除したらCWagentが表示されるようになった

参照

0
1
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
0
1