😎

Amazon Linux AMIにはいろいろ入ってないけど、CloudWatch agentを設定したかった話

2024/04/01に公開

Amazon Linux AMIには、amazon-linux-extrasがなかったり、
/var/log/messagesがなかったりでCloudWatch agengtの設定にてこづったので、
同じような思いの方向けの記事です。


なんで2を使用しなかったのか?

Next.js、EC2環境構築してるとき、Node18がAmazon Linux2では使えなかった。
なので、Amazon Linux2023で構築してました。。
https://docs.aws.amazon.com/ja_jp/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html


対応策

  • amazon-linux-extrasがない
sudo amazon-linux-extras install collectd
amazon-linux-extras: command not found

# 下記で解決
sudo yum install collectd


  • /var/log/messageがない
sudo yum install rsyslog
sudo systemctl start rsyslog.service
sudo systemctl enable rsyslog.service

rsyslogが入っていないので手動で行い無事/var/log/messagesが作成されます。


CloudWatch Agentの構築

必要なものがそろったので、他の記事にもあるが下記の順番で構築できました。

  • ロール作成

    • CloudWatchAgentAdminPolicy
    • CloudWatchAgentServerPolicy
      こちらのロールを追加してあげる
  • EC2内でエージェントを構築

sudo yum install amazon-cloudwatch-agent

# cloudwatch agent 設定ファイルウィザードで設定ファイルを作成
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard

質問事項がたくさん出てきますので、皆様の環境に合わせて進めていただければと思います。


CloudWatch Agentの起動

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

正常に起動できましたら、
CloudWatch画面の、ロググループ内にmessagesがあり、
デフォルトで設定していればインスタンスID名のログストリームで確認できます。

/var/log/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.log
上記でログファイルを確認できるので、
正常に監視できてなさそうでしたらログファイル内でエラーがないか確認できます。


CloudWatch Agentの停止

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

おわりに

誰かのお役に立てれば幸いです!

Discussion