linux

如何利用JS日志监控Linux性能

小樊
45
2025-10-15 00:21:33
栏目: 编程语言

要利用JavaScript日志监控Linux性能,你可以使用Node.js的子进程模块(child_process)来执行Linux命令并获取性能数据。然后,你可以将这些数据记录到日志文件中,以便进一步分析。以下是一个简单的示例,展示了如何使用Node.js监控Linux系统的CPU使用率:

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

  2. 创建一个新的JavaScript文件,例如monitor.js

  3. monitor.js文件中,编写以下代码:

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

// 定义一个函数来执行Linux命令并获取输出
function executeCommand(command) {
  return new Promise((resolve, reject) => {
    exec(command, (error, stdout, stderr) => {
      if (error) {
        reject(error);
      } else {
        resolve(stdout.trim());
      }
    });
  });
}

// 定义一个函数来记录性能数据到日志文件
function logPerformanceData(data) {
  const logEntry = `${new Date().toISOString()} - ${data}\n`;
  fs.appendFile('performance.log', logEntry, (err) => {
    if (err) {
      console.error('Error writing to log file:', err);
    }
  });
}

// 主函数,用于监控Linux性能
async function monitorPerformance() {
  try {
    // 获取CPU使用率
    const cpuUsage = await executeCommand('top -bn1 | grep load | awk \'{printf("%.2f"), $(NF-2)}\'');
    console.log(`CPU Usage: ${cpuUsage}`);

    // 获取内存使用情况
    const memoryUsage = await executeCommand('free -m | grep Mem | awk \'{printf("%.2f"), $3/$2 * 100}\'');
    console.log(`Memory Usage: ${memoryUsage}`);

    // 获取磁盘使用情况
    const diskUsage = await executeCommand('df -h | grep / | awk \'{print $5}\'');
    console.log(`Disk Usage: ${diskUsage}`);

    // 将性能数据记录到日志文件
    logPerformanceData(`CPU Usage: ${cpuUsage}, Memory Usage: ${memoryUsage}, Disk Usage: ${diskUsage}`);
  } catch (error) {
    console.error('Error monitoring performance:', error);
  }
}

// 每隔一段时间(例如10秒)监控一次性能
setInterval(monitorPerformance, 10000);
  1. 在命令行中运行monitor.js文件:
node monitor.js

这将每隔10秒执行一次性能监控,并将结果记录到performance.log文件中。你可以根据需要调整监控间隔和要监控的性能指标。

注意:这个示例仅用于演示目的,实际应用中可能需要更复杂的逻辑和更多的错误处理。在生产环境中,你可能还需要考虑使用更专业的监控工具,如Prometheus和Grafana。

0
看了该问题的人还看了