1. 定位JS日志位置
首先需明確Ubuntu系統中JS日志的存儲路徑,常見位置包括:
/var/log/(如Nginx、Apache等服務的JS相關日志可能存放在子目錄中);logs/文件夾;journalctl命令查看systemd管理的JS應用日志(如Node.js服務)。2. 使用journalctl提取JS日志性能數據
journalctl是Ubuntu下管理systemd日志的核心工具,可通過以下命令過濾JS應用日志:
your-js-service),使用journalctl -u your-js-service查看其所有日志;--since和--until參數指定時間段,如journalctl --since "2025-10-01" --until "2025-10-17"獲取近半個月的日志;-p參數篩選錯誤級別日志(如journalctl -p err),或通過grep查找關鍵詞(如journalctl | grep "response time" | grep "slow"),快速定位性能異常條目。3. 利用日志分析工具提取性能指標
通過文本處理工具從日志中提取關鍵性能指標(如響應時間、錯誤率、資源消耗):
grep "response time" /var/log/js-app.log提取所有包含響應時間的日志行;awk '{print $6}' /var/log/js-app.log | grep -Eo '[0-9]+' | sort | uniq -c(假設第6列為響應時間),統計不同響應時間的出現次數;sed '/DEBUG/d' /var/log/js-app.log刪除調試日志,減少干擾。4. 可視化日志數據以監控性能趨勢
將日志數據導入可視化工具,生成儀表盤直觀展示性能變化:
5. 配置性能監控警報
設置自動警報機制,及時通知性能異常:
prom-client庫在JS應用中暴露性能指標(如/metrics端點),Prometheus定時抓取數據,Grafana設置警報規則(如響應時間超過500ms時觸發郵件通知);6. 結合系統工具監控底層資源
JS應用性能受底層系統資源影響,需結合Ubuntu系統工具監控:
top -p $(pgrep -f "node app.js"));vmstat 1每秒刷新一次內存使用情況),判斷是否因資源不足導致性能瓶頸;pm2 monit命令查看實時CPU、內存、響應時間等指標。7. 優化JS日志記錄以支持性能監控
確保日志記錄的結構化和完整性,便于后續分析:
winston(支持JSON格式),記錄關鍵性能指標(如請求開始/結束時間、數據庫查詢時間),示例代碼:const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'performance.log' }),
new winston.transports.Console()
]
});
logger.info('Request started', { requestId: '123', timestamp: Date.now() });
// 應用邏輯...
logger.info('Request completed', { requestId: '123', duration: 150 }); // 記錄響應時間
info或warn級別,避免過多debug日志影響性能;logrotate配置自動壓縮舊日志(如/etc/logrotate.d/js-app),防止日志文件過大占用磁盤空間。