温馨提示×

怎么监控debian nodejs日志

小樊
52
2026-09-07 07:11:31
栏目: 编程语言

在 Debian 上监控 Node.js 日志,常见做法取决于你是怎么运行 Node.js 的(裸跑 / PM2 / systemd / Docker 等)。下面按场景给你一套实用方案。


一、确认日志在哪

1. 应用自己写日志

常见位置:

  • 项目目录:logs/
  • 用户目录:~/nodejs.log
  • systemd:journalctl

先看启动命令或代码:

ps aux | grep node

二、通用实时监控(tail)

最基础也最常用:

tail -f /path/to/nodejs.log

多文件同时看:

tail -f app.log error.log

只看错误:

tail -f app.log | grep ERROR

三、用 systemd(推荐生产)

1. 用 systemd 管理 Node.js

示例 service:

# /etc/systemd/system/nodeapp.service
[Unit]
Description=Node.js App
After=network.target

[Service]
ExecStart=/usr/bin/node /var/www/app/index.js
WorkingDirectory=/var/www/app
User=node
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodeapp

[Install]
WantedBy=multi-user.target

2. 查看日志

journalctl -u nodeapp -f

按时间:

journalctl -u nodeapp --since "10 min ago"

四、用 PM2(最常见)

1. 安装

npm install -g pm2

2. 启动

pm2 start index.js --name myapp

3. 看日志

pm2 logs
pm2 logs myapp

实时 + 错误:

pm2 logs myapp --err

五、日志轮转(防止爆盘)

用 logrotate(Debian 自带)

sudo apt install logrotate

示例:

/var/www/app/logs/*.log {
   daily
    rotate 7
    compress
    missingok
    notifempty
}

六、进阶监控方案

1. 集中式日志

  • ELK(Elasticsearch + Logstash + Kibana)
  • Loki + Grafana
  • Fluent Bit

适合多台服务器。

2. 告警

  • 日志中出现 FATAL / OutOfMemory 时报警
  • 可用 Prometheus + Node Exporter

七、排错小技巧

# 看 Node 是否崩了
dmesg | grep node

# 看端口
ss -lntp | grep node

# CPU / 内存
top -p $(pgrep node)

总结推荐

场景 推荐方式
本地开发 tail -f
生产服务 systemd + journalctl
Node 专用 PM2
多服务 ELK / Loki

如果你愿意,可以告诉我:

  • Debian 版本
  • Node 启动方式(pm2 / systemd / 直接 node)
  • 是否容器

我可以给你定制一套监控配置。

0 踩