温馨提示×

nodejs日志debian咋分析

小樊
36
2026-10-21 18:41:21
栏目: 编程语言

在 Debian 上分析 Node.js 日志,一般可以按下面几个层次来做:先看“日志在哪”,再看“怎么看”,最后讲“怎么分析/排查问题”。


一、Node.js 日志一般在哪?

1. 应用自己打印的日志

取决于你的代码或日志库:

  • console.log / console.error
  • 使用日志库(常见):
    • winston
    • pino
    • bunyan
    • morgan(HTTP 请求日志)

常见路径(约定俗成):

/var/log/yourapp/
/home/user/app/logs/

2. 使用 systemd 管理的 Node.js 服务(最常见)

如果你用 systemd 启动 Node.js(推荐):

journalctl -u yourapp.service

实时查看:

journalctl -u yourapp.service -f

只看错误:

journalctl -u yourapp.service -p err

3. PM2 管理的 Node.js

如果是 PM2:

pm2 logs
pm2 logs appname

日志文件通常在:

~/.pm2/logs/

4. Nginx / 反向代理日志(如有)

/var/log/nginx/access.log
/var/log/nginx/error.log

二、基础分析命令(Debian 必备)

查看最新日志

tail -n 100 /var/log/yourapp/app.log

实时跟踪:

tail -f /var/log/yourapp/app.log

查找错误

grep -i error /var/log/yourapp/app.log

只看最近 500 行里的错误:

tail -n 500 app.log | grep -i error

按时间过滤(systemd)

journalctl -u yourapp --since "2026-01-21 10:00" --until "2026-01-21 11:00"

三、常见 Node.js 问题怎么从日志看?

1. 进程崩溃

日志中常见:

Error: listen EADDRINUSE
TypeError: Cannot read property
UnhandledPromiseRejectionWarning

重点看:

  • stack trace
  • 出错时间点
  • 是否和部署/重启有关

2. 内存泄漏 / OOM

systemd 日志可能看到:

Killed
Out Of Memory

查看内存:

free -h
dmesg | grep -i oom

3. 接口慢 / 超时

结合:

  • Nginx access.log
  • Node 日志中的请求耗时

示例:

awk '$9 >= 500' /var/log/nginx/access.log

四、推荐的分析方式(生产环境)

1. 结构化日志(强烈推荐)

用 pino 或 winston 输出 JSON:

{"level":"error","time":...,"msg":"db timeout"}

然后用:

jq '.level=="error"' app.log

2. 集中日志(进阶)

  • ELK(Elasticsearch + Kibana)
  • Loki + Grafana
  • Datadog / Sentry

五、快速排查 checklist

# 1. 服务状态
systemctl status yourapp

# 2. 实时日志
journalctl -u yourapp -f

# 3. 错误关键字
journalctl -u yourapp | grep -i error

# 4. 系统资源
top / htop / free -h

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

  • 你是 systemd / PM2 / 裸跑 node
  • 日志是 文本还是 JSON
  • 现在遇到的 具体报错

我可以直接帮你分析日志内容。

0 踩