温馨提示×

debian nodejs日志如何监控

小樊
42
2026-09-28 09:32:53
栏目: 编程语言

在 Debian 上监控 Node.js 日志,通常可以从日志来源、查看方式、实时监控、集中化与告警几个层面来做。下面按常见场景给你一套实用方案。


一、确认 Node.js 日志在哪里

1. 应用自身日志

  • 控制台输出(console.log / console.error)
  • 文件日志(如 logs/app.log)
  • 框架日志(如 PM2、NestJS、Express 中间件)

2. 进程管理日志(常见)

  • PM2
    ~/.pm2/logs/
    
  • systemd
    journalctl -u your-node-service
    

二、实时查看日志(最常用)

1. 查看文件日志

tail -f /path/to/app.log

或

tail -n 100 -f /path/to/app.log

2. PM2 实时日志

pm2 logs
pm2 logs app-name

3. systemd 实时日志

journalctl -u node-app -f

三、关键字监控与过滤

1. 错误监控

tail -f app.log | grep -i error

2. 统计错误频率

grep -c "Error" app.log

3. 多条件过滤

tail -f app.log | grep -E "Error|Exception|Timeout"

四、进程级监控(防止 Node 挂掉)

1. 使用 PM2(强烈推荐)

pm2 start app.js --name node-app
pm2 monit

PM2 会自动:

  • 重启崩溃进程
  • 记录日志
  • 提供 CPU / 内存监控

2. 使用 systemd

[Service]
Restart=always

五、日志集中化(生产环境推荐)

方案 1:rsyslog + 文件

将 Node 日志写入 syslog:

const syslog = require('syslog-client');

方案 2:ELK / Grafana

  • Filebeat 收集日志
  • Elasticsearch 存储
  • Kibana / Grafana 可视化

方案 3:Loki + Promtail(轻量)

适合 Docker / Kubernetes 场景


六、自动告警(重要)

1. 简单脚本告警

tail -f app.log | grep --line-buffered "FATAL" | while read line
do
  curl -X POST https://webhook.example.com/alert
done

2. 使用 fail2ban / logwatch

适合安全类日志


七、推荐实践(总结)

✅ 开发:

  • pm2 logs

✅ 生产:

  • systemd + journald
  • 文件日志 + logrotate
  • Prometheus / Loki 监控

✅ 告警:

  • 错误关键字
  • 进程退出
  • 内存异常

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

  • 你是用 PM2 / systemd / Docker?
  • 是 开发调试 还是 生产监控?
  • 是否已有 Grafana / ELK?

我可以直接给你一套可复制的配置。

0 踩