Debian 上监控 JavaScript 日志的实用方案
一 场景与总体架构
- 前端 JS(浏览器)侧重运行期错误与用户行为,建议接入Sentry等前端异常监控,并在控制台与开发者工具观察错误堆栈与网络请求。
- 后端 Node.js(服务端)侧重日志采集、检索与告警,建议用Winston/Bunyan/Morgan输出结构化日志,配合systemd/journalctl或写入文件,再由ELK(Elasticsearch/Logstash/Kibana)/Graylog集中分析与可视化。
二 快速上手 本地与实时查看
- 系统与服务日志
- 实时查看系统日志:journalctl -f
- 查看某服务日志:journalctl -u your-js-app -f
- 查看最近时间范围:journalctl --since “1 hour ago”
- 应用日志文件
- 实时跟踪文件:tail -f /var/log/your-app/*.log
- 结合过滤:tail -f app.log | grep “error”
- 前端实时调试
- 浏览器按 F12 打开开发者工具,在Console查看错误与日志。
三 Node.js 服务端监控落地
- 结构化日志输出
- 使用Winston/Bunyan/Morgan输出到控制台与文件,便于后续检索与告警(如按级别分流:info/warn/error)。
- systemd 托管与集中
- 创建服务单元(示例):
[Unit]
Description=My Node.js App
After=network.target
[Service]
ExecStart=/usr/bin/node /opt/myapp/app.js
Restart=always
User=www-data
Environment=NODE_ENV=production
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=my-js-app
[Install]
WantedBy=multi-user.target
- 启用与查看:
sudo systemctl daemon-reload
sudo systemctl enable --now my-js-app
sudo journalctl -u my-js-app -f
- 集中式日志平台
- ELK:Filebeat/Logstash 采集日志到 Elasticsearch,在 Kibana 建立索引模式与可视化看板(如按时间字段创建索引模式 nodejs-logs-*)。
- Graylog:集中聚合、检索与告警,适合统一治理多服务日志。
四 前端 JS 异常监控
- 代码埋点与错误捕获
- 全局异常:window.onerror、unhandledrejection 捕获同步/异步错误。
- 资源加载错误:监听 error 事件(对
、