溫馨提示×

Ubuntu Node.js日志中的系統資源監控

小樊
48
2025-06-20 19:30:28
欄目: 編程語言

在Ubuntu系統中,Node.js應用程序的日志通常記錄了應用程序的運行情況、錯誤和警告等信息。如果你想要在Node.js日志中監控系統資源,可以使用以下方法:

  1. 使用第三方庫

有一些第三方庫可以幫助你在Node.js應用程序中監控系統資源,例如ospidusage。這些庫可以讓你獲取CPU使用率、內存使用情況等信息,并將這些信息記錄到日志中。

例如,使用pidusage庫:

const pidusage = require('pidusage');
const fs = require('fs');

// 獲取當前進程的資源使用情況
pidusage(process.pid, (err, stats) => {
  if (err) {
    console.error(err);
    return;
  }

  // 將資源使用情況記錄到日志文件中
  const logEntry = `CPU: ${stats.cpu}% MEM: ${stats.memory / 1024 / 1024}MB\n`;
  fs.appendFile('resource_usage.log', logEntry, (err) => {
    if (err) {
      console.error(err);
    }
  });
});
  1. 使用系統日志

你還可以使用系統日志來記錄Node.js應用程序的資源使用情況。例如,使用systemdsyslog。

對于使用systemd的系統,你可以創建一個systemd服務文件,如下所示:

[Unit]
Description=Node.js App

[Service]
ExecStart=/usr/bin/node /path/to/your/app.js
Restart=always
User=your_user
Group=your_group
Environment=NODE_ENV=production
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodejs_app

[Install]
WantedBy=multi-user.target

將此文件保存為/etc/systemd/system/nodejs_app.service,然后運行以下命令以啟動服務:

sudo systemctl daemon-reload
sudo systemctl start nodejs_app

現在,你的Node.js應用程序的資源使用情況將被記錄到系統日志中。

對于使用syslog的系統,你可以使用winston庫將日志記錄到系統日志中:

const winston = require('winston');
const SyslogTransport = require('winston-syslog');

const logger = winston.createLogger({
  transports: [
    new SyslogTransport({
      host: 'localhost',
      port: 514,
      protocol: 'udp4',
      app_name: 'nodejs_app',
      eol: '\n',
    }),
  ],
});

// 獲取當前進程的資源使用情況
pidusage(process.pid, (err, stats) => {
  if (err) {
    console.error(err);
    return;
  }

  // 將資源使用情況記錄到系統日志中
  logger.info(`CPU: ${stats.cpu}% MEM: ${stats.memory / 1024 / 1024}MB`);
});

這些方法可以幫助你在Node.js日志中監控系統資源。你可以根據自己的需求選擇合適的方法。

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