温馨提示×

ubuntu nodejs日志咋分析

小樊
47
2026-09-12 10:27:34
栏目: 编程语言

在 Ubuntu 上分析 Node.js 日志,通常可以按下面几个层次来做:日志在哪 → 怎么看 → 怎么分析 → 用什么工具


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

1. 应用自己打的日志

取决于你代码或框架:

  • console.log / console.error
  • 使用 winstonplogbunyan 等日志库
  • 常见路径:
/var/log/myapp/
/home/user/myapp/logs/

2. 系统服务方式运行(推荐)

如果你用 systemd 启动 Node.js:

journalctl -u your-node-service

实时看:

journalctl -u your-node-service -f

3. Nginx / PM2 等

  • Nginx:
/var/log/nginx/access.log
/var/log/nginx/error.log
  • PM2:
pm2 logs
pm2 logs appname

二、基础分析命令(必会)

1. 实时查看日志

tail -f app.log

2. 查找错误

grep -i error app.log
grep -i "uncaught" app.log

3. 统计错误数量

grep -c "Error" app.log

4. 看某个时间段的日志

sed -n '/2026-01-21 10:00/,/2026-01-21 11:00/p' app.log

5. 按 IP / 请求分析(Web 服务)

awk '{print $1}' access.log | sort | uniq -c | sort -nr

三、Node.js 特有问题分析

1. 看崩溃 / 异常

重点看:

  • Error
  • TypeError
  • ENOENT
  • ECONNREFUSED
  • UnhandledPromiseRejection

示例:

grep -A 10 "UnhandledPromiseRejection" app.log

2. 内存 / CPU 问题

  • 日志里常出现:
    • heap out of memory
  • 配合:
top
htop
df -h
free -m

四、推荐的分析方式(进阶)

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

winston + JSON:

{"level":"error","message":"db failed","stack":"..."}

分析:

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

2. 日志聚合工具

  • ELK(Elasticsearch + Logstash + Kibana)
  • Grafana + Loki
  • Sentry(专门看 Node.js 错误)

五、简单排查思路(实战)

  1. 先看 systemd / pm2 日志
  2. grep error / exception
  3. 确认是代码问题还是环境问题
  4. 结合 access.log 看请求频率
  5. 必要时加日志级别(debug)

如果你愿意,可以把一段 Node.js 日志贴出来,我可以直接帮你分析具体问题是啥。

0