aries前置き:Lightsailで動かしてるPleroma鯖が調子悪い今回前置きがちょっと長い。興味がない人は読み飛ばしてくださいな。512MBで動かしていたPleromaですがどうも7/19辺りの設定変更以降調子が悪い。私が特に使っていないタイミングで急にCPU使用率が上がり、そのままCPUクレジットを使い切り倒れているように見える。(Lightsailの中身はt2系のEC2インスタンス)最初は一番安いインスタンスを使っていて、かつ設定ファイルを書き換えるたびにcompileが走るのでそのせいでCPUクレジットを多く消費した為止まっていると思っていたので一つ上のスペックに変更した。fetch_initial_postsを有効にしたことで重くなったんじゃないかと思うけど、でも常時重くではなく日付変わる頃だけとかに発生しているのでなんかそれも違うような気がするんだよなぁ......。いう訳でとりあえずfetch_initial_postsを無効にして2日3日ほど様子を見ることに。これで落ち着いたらまたfetch_initial_posts有効にして、また不定期にサーバが落ちる様になったら犯人は確定。Logsの導入を決意。今回の主題とはずれますがLightsailの制限について。Lightsailは安い代わりにEC2と比べて結構制限があり、例えばCloudWatchで直接メトリクスを見ることができなかったりします。一応Lightsailのコンソール画面からCPU使用率やネットワークIOなど少しであれば見れますが、EC2と同様の量を見ることができません。これが曲者で、特にCPUクレジット、IOクレジットが見られないというのが非常に苦しい。カスタムメトリクスでロードアベレージなど見ることは可能ですが、クレジット2種はEC2特有のものなので見られません。この2つだけでもCloudWatchから見られればいいんですがねー。Logsを使う場合はIAMロールを割り当てる場合が殆どだと思いますが、Lightsailはそうは行きません。LightsailではEC2のように直接IAMロールを割り当てられないため、CloudWatchAgentをそのままの設定で使うとログを送ることができないのです。Lightsailインスタンスをオンプレミスサーバとして見立て、CloudWatchAgentを設定する必要があります。18.04LTSです。作業内容はこんな感じCloudWatchAgentServerPolicyを割り当てたIAMユーザを作成CloudWatchAgentをインストール(https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)credentialファイルの作成/opt/aws/amazon-cloudwatch-agent/etc/common-config.tomlを編集ウィザードを使いconfig.jsonを作成CloudWatchを開き、ログを取れているか確認ユーザ作成は省略して、各種コマンドなんかを書いておきます。./amazon-cloudwatch-agent.debcredentialawscli用のものに追記してます。/opt/aws/amazon-cloudwatch-agent/etc/common-config.tomlLightsailはデフォルトだとCloudWatchがEC2だと認識してしまい、ロールを使って認証しようとしてしまいます。IAMユーザを使うように変更します。/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizardここでメトリクスも取るように設定できますが今回はログのみ。-sCloudWatchから確認cloudwatch-logs-screenshotあとがき今までのワンライナー修行が何だったのかという感じ。ついでにMastodonのログ収集も設定しました。