debian

如何利用Debian Node.js日志进行监控

小樊
50
2025-08-27 15:18:27
栏目: 编程语言

以下是在Debian上利用Node.js日志进行监控的方法:

  1. 基础日志记录

    • 在代码中使用 console.log/console.error 输出日志,通过重定向到文件保存:
      node app.js > logs/output.log 2>&1
    • 使用日志库(如Winston、Pino)实现结构化日志记录,支持日志级别、格式化输出及轮转:
      const winston = require('winston');  
      const logger = winston.createLogger({  
        level: 'info',  
        transports: [  
          new winston.transports.File({ filename: 'error.log', level: 'error' }),  
          new winston.transports.File({ filename: 'combined.log' })  
        ]  
      });  
      
  2. 日志轮转管理

    • logrotate 工具避免日志文件过大,配置示例:
      sudo apt install logrotate  
      sudo nano /etc/logrotate.d/nodejs-app  
      # 添加内容:  
      /path/to/logs/*.log {  
        daily  
        rotate 7  
        compress  
        missingok  
      }  
      
  3. 实时监控工具

    • PM2:支持进程守护、日志实时查看及轮转,适合生产环境:
      npm install pm2 -g  
      pm2 start app.js --name "my-app"  
      pm2 logs  # 实时查看日志  
      ```。  
      
    • Log.io:实时流式传输日志到Web界面,支持多用户访问。
  4. 集中式日志管理

    • ELK Stack(Elasticsearch+Logstash+Kibana):用于大规模日志的采集、存储与可视化分析,需配置Winston将日志发送至Elasticsearch。
    • Graylog:集成Elasticsearch,提供日志聚合、搜索及告警功能。
  5. 监控与告警

    • Prometheus+Grafana:通过Prometheus采集日志指标(如错误率、请求延迟),在Grafana中创建可视化仪表板并设置告警规则。
    • 第三方服务:如Datadog、New Relic,支持远程日志采集、智能告警及分析。

根据应用规模选择方案:小型项目可用PM2+基础日志库,大型系统推荐ELK/Graylog+Prometheus+Grafana组合。

0
看了该问题的人还看了