こんにちは。今日は、ひさびさAWS LightSailに関する記事を書きます。
といいますのも、このブログ、AWSのLightSailというサービス上、Bitnami WordPressイメージを使って動いているのですが、最近ようおちる・・・
ディスクの使用率やCPU使用率も特に問題ないので、リソース観点だとメモリが怪しそうだと思ったのですが(一番メモリスペックも低くしていたので・・)、なぜかLightSailのコンソールからメモリ使用率が監視できない!CPU使用率はみれるのになんでや・・・
しらべてみると、方法はあるもののちょっとひと手間かける必要がありそうだったのですが、今後のトラブルシューティングにも役立つかと思ったので、やってみることにしました。
それではまいります。
Contents
LightSailコンソールからはメモリ使用率は監視できない!
・・・なんでやねん・・・!
メモリ使用率を監視できるようにする
一応公式ブログがありましたが、全部英語や・・・と一度は心が折れましたが今日はやってのけようと思います。
Monitoring memory usage in Amazon Lightsail instance
https://aws.amazon.com/jp/blogs/compute/monitoring-memory-usage-lightsail-instance/
目指す構成
ブログの絵を拝借してきましたが、こんな感じでメトリクスをAmazon CloudWatchに転送する必要があるようです。
I AMユーザを作成
まずはじめに、「CloudWatchAgentServicePolicy」を持つ新規ユーザを作成します。
作成後に取得できるアクセスキーIDとシークレットアクセスキーは、後程使うので控えておいてください。
LightSailインスタンスにCloud Watchエージェントをインストール
次に、LightSailのインスタンスにCloud Watchエージェントをインストールします。
今回、私のインスタンスはUbuntuだったので、yum installは使えず、以下の手順に従ってインストールしていきます。
## ダウンロード
wget https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb
## インストール
sudo dpkg -i -E ./amazon-cloudwatch-agent.deb
Cloud Watch AgentにAWSリソースへのアクセスを許可する
続けて、LightSailインスタンス上で、プロファイルを作成します。
このとき、先ほど控えておいた新規ユーザのアクセスキーIDとシークレットアクセスキーを入力します。その他情報は空欄でOKです。
sudo aws configure --profile AmazonCloudWatchAgent
メモリ使用率取得設定の構成
続けて、以下パスのconfig.jsonにて、Cloud Watch Agentに収集させるメトリクスを定義します。
sudo vim /opt/aws/amazon-cloudwatch-agent/bin/config.json
{
"agent": {
"metrics_collection_interval": 60,
"run_as_user": "root"
},
"metrics": {
"append_dimensions": {
"ImageID": "${aws:ImageId}",
"InstanceId":"${aws:InstanceId}",
"InstanceType":"${aws:InstanceType}"
},
"metrics_collected": {
"mem": {
"measurement": [
"mem_used_percent"
],
"metrics_collection_interval": 60
}
}
}
}
Cloud Watch Agentの構成
もうあと少しです。以下のパスのファイルにて、先ほど作成したプロファイルをCloud Watch Agentに割り当てるよう構成します。
sudo vim /opt/aws/amazon-cloudwatch-agent/etc/common-config.toml
[credentials]
shared_credential_profile = "AmazonCloudWatchAgent"
Cloud Watch Agentの起動
ここでようやくCloud Watch Agentの起動です!LightSail上で以下コマンドを実行します。
## 起動
sudo amazon-cloudwatch-agent-ctl -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -a fetch-config -s
## 起動確認
sudo amazon-cloudwatch-agent-ctl -a status
Cloud Watchでメトリクスを確認する
最後に、Cloud Watchで収集されたメトリクスを確認してみます。
Cloud Watch > メトリクスでCWAgentを選択して、インスタンスにチェックをいれると・・おお!Agentが収集したメモリ使用率が確認できるようになりました・・!
加えてアラートなどを設定してもよいですね。
以上、AWS LightSailのメモリ使用率をCloud Watchで可視化する方法のメモでした。公式ドキュメントが英語なのがやっかいでしたが、実際やってみると意外に簡単にできました・・!
ご参考になりましたら幸いです!
おしまい
コメントを残す