ubuntu

Ubuntu JS日志中如何监控系统资源

小樊
35
2025-11-20 07:23:15
栏目: 编程语言

Ubuntu 下用 JS 日志监控系统资源的实用方案

一 总体思路

二 在 Node.js 中记录系统指标

// monitor.js
const os = require('os');
const { createLogger, format, transports } = require('winston');

const logger = createLogger({
  level: 'info',
  format: format.combine(format.timestamp(), format.json()),
  transports: [
    new transports.File({ filename: 'metrics.log', level: 'info' }),
    new transports.Console()
  ]
});

function getSystemStats() {
  const totalMem = os.totalmem();
  const freeMem = os.freemem();
  const usedMem = totalMem - freeMem;
  const cpus = os.cpus();
  const loadAvg = os.loadavg(); // 1/5/15 分钟负载
  return {
    timestamp: new Date().toISOString(),
    platform: os.platform(),
    arch: os.arch(),
    cpu: {
      model: cpus[0].model,
      cores: cpus.length,
      loadAverage: loadAvg[0] // 1 分钟负载
    },
    memory: {
      total: (totalMem / 1024 / 1024 / 1024).toFixed(2) + ' GB',
      used: (usedMem / 1024 / 1024 / 1024).toFixed(2) + ' GB',
      free: (freeMem / 1024 / 1024 / 1024).toFixed(2) + ' GB',
      usagePercent: ((usedMem / totalMem) * 100).toFixed(2) + '%'
    },
    uptime: (os.uptime() / 3600).toFixed(2) + ' hours'
  };
}

// 定时记录
setInterval(() => {
  logger.info('system_metrics', getSystemStats());
}, 5000);

三 与系统日志和应用日志联动

四 集中化监控与告警

五 快速排查命令清单

0
看了该问题的人还看了