linux

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

小樊
40
2025-07-20 12:19:29
栏目: 云计算

通过JavaScript日志监控Linux服务器状态,通常需要以下几个步骤:

  1. 在Linux服务器上安装Node.js: 如果你的Linux服务器还没有安装Node.js,你需要先安装它。你可以使用以下命令来安装Node.js:

    curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
    sudo apt-get install -y nodejs
    

    这里使用的是Node.js 14.x版本,你可以根据需要选择其他版本。

  2. 创建一个Node.js脚本来监控服务器状态: 创建一个新的JavaScript文件,例如monitor.js,并编写脚本来收集服务器状态信息。以下是一个简单的示例脚本:

    const fs = require('fs');
    const os = require('os');
    const exec = require('child_process').exec;
    
    // 获取CPU使用率
    function getCpuUsage() {
      return new Promise((resolve, reject) => {
        exec('top -bn1 | grep load', (error, stdout) => {
          if (error) {
            reject(error);
            return;
          }
          const load = stdout.split('load average: ')[1].split(',')[0];
          resolve(load);
        });
      });
    }
    
    // 获取内存使用情况
    function getMemoryUsage() {
      return new Promise((resolve, reject) => {
        exec('free -m | grep Mem', (error, stdout) => {
          if (error) {
            reject(error);
            return;
          }
          const totalMemory = stdout.split('Mem:')[1].split(' ')[1];
          const usedMemory = stdout.split('Mem:')[1].split(' ')[2];
          resolve({ totalMemory, usedMemory });
        });
      });
    }
    
    // 获取磁盘使用情况
    function getDiskUsage() {
      return new Promise((resolve, reject) => {
        exec('df -h | grep /$', (error, stdout) => {
          if (error) {
            reject(error);
            return;
          }
          const diskUsage = stdout.split(' ')[10];
          resolve(diskUsage);
        });
      });
    }
    
    // 记录日志
    function logToFile(message) {
      const timestamp = new Date().toISOString();
      const logEntry = `${timestamp}: ${message}\n`;
      fs.appendFile('/var/log/server_status.log', logEntry, (err) => {
        if (err) throw err;
      });
    }
    
    // 主函数
    async function monitorServer() {
      try {
        const cpuUsage = await getCpuUsage();
        const memoryUsage = await getMemoryUsage();
        const diskUsage = await getDiskUsage();
    
        logToFile(`CPU Usage: ${cpuUsage}`);
        logToFile(`Memory Usage: ${memoryUsage.totalMemory}MB / ${memoryUsage.usedMemory}MB`);
        logToFile(`Disk Usage: ${diskUsage}`);
      } catch (error) {
        logToFile(`Error: ${error.message}`);
      }
    }
    
    // 每隔一段时间监控一次
    setInterval(monitorServer, 60000); // 每分钟监控一次
    
  3. 运行Node.js脚本: 在终端中运行你的Node.js脚本:

    node monitor.js
    

    你可以将这个脚本设置为系统服务,以便在服务器启动时自动运行。

  4. 查看日志文件: 你可以随时查看/var/log/server_status.log文件来获取服务器的状态信息。

通过这种方式,你可以使用JavaScript日志监控Linux服务器的状态,并将相关信息记录到日志文件中。

0
看了该问题的人还看了