centos

如何通过JS日志监控CentOS服务器性能

小樊
41
2025-12-27 10:14:22
栏目: 云计算

要通过JavaScript日志监控CentOS服务器性能,你可以使用Node.js的os模块来收集服务器的性能数据,并将这些数据记录到日志文件中。以下是一个简单的示例,展示了如何使用Node.js来监控CPU使用率、内存使用情况和磁盘空间,并将这些信息记录到日志文件中。

首先,确保你的CentOS服务器上已经安装了Node.js。如果还没有安装,可以通过以下命令安装:

curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
sudo yum install -y nodejs

然后,创建一个名为serverMonitor.js的JavaScript文件,并添加以下代码:

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

// 创建一个写入流,用于写入日志文件
const logStream = fs.createWriteStream('/var/log/serverMonitor.log', { flags: 'a' });

// 定义一个函数来获取系统性能数据
function getSystemPerformance() {
  const cpuUsage = os.loadavg();
  const totalMemory = os.totalmem();
  const freeMemory = os.freemem();
  const usedMemory = totalMemory - freeMemory;
  const diskUsage = os.freemem(); // 这里应该是磁盘使用情况,但os模块没有直接提供,需要使用其他模块如os-disk或exec系统命令

  return {
    cpuUsage,
    usedMemory,
    totalMemory,
    diskUsage // 注意:这里应该是磁盘使用情况
  };
}

// 定义一个函数来记录性能数据
function logPerformance() {
  const performanceData = getSystemPerformance();
  const logEntry = `${new Date().toISOString()} - CPU Load: ${performanceData.cpuUsage}, Memory Used: ${performanceData.usedMemory}, Total Memory: ${performanceData.totalMemory}, Disk Usage: ${performanceData.diskUsage}\n`;

  logStream.write(logEntry);
  console.log(logEntry);
}

// 每隔一段时间(例如10秒)记录一次性能数据
setInterval(logPerformance, 10000);

// 立即记录一次性能数据
logPerformance();

注意:上述代码中的os.freemem()实际上是返回空闲内存,而不是磁盘使用情况。如果你需要监控磁盘使用情况,你可以使用os-disk模块或者其他方法,比如执行系统命令来获取。

安装os-disk模块:

npm install os-disk

然后在代码中使用os-disk模块来获取磁盘使用情况:

const disk = require('os-disk');

// ...

function getSystemPerformance() {
  // ...
  const diskUsage = disk.usage('/'); // 获取根目录的磁盘使用情况

  return {
    // ...
    diskUsage
  };
}

// ...

最后,运行你的监控脚本:

node serverMonitor.js

这将会开始记录服务器的性能数据到/var/log/serverMonitor.log文件中。你可以根据需要调整记录频率和监控的指标。此外,你还可以将日志发送到远程服务器进行集中监控,或者使用第三方服务来分析和可视化这些数据。

0
看了该问题的人还看了