debian

如何通过JS日志监控Debian服务器状态

小樊
44
2025-07-11 12:13:17
栏目: 云计算

要通过JavaScript日志监控Debian服务器状态,你可以使用Node.js的child_process模块来执行系统命令并获取输出。以下是一个简单的示例,展示了如何使用Node.js脚本监控Debian服务器的CPU使用率、内存使用率和磁盘空间。

首先,确保你已经在Debian服务器上安装了Node.js。如果没有,请访问Node.js官方网站下载并安装。

然后,创建一个名为server_monitor.js的文件,并将以下代码粘贴到其中:

const { exec } = require('child_process');

// 获取CPU使用率
function getCpuUsage(callback) {
  exec('top -bn1 | grep load', (error, stdout, stderr) => {
    if (error) {
      console.error(`Error: ${error}`);
      return;
    }
    const cpuUsage = stdout.trim().split(' ')[8];
    callback(cpuUsage);
  });
}

// 获取内存使用率
function getMemoryUsage(callback) {
  exec('free -m | grep Mem', (error, stdout, stderr) => {
    if (error) {
      console.error(`Error: ${error}`);
      return;
    }
    const memoryUsage = stdout.trim().split(' ')[2] / stdout.trim().split(' ')[1] * 100;
    callback(memoryUsage);
  });
}

// 获取磁盘空间使用率
function getDiskUsage(callback) {
  exec('df -h | grep /', (error, stdout, stderr) => {
    if (error) {
      console.error(`Error: ${error}`);
      return;
    }
    const diskUsage = stdout.trim().split(' ')[4].replace('%', '');
    callback(diskUsage);
  });
}

// 定期监控服务器状态
function monitorServerStatus() {
  getCpuUsage((cpuUsage) => {
    console.log(`CPU Usage: ${cpuUsage}%`);
  });

  getMemoryUsage((memoryUsage) => {
    console.log(`Memory Usage: ${memoryUsage.toFixed(2)}%`);
  });

  getDiskUsage((diskUsage) => {
    console.log(`Disk Usage: ${diskUsage}%`);
  });

  setTimeout(monitorServerStatus, 5000); // 每5秒监控一次
}

monitorServerStatus();

保存文件后,在终端中运行以下命令启动脚本:

node server_monitor.js

这将每5秒输出一次服务器的CPU、内存和磁盘空间使用情况。

请注意,这个示例仅用于演示目的,实际生产环境中可能需要更详细的监控和错误处理。你可以根据需要修改和扩展此脚本,例如将输出发送到Web服务器以便远程访问,或者将数据存储在数据库中以便进一步分析。

0
看了该问题的人还看了