溫馨提示×

Node.js應用在Ubuntu上如何監控

小樊
72
2025-03-18 00:20:39
欄目: 編程語言

在Ubuntu上監控Node.js應用可以通過多種工具和方法實現,以下是一些常用的監控解決方案:

使用PM2進行監控

PM2是一個流行的Node.js進程管理器,它不僅可以管理你的應用,還可以提供監控和自動重啟功能。

  • 安裝PM2

    sudo npm install pm2 -g
    
  • 啟動應用并監控

    pm2 start app.js --name my-app
    pm2 monitor
    

    使用 pm2 monitor 命令可以查看應用的實時狀態、CPU和內存使用情況。

使用Uptime Kuma進行監控

Uptime Kuma是一個輕量級的自托管監控工具,支持多種監控類型,并通過Telegram、Discord、Slack等通知服務發送警報。

  • 安裝Uptime Kuma

    docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma
    
  • 訪問監控界面: 打開瀏覽器,訪問 http://localhost:3001 查看監控面板。

使用內置的性能監控工具

Node.js提供了一些內置的性能監控工具,如 v8-profilerheapdump,可以幫助你收集關于內存泄漏和性能問題的信息。

  • 使用heapdump

    const heapdump = require('heapdump');
    heapdump.writeSnapshot('/path/to/snapshot.heapsnapshot');
    

    然后可以使用Chrome DevTools的Memory面板來分析生成的堆快照。

使用外部監控服務

外部監控服務如Datadog、New Relic和Prometheus等提供了更全面的監控功能,包括性能監控、錯誤跟蹤和日志分析。

  • 集成Prometheus: 使用 prom-client 庫來暴露監控指標,并通過Prometheus服務器抓取這些指標。

    const promClient = require('prom-client');
    const httpRequestDurationMicroseconds = new promClient.Histogram({
      name: 'http_request_duration_ms',
      help: 'Duration of HTTP requests in ms',
      labelNames: ['method', 'route', 'code'],
      buckets: [0.10, 5, 15, 50, 100, 200, 300, 400, 500]
    });
    
    app.use((req, res, next) => {
      const start = Date.now();
      res.on('finish', () => {
        const duration = Date.now() - start;
        httpRequestDurationMicroseconds
          .labels(req.method, req.route, res.statusCode)
          .observe(duration);
      });
      next();
    });
    

    然后在Prometheus服務器上配置抓取目標。

日志記錄

日志記錄對于監控和故障排除至關重要??梢允褂?winstonbunyan 等日志庫來記錄應用的運行日志。

  • 使用Winston

    const winston = require('winston');
    const logger = winston.createLogger({
      level: 'info',
      format: winston.format.json(),
      transports: [
        new winston.transports.File({ filename: 'combined.log' }),
        new winston.transports.Console()
      ]
    });
    

    通過記錄日志,可以追蹤應用的運行狀態和錯誤信息。

通過上述方法,你可以有效地監控Node.js應用在Ubuntu上的性能和健康狀況,確保應用的穩定性和可靠性。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女