您的位置:首页 >如何通过Ubuntu Node.js日志监控系统性能
发布于2026-05-01 阅读(0)
扫一扫,手机访问

要搭建一个有效的监控体系,得先理清从哪采集、怎么传输、如何呈现。一个清晰的架构能让后续工作事半功倍。
process.memoryUsage()、process.cpuUsage() 甚至事件循环的延迟情况。top/htop、vmstat、iostat、free、df 等命令的输出,将系统指标与应用日志关联分析,才能准确定位资源瓶颈到底出在哪一层。好的日志是分析的基础。如果日志本身杂乱无章,再强大的工具也无力回天。
memoryUsage() 和 cpuUsage() 的数据。对于关键代码段,用 console.time / console.timeEnd 或者更高精度的计时器来测量耗时。理论说完了,来看看具体怎么落地。这里提供两种主流方案,你可以根据团队和业务规模来选择。
PM2 快速落地
启动并开启日志轮转:
npm i -g pm2pm2 start app.js -i max --name apipm2 logs api(实时查看)、pm2 logrotate(按日轮转)这套方案特别适合单机或少量实例的场景,能让你以最小的成本“先跑起来”,快速看到效果。
ELK 集中化方案(示例)
安装(Ubuntu 可用 apt):sudo apt-get update && sudo apt-get install elasticsearch logstash kibana
Logstash 配置 /etc/logstash/conf.d/nodejs.conf(按你的日志路径与格式调整):
input {
file {
path => “/var/log/nodejs/*.log”
start_position => “beginning”
}
}
filter {
grok {
match => { “message” => “%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:loglevel} %{GREEDYDATA:message}” }
}
}
output {
elasticsearch {
hosts => [“localhost:9200”]
index => “nodejs-logs-%{+YYYY.MM.dd}”
}
}
启动:sudo systemctl start logstash && sudo systemctl enable logstash
Kibana:访问 http://服务器IP:5601,创建索引模式(如 nodejs-logs-*),接下来就可以构建 P95/P99 响应时间、吞吐量、错误率等可视化面板,并设置相应的告警规则了。
有了数据和看板,下一步就是从中提取洞察,并让系统在异常时主动通知我们。
日志侧分析(命令行快速洞察)
错误数:grep “ERROR” combined.log | wc -l
响应时间分布(假设字段为 responseTimeMs):
awk -F‘“responseTimeMs”:’ ‘{sum+=$2; n++;} END {print sum/n}’ combined.logsort -t: -k2 -nr combined.log | awk -F‘“responseTimeMs”:’ ‘NR<=int(NR*0.95){sum+=$2} END{print sum/NR}’Top 10 慢请求:awk -F‘“url”:“|”,“responseTimeMs”’ ‘{print $4, $6}’ combined.log | sort -k2 -nr | head -10
内存峰值:awk ‘/Memory Usage/{print $3}’ combined.log | sort -nr | head -10
可视化与告警建议
核心监控指标:P50/P95/P99 响应时间、请求速率(req/s)、错误率(HTTP 5xx / total)、RSS/HeapUsed 内存、CPU 使用率。
阈值示例:P95 响应时间 > 1000ms、5xx 错误率 > 1%、1 分钟内请求速率突降超过 50%、RSS 内存连续 5 分钟上涨超过 20%。
在 Kibana 或 Grafana 中配置好这些阈值告警,并联动邮件、企业微信、钉钉或 Slack 等渠道发送通知,确保团队能第一时间感知问题。
告警响了,问题出了,怎么找到根因?这就需要一些更深入的剖析工具和方法。
node --inspect 启动应用,然后用 Chrome DevTools 进行性能和内存剖析。或者,用 node --prof 生成 V8 剖析文件,再用 --prof-process 分析,找出消耗资源的函数。top/htop、vmstat、iostat、free、df 等系统命令的输出,综合判断瓶颈究竟来自 CPU、内存、磁盘 I/O 还是存储空间。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9