在Ubuntu系統中,使用Node.js監控系統狀態可以通過多種方式實現。以下是一些常用的方法和工具:
使用內置的os
模塊:
Node.js的os
模塊提供了與操作系統相關的實用方法和屬性。你可以使用它來獲取CPU使用率、內存使用情況、磁盤空間等信息。
const os = require('os');
console.log('CPU Info:', os.cpus());
console.log('Total Memory:', os.totalmem());
console.log('Free Memory:', os.freemem());
console.log('System Uptime:', os.uptime());
使用第三方庫:
有許多第三方庫可以幫助你更方便地監控系統狀態,例如systeminformation
、pidusage
和node-os-utils
。
systeminformation
庫可以提供詳細的系統信息,包括CPU、內存、磁盤、網絡等。
const si = require('systeminformation');
si.cpu().then(data => {
console.log(data);
}).catch(error => {
console.error(error);
});
si.mem().then(data => {
console.log(data);
}).catch(error => {
console.error(error);
});
pidusage
庫可以用來監控進程的資源使用情況。
const pidusage = require('pidusage');
const pid = process.pid;
pidusage(pid, function (err, stats) {
if (err) {
return console.error(err);
}
console.log(stats);
});
node-os-utils
庫提供了跨平臺的系統監控功能。
const os = require('os-utils');
os.cpuUsage(function (percent) {
console.log(`CPU Usage: ${percent}%`);
});
os.memoryUsage(function (info) {
console.log(info);
});
使用系統命令:
你還可以通過Node.js的child_process
模塊來執行系統命令,并獲取其輸出結果。
const { exec } = require('child_process');
exec('top -bn1 | grep load', (error, stdout, stderr) => {
if (error) {
console.error(`執行錯誤: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
});
使用監控工具: 對于更復雜的監控需求,你可以考慮使用專門的監控工具,如Prometheus、Grafana等。這些工具可以與Node.js應用程序集成,提供實時的系統狀態監控和可視化界面。
選擇哪種方法取決于你的具體需求和偏好。對于簡單的監控任務,使用內置的os
模塊或第三方庫可能就足夠了。而對于需要更高級功能和實時監控的場景,可能需要考慮使用專門的監控工具。