Node.js在Debian上的常用日志監控工具
PM2是Node.js生態中最流行的進程管理工具,內置強大的日志管理功能,適合Debian環境下快速部署和監控Node.js應用。它支持實時日志查看(pm2 logs
)、日志輪轉(通過pm2 set pm2:max-size 10M
設置單日志文件大小,pm2 set pm2:retain 7
保留7天日志)、多進程日志聚合(適用于集群模式)。此外,PM2還能監控應用CPU、內存使用情況,自動重啟崩潰的進程,是中小型Node.js項目的理想選擇。
Winston是Node.js最流行的日志庫之一,以靈活性和可擴展性著稱。它支持多傳輸方式(控制臺、文件、HTTP、數據庫等)、多日志級別(info、error、warn等)、日志格式化(JSON、文本等)。在Debian上,Winston可與winston-daily-rotate-file
插件結合,實現日志自動輪轉和歸檔,適合需要自定義日志流程的中大型項目。
Log4js是受Java log4j啟發的Node.js日志庫,提供靈活的配置選項(如日志級別、輸出格式、滾動策略)、多種輸出目標(控制臺、文件、數據庫、郵件等)。在Debian上,Log4js適合需要復雜日志管理(如按級別拆分日志、發送郵件告警)的應用,其配置文件支持動態調整,無需重啟應用。
ELK Stack(Elasticsearch + Logstash + Kibana)是開源的集中式日志管理解決方案,適合Debian環境下大規模分布式系統的日志監控。Logstash負責收集和解析Node.js應用日志(可通過winston-logstash
傳輸),Elasticsearch存儲和索引日志,Kibana提供可視化 dashboard(如實時日志流、統計圖表、告警)。ELK適合需要復雜查詢和團隊協作的場景。
Graylog是專注于日志收集、存儲和分析的開源工具,支持全文搜索、實時告警、儀表盤功能。在Debian上,Graylog可通過winston-graylog2
傳輸Node.js日志,適合企業級環境,尤其需要集中管理多節點日志和合規性要求(如GDPR)的場景。
若將Node.js應用作為systemd服務運行(通過systemctl start my-app
),可通過journalctl
命令查看和管理日志(sudo journalctl -u my-app -f
實時查看,sudo journalctl -u my-app --since "2025-09-20"
按時間篩選)。結合logrotate
(Debian自帶),可實現日志輪轉和歸檔(如每天壓縮舊日志,保留7天),適合系統級集成和簡單監控需求。