要通过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文件中。你可以根据需要调整记录频率和监控的指标。此外,你还可以将日志发送到远程服务器进行集中监控,或者使用第三方服务来分析和可视化这些数据。