PM2 日志管理及分析技巧

阅读时长 6 分钟读完

如果你是一名前端开发人员或者运维工程师,在开发或者运维 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 outpm2 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 的日志文件归档到 $HOME/.pm2/logs 目录下,并删除超过 retain 配置项数量的日志文件。

PM2 Monit

PM2 Monit 是 PM2 的监控器,在监控面板中可以查看实时的监控数据,包括 CPU、内存、网络等情况。在监控面板中,您还可以查看每个进程的日志,并随时重启、停止进程。

您可以使用以下命令启动 PM2 Monit:

该命令会自动打开一个监控面板,您可以在其中查看各种信息和操作进程。

PM2 日志分析示例

下面是一个简单的 Node.js 应用程序,它的唯一作用就是输出 Hello World!,并将标准输出和标准错误输出分别保存为 out.logerror.log

-- -------------------- ---- -------
----- ---- - ----------------
----- -- - --------------
----- ---- - ----------------

----- ------ - ----------------------- --------
-------------------- - ---------- ---- ---

----- --------- - ----------------------------------------- ----------- - ------ --- ---
----- ----------- - ----------------------------------------- ------------- - ------ --- ---

----- ------ - --------------------------- --------- -- -
  -- ------------ --- ---- -
    -------------------- ------------
    ----------------------- - --------------- ------------ ---
    --------------------- ---------
    ---------------
  - ---- -
    ------------------- - ----
    ---------------
  -
---

------------------ ----- -- -
  --------------------- -------- -------
---

------------------- ----- -- -
  -- ------- -
    --------------------- -------- -------
  - ---- -
    ------------------- -----------
  -
---

-------------------- -- -- -
  -------------------- ----------
  ----------------
  ------------------
  ----------------
---

--------------------- -- -- -
  -------------------- --------------
  ----------------
  ------------------
  ----------------
---

-------------------------------
---------------------------------
展开代码

我们可以使用 pm2 start app.js 命令启动应用程序并查看日志。默认情况下,应用程序的标准输出和标准错误输出分别保存在 $HOME/.pm2/logs 目录下的 out.logerror.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

纠错
反馈

纠错反馈