发布于2026-07-04 阅读(0)
扫一扫,手机访问
监控 Debian 上 Node.js 应用的运行状态,说白了就是得盯住日志。日志是应用的“黑匣子”,一旦出问题,翻翻日志往往就能找到线索。下面这套流程,是我在实践中反复验证过的,从基础配置到高级监控,一步步说清楚。

先把日志打出来,这是所有监控的地基。Node.js 生态里最常用的日志库是 winston、morgan 和 pino。拿 winston 举个例子,配置起来很直观:
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
if (process.env.NODE_ENV !== 'production') {
logger.add(new winston.transports.Console({
format: winston.format.simple()
}));
}
这样配置后,错误日志单独存放,普通日志合并记录。开发环境下还能直接打印到控制台,调试起来很方便。
pm2 进行进程管理说到 Node.js 进程管理,pm2 几乎是标配。它能自动重启、管理日志,省去不少手工操作。安装命令很简单:
sudo npm install pm2 -g
启动应用时,给它起个名字方便后续管理:
pm2 start app.js --name my-app
pm2 自带的日志查看功能很顺手,几个常用命令就能搞定日常监控:
pm2 logspm2 logs my-apppm2 logs my-app --lines 100这三个命令基本覆盖了大多数场景,比手动翻日志文件快得多。
tail 命令实时监控日志文件如果你更习惯 Linux 原生的方式,tail -f 依然是利器。直接指定日志文件路径即可:
tail -f /path/to/your/logs/combined.log
这样日志一有新行就会自动刷新到终端,适合做实时观察。
日志文件如果不加控制,几天就能撑爆磁盘。好在 pm2 内置了日志轮转功能,启动时加上 --log-date-format 参数就能按时间切割文件:
pm2 start app.js --name my-app --log-date-format "YYYY-MM-DD HH:mm Z"
这样每天、每小时甚至每分钟都会生成独立文件,再也不用担心单个日志文件过于庞大。
如果团队需要对多台服务器做统一监控,那就得上 Prometheus 和 Grafana 这套组合了。它们能收集指标、可视化展示,甚至设置告警。
在 Debian 上安装很方便:
sudo apt-get update
sudo apt-get install prometheus grafana
编辑 Prometheus 的配置文件 /etc/prometheus/prometheus.yml,添加你的 Node.js 应用作为抓取目标:
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9090']
启动服务:
sudo systemctl start prometheus
sudo systemctl start grafana-server
进入 Grafana 界面,添加 Prometheus 为数据源,然后创建仪表盘。你可以把 Node.js 的请求量、错误率、响应时间等指标画成图表,一目了然。
从简单的日志文件到企业级的监控面板,这套流程能覆盖从小白到运维大神的全部需求。核心思路只有一个:让日志“说话”,并且让你第一时间听见。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8