pm2和pm2-logrotate 日志管理 初探
pm2和pm2-logrotate 日志管理 初探
官网:https://pm2.keymetrics.io/
ADVANCED, PRODUCTION PROCESS MANAGER FOR NODE.JS
高级,Node.js生产环境进程守护程序。
0x1 安装
npm install pm2@latest -g
0x2 基本命令
$ pm2 start app.js -i 4 # 后台运行pm2,启动4个app.js # 也可以把'max' 参数传递给 start# 正确的进程数目依赖于Cpu的核心数目
$ pm2 start app.js -i max # 根据有效CPU数目启动最大进程数目
$ pm2 start app.js --name my-api # 命名进程
$ pm2 list # 显示所有进程状态
$ pm2 monit # 监视所有进程
$ pm2 logs # 显示所有进程日志
$ pm2 stop all # 停止所有进程
$ pm2 restart all # 重启所有进程
$ pm2 reload all # 0 秒停机重载进程 (用于 NETWORKED 进程)
$ pm2 stop 0 # 停止指定的进程
$ pm2 restart 0 # 重启指定的进程
$ pm2 startup # 产生 init 脚本 保持进程活着
$ pm2 web # 运行健壮的 computer API endpoint (http://localhost:9615)
$ pm2 delete 0 # 杀死指定的进程
$ pm2 delete all # 杀死全部进程
$ pm2 info app # 参看name为app的信息
日志管理
安装pm2-logrotate
pm2的日志模块默认是每一个服务进程都分配两个默认的日志文件
这两个日志文件存放于
/root/.pm2/logs
中,如果pm2管理5个服务,那么该文件夹下总共有10个日志文件,并且随着时间不断增加,很容易就会产生很多个上g的日志文件,导致了服务器的磁盘空间不足的问题
pm2 install pm2-logrotate
配置
max_size
(Defaults to10M
): When a file size becomes higher than this value it will rotate it (its possible that the worker check the file after it actually pass the limit) . You can specify the unit at then end:10G
,10M
,10K
- 配置项默认是 10MB,并不意味着切割出来的日志文件大小一定就是 10MB,而是检查时发现日志文件大小达到 max_size,则触发日志切割。
retain
(Defaults to30
file logs): This number is the number of rotated logs that are keep at any one time, it means that if you have retain = 7 you will have at most 7 rotated logs and your current one.- 这个数字是在任何一个时间保留已分割的日志的数量,这意味着如果您保留7个,那么您将最多有7个已分割日志和您当前的一个
compress
(Defaults tofalse
): Enable compression via gzip for all rotated logs- 对所有已分割的日志启用 gzip 压缩
dateFormat
(Defaults toYYYY-MM-DD_HH-mm-ss
) : Format of the data used the name the file of log- 文件名格式化的规则
rotateModule
(Defaults totrue
) : Rotate the log of pm2’s module like other apps- 像其他应用程序一样分割 pm2模块的日志
workerInterval
(Defaults to30
in secs) : You can control at which interval the worker is checking the log’s size (minimum is1
)- 您可以控制工作线程检查日志大小的间隔(最小值为
1
)单位为秒(控制模块检查log日志大小的循环时间,默认30s检查一次)
- 您可以控制工作线程检查日志大小的间隔(最小值为
rotateInterval
(Defaults to0 0 * * *
everyday at midnight): This cron is used to a force rotate when executed. We are using node-schedule to schedule cron, so all valid cron for node-schedule is valid cron for this option. Cron style :- 多久备份一次
* * * * * *
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ |
│ │ │ │ │ └ day of week (0 - 7) (0 or 7 is Sun)
│ │ │ │ └───── month (1 - 12)
│ │ │ └────────── day of month (1 - 31)
│ │ └─────────────── hour (0 - 23)
│ └──────────────────── minute (0 - 59)
└───────────────────────── second (0 - 59, OPTIONAL)
TZ
(Defaults to system time): This is the standard tz database timezone used to offset the log file saved. For instance, a value ofEtc/GMT+1
, with an hourly log, will save a file at hour14
GMT with hour13
(GMT+1) in the log name.- 时区(默认为系统时区)
如何设置 ?
安装完模块后,您必须键入: pm2 set pm2-logrotate:<param> <value>
例如:
pm2 set pm2-logrotate:max_size 1K
(1KB)pm2 set pm2-logrotate:compress true
(compress logs when rotated)pm2 set pm2-logrotate:rotateInterval '*/1 * * * *'
(force rotate every minute)
我的设置
$ pm2 set pm2-logrotate:max_size 10M
$ pm2 set pm2-logrotate:retain 3 # 备份最多3份,也就是备份最进3小时的日志(默认30份)
$ pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss # 文件名时间格式
$ pm2 set pm2-logrotate:workerInterval 3600
$ pm2 set pm2-logrotate:rotateInterval 0 0 * * *
$ pm2 set pm2-logrotate:TZ Asia/Shanghai # 中国时区
参考:https://www.jianshu.com/p/54bc346d2406 作者:kelvv
pm2和pm2-logrotate 日志管理 初探相关推荐
- MongoDB 日志管理
MongoDB默认情况下不会自动的切换轮转日志的,这将会导致日志日渐增大,在繁忙的业务下,日志增长量非常大的.如此之大的日志文件,查看某天的日志也不太方便.如是,需要对mongodb 日志文件进行切换 ...
- skynet日志管理
skynet日志配置 在config里面可以配置自己的日志管理logger:日志输出目录daemon 配置 daemon = "./skynet.pid" 可以以后台模式启动 sk ...
- pm2日志管理pm2-logrotate介绍
pm2-logrotate是什么? pm2-logrotate可以理解为是一个pm2的插件,它扩充了pm2本身没有功能:日志管理,所以它的运行需要依靠pm2,想用它必须先安装pm2才可以. 为什么有p ...
- linux日志管理工具logrotate配置
linux日志管理工具logrotate配置 logrotate介绍 logrotate配置讲解 主配置文件解释(/etc/logrotate.conf) logrotete 命令参数 添加配置 以添 ...
- 第 11 章 日志管理 - 089 - 初探 ELK
在开源的日志管理方案中,最出名的莫过于 ELK 了. ELK 是三个软件的合称:Elasticsearch.Logstash.Kibana. Elasticsearch 一个近乎实时查询的全文搜索引擎 ...
- 使用 logrotate 配置 supervisor 进行日志管理按天备份
supervisor 默认的日志备份策略是按大小备份,经常不知道去哪个文件查日志的烦恼.本文通过设置 logrotate 来进行日志安排备份 logrotate 的配置文件默认存放在 /etc/log ...
- Linux Logrotate日志切割管理
Logrotate 是 linux 系统用来分割日志的系统工具.Logrotate 可以设置为每天.每周.每月或当日志文件达到一定的大小时处理日志文件,提供自动压缩.删除.分割日志文件的功能.一般 C ...
- Linux 日志管理(RHEL7)
日志管理 系统和程序的日记本 记录系统,程序运行中发生的各种事件 通过查看日志,了解及排除故障 信息安全控制的依据 内核及系统日志 由系统服务rsyslog统一记录/管理 日志消息采用文本格式 主要记 ...
- Kubernetes-基于EFK进行统一的日志管理
1.统一日志管理的整体方案 通过应用和系统日志可以了解Kubernetes集群内所发生的事情,对于调试问题和监视集群活动来说日志非常有用.对于大部分的应用来说,都会具有某种日志机制.因此,大多数容器引 ...
- linux 学习 14 日志管理
第十四讲 日志管理 14.1 日志管理-简介 1.日志服务 在CentOS 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论 ...
最新文章
- 用js 判断datagrid 中的 checkbox 是否被选中
- android开发获取应用本身耗电量_别找了,Android常用自动化工具全在这儿了!
- linux shell 输出文件 指定行
- python opencv检测人脸
- MIT CSAIL最新研究:将AI应用于流媒体视频,可获得更好的播放体验
- 【数据竞赛】图像赛排行榜拉开100名差距的技巧
- css两栏式布局示例
- 聆听无声的话语:手把手教你用ModelArts实现手语识别
- 数据结构与算法(C#实现)系列---树
- 浏览器后退不刷新页面
- hdu 1207汉诺塔II 递推
- 在eclipse中引入mybatis和spring的约束文件
- 计算机一直显示配置更新失败怎么办,电脑更新新系统的时候出现配置更新失败问题怎么办...
- 运维审计新形势下CIO的管理职责
- mysql数据库常用存储引擎的区别
- 工作八年的程序员,却拿着毕业三年的工资,再不开窍就真晚了...
- RAID5数据应该如何恢复
- 华硕电脑桌面没有计算机图标 怎么弄出来,电脑桌面图标不见了怎么恢复 电脑桌面图标怎么随意设置...
- 在未来几年,有哪些职业可能被人工智能取代?
- Mysql清除表数据的三种方式
热门文章
- mysql 免安装 net_mysql 免安装
- lgv20刷twrp_TWRP 新增对 Realme C2, LG V20等设备的支持
- android图案解锁忘了怎么解,安卓手机解锁图案忘了怎么办?手机解锁密码忘了怎么办?...
- Android调试办法之adb指令解锁手机锁屏
- 等保三级多久测评一次?每年都要测评吗?
- 形式验证——学习笔记
- vue父子组件传值:父传子、子传父
- python参数类型为uint8,将图像数据类型从uint16转换为uint8
- ceph 删除 osd
- 数据可视化 - 什么是数据可视化