如果你是一名前端开发人员或者运维工程师,在开发或者运维 Web 应用程序的时候,日志是非常重要的一部分。PM2 是一个非常流行的 Node.js 进程管理器,提供了丰富的日志管理及分析技巧,这让我们更好地了解应用程序运行时的状况,有助于定位问题和优化性能。
PM2 简介
PM2 是一个具有内置负载均衡器和进程管理的 Node.js 应用程序运行时。它可以管理应用程序的生命周期,包括启动、停止、重新启动、扩展和缩小。它还可以监控应用程序并生成日志。
PM2 有许多优点,比如:
- 无需编写系统服务或启动脚本,随时启动、停止都可以。
- 自动加载环境变量。
- 管理多个 Node.js 应用程序。
- 多进程负载均衡。
PM2 日志管理
要了解 PM2 日志管理,我们需要先了解 PM2 的日志输出方式。当我们使用 pm2 start
启动应用程序时,PM2 会将标准输出和标准错误输出的内容定向到一个文件中。默认情况下,该文件位于 $HOME/.pm2/logs
目录下。
PM2 的日志管理功能将日志分为不同的类型:
out.log
:标准输出。error.log
:标准错误输出。- 自定义日志文件。
你可以使用 PM2 的 pm2 logs
命令来查看所有的日志类型,也可以使用 pm2 logs --type out
或 pm2 logs --type error
命令来查看特定类型的日志。
要查看应用程序的最新日志,您可以使用 pm2 logs --n 100
命令来获取最近 100 条日志,或者只查看标准输出或错误输出中的最新日志,可以使用以下命令:
pm2 logs --lines 100 --out
:查看标准输出的最新 100 条日志。pm2 logs --lines 100 --error
:查看标准错误输出的最新 100 条日志。
PM2 日志分析
PM2 提供了一些工具来帮助分析和管理日志。
PM2 Logrotate
日志文件是不断增长的,如果不限制日志文件大小或者数量,它们会占用大量的磁盘空间。为了解决这个问题,PM2 提供了一个 logrotate 模块,可以自动归档和删除旧的日志文件。
您可以使用以下命令启动 logrotate 模块:
pm2 install pm2-logrotate
该命令会自动将 PM2 的日志文件归档到 $HOME/.pm2/logs
目录下,并删除超过 retain
配置项数量的日志文件。
PM2 Monit
PM2 Monit 是 PM2 的监控器,在监控面板中可以查看实时的监控数据,包括 CPU、内存、网络等情况。在监控面板中,您还可以查看每个进程的日志,并随时重启、停止进程。
您可以使用以下命令启动 PM2 Monit:
pm2 monit
该命令会自动打开一个监控面板,您可以在其中查看各种信息和操作进程。
PM2 日志分析示例
下面是一个简单的 Node.js 应用程序,它的唯一作用就是输出 Hello World!
,并将标准输出和标准错误输出分别保存为 out.log
和 error.log
。
-- -------------------- ---- ------- ----- ---- - ---------------- ----- -- - -------------- ----- ---- - ---------------- ----- ------ - ----------------------- -------- -------------------- - ---------- ---- --- ----- --------- - ----------------------------------------- ----------- - ------ --- --- ----- ----------- - ----------------------------------------- ------------- - ------ --- --- ----- ------ - --------------------------- --------- -- - -- ------------ --- ---- - -------------------- ------------ ----------------------- - --------------- ------------ --- --------------------- --------- --------------- - ---- - ------------------- - ---- --------------- - --- ------------------ ----- -- - --------------------- -------- ------- --- ------------------- ----- -- - -- ------- - --------------------- -------- ------- - ---- - ------------------- ----------- - --- -------------------- -- -- - -------------------- ---------- ---------------- ------------------ ---------------- --- --------------------- -- -- - -------------------- -------------- ---------------- ------------------ ---------------- --- ------------------------------- ---------------------------------展开代码
我们可以使用 pm2 start app.js
命令启动应用程序并查看日志。默认情况下,应用程序的标准输出和标准错误输出分别保存在 $HOME/.pm2/logs
目录下的 out.log
和 error.log
文件中。
接下来,让我们使用 Monit 工具来查看监控信息和日志。使用 pm2 monit
命令打开监控面板,我们可以看到应用程序的 CPU 占用率、内存占用率、网络等信息。
点击应用程序名称,即可查看该应用程序的日志。
在 Monit 日志面板中,我们可以看到应用程序的标准输出和标准错误输出。此外,我们还可以使用 pm2 logs
命令查看所有的日志类型。
下面是一个示例,使用 pm2 log --type out
命令来查看标准输出日志。
使用 pm2 log --type error
命令查看标准错误输出日志。
除了 Monit 和 logs 命令之外,PM2 还提供了其他一些工具来帮助分析和管理 Node.js 应用程序日志,比如PM2 Enterprise等可咨询官网。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67bd400ea231b2b7edf76ef6