pm2 の ログ が 心配 ( logrotate を使う )
nodejs を pm2 でサービス・デーモン化した際に、 ログの肥大化が心配。
そんな時は、pm2-logrotate が手っ取り早い と思った。
自分なりに簡易的な検証はできたので、しばらく使って行くべく、ここに示す。
< 前提条件 > 検証してみていい感じだった環境
• nodejs v8.12.0
• pm2 3.2.1
< ひとこと結論 >
・ pm2 ログの肥大化が怖いなら、この2つを設定すべし。
pm2-logrotate の 最大ログサイズ と、retain 数( ローテーションさせるログファイル数 ) である。
< 導入 > pm2-logrotate ツールをインストール
○ 一応 pm2 の 全てのデーモン・ サービス を停止 しておく。
# pm2 stop all
○ インストール
# pm2 install pm2-logrotate
○ 起動する。例 root ユーザーで起動する場合。
# pm2 logrotate -u root
○ 1つのログの最大サイズを決める。
例: 10KB
# pm2 set pm2-logrotate:max_size 10K
○ logの容量が 気になる人は、retain の設定もする。
# pm2 set pm2-logrotate:retain 7
こうすると 10K のlog 7つ でグルグル回すようになる。
総容量は、10K x 7 となる。
ローテートすると 古いログは消される。
( / 起動ユーザー /.pm2/logs/pm2-logrotate-out.log )
-> retain の数と 最大ログサイズ(単体)を 正確に指定できていれば、
容量オーバーとなる心配がない。
目的のサービスを起動する。
(例)
# pm2 start node-red
そうすると、 ここに設定ファイルができて、
/etc/logrotate.d/pm2-(ユーザー名)
ここで ログがローテーション管理されている ファイル パスも記載されている。
/ 起動ユーザーのホームディレクトリ /.pm2/logs/*.log
補足 :
・" 起動ユーザー " とは、pm2 を 起動させたユーザー
修正 : 2018/10/8
・前提条件の一部修正