Ubuntu Node.js 访问日志解读指南
一 常见日志格式与字段含义
GET / 200 3.029 ms - 12
::1 - - [24/Jan/2025:10:30:00 +0000] "GET / HTTP/1.1" 200 12
::1 - - [24/Jan/2025:10:30:00 +0000] "GET / HTTP/1.1" 200 12 "http://localhost:3000/" "Mozilla/5.0 ..."::1 - GET / HTTP/1.1 200 12 - 3.029 msGET / 200 12 - 3.029 ms二 在 Ubuntu 上查看与实时跟踪日志
tail -n 100 /path/to/access.logtail -f /path/to/access.logless /path/to/access.log;配合 grep 'pattern' /path/to/access.log 过滤关键字(如 500、特定 path)。journalctl -u your-node-service.service -f 实时查看服务日志。三 快速分析命令示例
awk '{print $9}' access.log | sort | uniq -c | sort -nrawk '{print $7}' access.log | sort | uniq -c | sort -nr | headawk '$4 ~ /\[01\/Apr\/2025:10:/ {count++} END {print count}' access.logawk -F'"' '{print $6}' access.log | sort | uniq -c | sort -nr | headawk '{sum+=$8; n++} END {print "avg=" sum/n}' access.logawk '$9 >= 400 {err++; tot++} $9 < 400 && $9 != "-" {tot++} END {printf "error_rate=%.2f%%\n", err/tot*100}' access.logjq -r '. | select(.status >= 400) | .url' access.log | sort | uniq -c | sort -nr。四 将日志接入可视化与趋势分析
file { path => "/path/to/nodejs/logs/*.log" start_position => "beginning" }grok { match => { "message" => "%{COMBINEDAPACHELOG}" } }elasticsearch { hosts => ["localhost:9200"] index => "nodejs-access-%{+YYYY.MM.dd}" }五 排错与最佳实践