温馨提示×

Ubuntu上Node.js的日志如何管理

小樊
50
2025-08-31 09:48:12
栏目: 编程语言

在Ubuntu上管理Node.js日志可通过以下方式实现:

一、基础日志查看

  • 直接查看日志文件:若应用将日志输出到文件(如app.log),可使用catlesstail命令查看,例如tail -f app.log实时查看日志。
  • 使用PM2日志管理:若通过PM2启动应用,可用pm2 logs查看实时日志,pm2 logs --lines 100查看最近100行日志,支持按应用名称筛选。

二、日志轮转配置

  • logrotate工具
    安装logrotate后,在/etc/logrotate.d/下创建配置文件(如nodejs),添加以下内容实现按天轮转、保留7天日志并压缩:
    /path/to/nodejs/logs/*.log {
        daily
        rotate 7
        compress
        missingok
        notifempty
        create 0640 root adm
    }
    ```。
    
  • Winston插件
    使用winston-daily-rotate-file插件,配置filename(如app-%DATE%.log)、datePatternYYYY-MM-DD)、maxSizemaxFiles实现按天或按大小轮转。

三、结构化日志与分析

  • 使用日志库
    • Winston:支持多传输(文件、控制台、HTTP等),可配置JSON格式日志,便于分析。
    • Bunyan:输出结构化JSON日志,适合集成到ELK等日志管理系统。
  • 集中式日志管理
    使用ELK Stack(Elasticsearch+Logstash+Kibana)或Graylog集中收集、存储和分析日志,适合大规模应用。

四、进程与权限管理

  • PM2进程守护:通过PM2管理应用进程,支持自动重启、日志分割和权限控制(如pm2 set pm2:log-date-format)。
  • 文件权限设置:确保日志文件权限合理(如chmod 640),避免敏感信息泄露。

五、实时监控与告警

  • 结合监控工具:通过Prometheus+Grafana监控日志中的异常指标,设置告警规则。
  • 日志过滤与告警:使用工具(如Logstash)过滤关键日志,触发异常告警。

0