pm2-logrotate 使い方
- node.jsのデーモンツールpm2を使っている前提。
- 軽く使ってみた程度なので使い方を網羅してるとかではない。
pm2-logrotateとは
コンソールログ(out_file、error_file) → の出力をローテートする機能(と認識している)
pm2-logrotate 導入
pm2 install pm2-logrotate
-- v2.4.0(2017/12/26現在)がインストールされた
- pm2 がインストールされていると(稼働していると?)自動でpm2-logrotate もインストールと同時に起動する
- max_size(ファイルのサイズ)、Interval(期間)が一致するとファイルが自動で分割されます。
サイズが超過してない人は明日(Interval)まで待ちましょう
(起動イメージ)
== pm2-logrotate ==
┌────────────────┬─────────────────────┐
│ key │ value │
├────────────────┼─────────────────────┤
│ max_size │ 10M │
│ retain │ all │
│ compress │ false │
│ dateFormat │ YYYY-MM-DD_HH-mm-ss │
│ workerInterval │ 30 │
│ rotateInterval │ 0 0 * * * │
│ rotateModule │ true │
└────────────────┴─────────────────────┘
┌──────────┬────┬──────┬──────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
├──────────┼────┼──────┼──────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
│ myapp │ 0 │ fork │ 4478 │ online │ 146 │ 17h │ 0% │ 87.7 MB │ hoge │ disabled │
└──────────┴────┴──────┴──────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘
┌───────────────┬─────────┬────────────┬────────┬─────────┬─────┬────────────┬──────┐
│ Module │ version │ target PID │ status │ restart │ cpu │ memory │ user │
├───────────────┼─────────┼────────────┼────────┼─────────┼─────┼────────────┼──────┤
│ pm2-logrotate │ N/A │ N/A │ online │ 0 │ 0% │ 4.133 MB │ hoge │
└───────────────┴─────────┴────────────┴────────┴─────────┴─────┴────────────┴──────┘
設定の確認
pm2 get pm2-logrotate
設定の仕方
- ローテートログファイル名
時間までいらなかったので、ファイル名は日付単位にした
→ サイズ超過でローテートされて同じファイルに上書きされてたのでやはり元の形に戻す(2018/01/30)
(ソースを見た限り「サイズを見ない」みたいな設定は無さげだったのでやるならソースに手を入れる感じで)
もしくは、max_size が ~G(GB)まで設定できるみたいなので、それを膨大にするのも手
pm2 set pm2-logrotate:dateFormat YYYY-MM-DD
- ローテートする間隔
デフォルトが「0 0 * * 」とあるのに、公式には「」が6つで解説されてて、一瞬ん???ってなった。
よくよく読めば「(*) 0 0 * * *」一番最初の項が省略可となっていた(デフォルト設定だと1日置きにローテートされる)
- ローテートするファイルサイズしきい値(そのサイズを超えたらローテート)
pm2 set pm2-logrotate:max_size 100G
無(B),K(KB),M(MB),G(GB) が設定可