溫馨提示×

如何在Linux上監控Node.js應用的運行狀態

小樊
52
2025-04-03 12:46:16
欄目: 編程語言

在Linux上監控Node.js應用的運行狀態有多種方法,以下是一些常用的工具和步驟:

使用PM2進行監控

PM2是一個功能強大的Node.js進程管理器,它不僅可以啟動、停止和重啟Node.js應用,還提供了豐富的監控功能。

  1. 安裝PM2
npm install pm2 -g
  1. 啟動應用并監控
pm2 start app.js --name myapi

這里app.js是你的Node.js應用入口文件,myapi是應用的名字。

  1. 查看應用狀態
pm2 list
  1. 設置自動重啟
pm2 set pm2_auto_restart 1
pm2 set pm2_restart_delay 30000

這些命令設置了應用自動重啟,并在30秒后嘗試重啟。

  1. 查看日志
pm2 logs myapi
  1. 系統資源監控: PM2還提供了資源監控的功能,可以使用以下命令查看CPU、內存等資源的使用情況:
pm2 monit

使用Prometheus和Grafana進行監控

Prometheus是一個開源的監控系統,可以收集和存儲指標數據,而Grafana則用于可視化這些數據。

  1. 安裝Prometheus客戶端
npm install prom-client
  1. 在Node.js應用中定義指標
const client = require('prom-client');
const httpRequestDuration = new client.histogram({
  name: 'http_request_duration_seconds',
  help: 'Duration of HTTP requests in seconds',
  labelnames: ['method', 'route'],
  buckets: [0.10, 5, 15, 50, 100, 200, 300, 400, 500]
});

app.use((req, res, next) => {
  const start = httpRequestDuration.startTimer();
  res.on('finish', () => {
    const duration = httpRequestDuration.labels(req.method, req.route).endTimer(start);
    console.log(`${req.method} ${req.route} ${duration}ms`);
  });
  next();
});
  1. 公開指標端點
app.get('/metrics', async (req, res) => {
  res.setHeader('Content-Type', client.register.contentType);
  res.end(await client.register.metrics());
});
  1. 使用Grafana進行可視化: 將Prometheus連接到Grafana,并創建自定義儀表板以可視化請求率、延遲和內存使用等指標。

使用內置模塊和第三方庫

Node.js提供了內置的process模塊來獲取進程信息,如CPU使用率和內存使用情況。此外,還可以使用第三方庫如winston進行日志記錄,express-status-monitor進行健康檢查等。

使用Docker和外部監控服務

如果你在Docker中運行Node.js應用,可以使用Docker自帶的工具如docker ps、docker logs、top、htop等來監控容器的狀態和資源使用情況。此外,還可以使用外部監控服務如Datadog、New Relic等來提供更全面的監控功能。

通過上述方法,你可以有效地監控Node.js應用在Linux上的運行狀態,確保其穩定性和性能。

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