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天),适合系统级集成和简单监控需求。