Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9350

サーバーのストレージがマッハだと思ったらlogだった件

$
0
0
はじめに linuxサーバーでnodeで作ったsiteを公開していたら、pm2のlogが溜まっててストレージを食いつぶしていたのでこれをなんとかしたくなりました。 サーバースペック OS: Ubuntu18.04 あとの情報は今回の記事には関係なさそうなので割愛 サーバーのストレージがやばい! ある日、サーバーを監視していると、どうやらファイルの変更などができなくなっていました。 ファイルを変更しようとしたりすると、以下のようなメッセージが。 Can not change file: No space left on device というわけで、対処していきます。 状態の確認 とりあえず、状態を確認します。 df -aTh あたりで実行します。 原因ファイルの特定 ストレージがやばいことは分かったので、原因ファイルを探します。duコマンドをいじってみます。 du -sh * | sort -nr とか du -d1 -h <ディレクトリ> あたりを確認しました。 user: $ du -d1 -h ~/ XM /home/user/hoge XK /home/user/fuga : : : X0G /home/user/.pm2 XXG /home/user user: $ du -d1 -h ~/.pm2 X0G /home/user/logs (略) ろぐ。。。??? もう少し詳しく確認したところ、あるnodeアプリケーションの起動中のエラーログが溜まりに溜まって、何十GBにも膨れ上がっていました。 原因の撲滅 とりあえず当該ファイルを削除します。 あと、この際にdbとかが停止していることがあるので、その場合は再起動しておきましょう。 再発防止 エラーが出ないようなコーディングをすることは当然として…… pm2のログが必要以上に溜まらないようにしましょう。 そこで登場するのがpm2-logrotateです。こいつを使って、一定以上の容量を超えたログファイルを削除するようにします。 pm2-logrotateの導入 pm2-logrotateって https://www.npmjs.com/package/pm2-logrotate とりあえず全部止めておこう pm2 stop all インストールします pm2 install pm2-logrotate 起動 rootじゃないとだめならsudoしましょう。 sudo pm2 logrotate -u user 確認 ここで起動できているはずなので確認します。 pm2 report なんか動いていたら成功です。 設定 とりあえず以下のコマンドで確認できるはずです。 pm2 get pm2-logrotate 最大ファイルサイズ pm2 set pm2-logrotate:max_size 1G 単位は何も書かなければBとなり、K/M/Gまで設定できます。 retain数 pm2 set pm2-logrotate:retain 50 デフォだと20になっています。ここで指定した数だけログファイルが生成されると思っておけばよいでしょう。 この数を超えると更新が古いものから順に消えていきます。 allとしておけばアプリケーションの分だけ残るはずです。 その他の設定 ┌────────────────┬─────────────────────┐ │ key │ value │ ├────────────────┼─────────────────────┤ │ max_size │ 10M │ │ retain │ all │ │ compress │ false │ │ dateFormat │ YYYY-MM-DD_HH-mm-ss │ │ workerInterval │ 30 │ │ rotateInterval │ 0 0 * * * │ │ rotateModule │ true │ └────────────────┴─────────────────────┘ この左の部分が設定内容になります。 上のような感じで設定できます。 詳しくは公式ドキュメントを読みましょう(英語ですが)。 pm2の再起動 最初に止めたものはこの段階で再起動しましょう。 なんか消えていれば、以下を実行すれば何とかなるかもしれません。 たいてい何とかなります。 pm2 resurrect まとめ logファイルだと思って油断していると、思わぬほど容量を食うことがあります。 それを防ぐためには、logrotateが有効です。

Viewing all articles
Browse latest Browse all 9350

Trending Articles