LightsailでCloudWatch Logsに保管する

AWS

こんにちは。かじです。

今回はCloudWatch LogsでLightsailのログを収集する方法について解説します。

CloudWatchLogsではEC2やオンプレミスのサーバのログを収集し保管することができる機能です。EC2やオンプレミスのサーバが基本的な用途ですが、LightsailでもCloudWatch Logsでログを収集、保管することはできます。ログを収集する際にはインターネットを介してログをCloudWatchに送るだけですし、内部で動いているOSはLinuxですので、なんら問題はありません。

とりあえずやってみましょう。

1.IAMユーザーを作成する

LightsailもEC2オンプレミスと変わらないから問題ないはと言ったものの、いきなり問題発生です。LightasailにはIAMロールをアタッチできません。

解決方法は、IAMユーザーを使用することです。とりあえず、これ用のIAMユーザーを作成し、アクセスキーとシークレットキーを控えてください。

2.Lightsail側の設定

aws configureでプロファイルを作成

LightsailインスタンスにSSHで接続し、下記コマンドでaws configureプロファイルを作成します。

$ sudo aws configure --profile AmazonCloudWatchAgent

プロファイル名は適当で、作成したIAMユーザーのアクセスキー・シークレットキーを入力し、リージョンは ap-northeast-1 を入力します。

CloudWatchAgentをインストール

引き続き、SSH接続したまま、下記コマンドでCloudWatchAgentをインストールします。

$ sudo yum install amazon-cloudwatch-agent

と思ったのですが、yum:Command not foundとなってしまいyumが使用できないようです。ひとまず下記コマンドでOSを調べてみます。

$ cat /etc/issue

どうやらOSがDebian GNU/Linux 11だったため、yumではなく、aptでパッケージ管理されているとのことでした。

下記サイトにOSごとのエージェントのインストールファイルのリンクがあり、それをwgetコマンドでダウンロードし、dpkgで解凍します。

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-commandline-fleet.html

.debファイルのダウンロードコマンド

wget https://amazoncloudwatch-agent.s3.amazonaws.com/debian/amd64/latest/amazon-cloudwatch-agent.deb

ダウンロードファイルの解凍コマンド

sudo dpkg -i -E ./amazon-cloudwatch-agent.deb

CloudWatchエージェントの設定

引き続きSSH接続したまま、下記コマンドでCloudWatchAgentの設定を行います。
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard

このコマンドでプロンプト形式で、CloudWatchエージェントの設定が始まるのですが、Lightsailの場合、下記の項目でデフォルトの回答を選択できません。

Are you using EC2 or On-Premises hosts?
Do you want to turn on StatsD daemon?
Do you want to monitor metrics from CollectD?
Do you want to monitor cpu metrics per core? Additional CloudWatch charges may apply.
Do you want to add ec2 dimensions (ImageId, InstanceId, InstanceType, AutoScalingGroupName) into all of your metrics if the info is available?
Do you want to monitor any log files?
Do you want to store the config in the SSM parameter store?

こちらの設定が完了すると下記パスにconfig.jsonファイルが作成されています。

CloudWatchエージェントの起動

下記コマンドでCloudWatchエージェントを起動します。

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

psコマンドでCloudWatchエージェントが動いているのを確認します。

また、これでCloudWatchにアクセスしてログが収集できてることを確認できれば完了です。

⚫︎参考サイト

CloudWatch エージェントを使用して Lightsail インスタンスのメトリクスをモニタリングする
Amazon Lightsail インスタンスを所有していますが、Amazon CloudWatch エージェントを使用してインスタンスのディスクとメモリのメトリクスをモニタリングしたいと考えています。
タイトルとURLをコピーしました