温馨提示×

ubuntu如何监控js运行状态

小樊
42
2025-11-15 01:11:17
栏目: 编程语言

Ubuntu 监控 JS 运行状态的实用方案

一 日志与实时查看

  • 使用 Node.js 内置 console 输出运行状态,或采用结构化日志库 winston、pino 写入文件,便于检索与归档。示例:
    • winston:将 errorcombined 分别写入不同文件;pino:结构化 JSON 输出,适合集中式日志系统。
  • 实时查看与检索:
    • 文件日志:tail -f /path/to/app.log
    • 系统日志:若以 systemd 托管,使用 journalctl -u your-service-name -f 实时跟踪
  • 生产建议:统一日志格式(如 JSON)、合理设置日志级别(info/warn/error)、将日志落盘并接入集中式平台(如 ELK/Graylog)以便检索与告警。

二 进程与资源监控

  • 使用 PM2 管理进程并监控:启动应用 pm2 start app.js --name my-app;查看实时资源与状态 pm2 monitor;集中查看日志 pm2 logs my-app。PM2 还支持自动重启、集群模式与内置仪表盘,适合生产环境常驻进程管理。
  • 系统级资源观测:
    • 交互式:top/htop 查看进程 CPU/内存
    • 指标类:vmstat、iostat、free、df 辅助定位 I/O、内存、磁盘 瓶颈;
    • 开发/排障:结合 Node.js 内置性能能力(如 v8-profiler、heapdump)或 node --inspect 进行 CPU/内存 采样与堆快照分析。

三 指标与可视化告警

  • 自建指标与可视化:
    • 使用 prom-client 暴露 HTTP 请求时延、吞吐、错误率 等指标,Prometheus 抓取后由 Grafana 展示与告警;
    • 可用 Uptime Kuma 做服务可达性与可用性监控(支持 HTTP/HTTPS、TCP、Ping 等),并通过 Telegram/Discord/Slack 发送通知,适合快速搭建可视化与告警面板。
  • APM 与错误追踪:
    • 集成 New Relic、Datadog 等 APM,获取 事务追踪、错误堆栈、依赖调用链 与慢查询分析,适合全链路性能与可用性观测。

四 快速落地方案

  • 开发/调试:node --inspect-brk app.js,在 Chrome DevTools 的 chrome://inspect 进行断点与性能分析;配合 console/调试库快速定位问题。
  • 生产最小闭环:
    • PM2 启动并托管进程:pm2 start app.js --name my-app
    • 结构化日志:winston/pino 输出到文件,并按日/大小滚动;
    • 实时观测:journalctl -u my-app -f 或 pm2 logs my-app
    • 可视化与告警:Prometheus + Grafana 展示关键指标;Uptime Kuma 监控 HTTP 可达性与延迟;
    • 深入排障:heapdump 生成堆快照,结合 DevTools Memory 面板分析 内存泄漏

0