どーも、yutaです。
最近お仕事ご一緒させて頂いてるお客様から「急にredashが使えなくなったから見てくれない?」と言われました。
あーそういえばお客さんredash使ってるんでしたね。どれどれとEC2見た時に解消に2時間半を費やしてしまったので、今後のメモ。
作業ログが無いので状況とコマンドだけ載せる。
原因
EBSのボリュームに空き容量が無くなったため、redashが乗るdockerやらなんやらが動けなくなった。
インスタンスのOSがubuntuなんだけどsshログインするとすぐに分かるので見逃さないようにする。
yuta$ ssh -i "hoge.pem" ubuntu@hogehoge-compute.amazonaws.com
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 5.4.0-1051-aws x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Tue Jul 20 12:10:34 UTC 2021
System load: 0.1 Processes: 106
Usage of /: 99.8% of 7.69GB Users logged in: 0
Memory usage: 5% IP address for eth0: 10.0.2.96
Swap usage: 0%
=> / is using 99.8% of 7.69GB
* Canonical Livepatch is available for installation.
- Reduce system reboots and improve kernel security. Activate at:
https://ubuntu.com/livepatch
95 packages can be updated.
1 update is a security update.
ubuntu@ip-hoge:~$
今回はボリュームが8GBしかなかったです(泣)
でも最初dockerが乗ってるのも知らなくて、何が一番使ってるんだ〜?とかコマンドで調べてた。
$ du -msh /* | sort -nr
んで、dockerに行き着いて、ん?dockerで、redashが分析結果の保持にpostgresql使ってて、、、ディスクフルで止まった???
と答えに辿り着いた感じです。
解消方法
解消方法はEBSのボリュームをサクッと上げました。
とはいえ、案外手こずったので記録。
まずは容量の大きいファイルの削除(自分はjournal少し消した)
ちなみにもうね、恐らくここまで来るとEBSでボリューム増加しても、その途中のコマンドでコケるんですよ。あまりにも使いすぎてて。なので先にでかいファイル消しときます。
自分はjournalのファイルサイズが400MBくらいでデカかったので消しました。
まぁここは適時判断してください。
$ sudo journalctl --vacuum-size=50M
※これで50MBにできる
参考:Linux環境設定/ジャーナルファイルを削除したい場合・journalctl
EBSボリューム割当
ここまで来てEBSのボリューム割当。
自分は下記を参考にしました。
Ubuntuの再起動
多分dockerの起動、docker-composeの実行とかでいけるんでしょうが、めんどかったのでOS再起動したらdocker起動してたので良かったです。
$ sudo reboot
参考:Ubuntu-Docker環境のRe:dashが動かなくなったその後に
最後に
まぁ、ディスクフルとかなかなか気づかないよね。
これの恒久対策はredashのDBをRDSとかに移行なんですかね?
みんなこの辺りどうしてますかね?