溫馨提示×

如何利用Debian Node.js日志進行監控

小樊
47
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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女