forked from keymetrics/pm2-server-monit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
120 lines (96 loc) · 3.47 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
var cpu = require('./lib/cpu'),
os = require('./lib/os'),
drive = require('./lib/drive'),
users = require('./lib/users'),
pmx = require('pmx'),
pm2 = require('pm2'),
shelljs = require('shelljs'),
fs = require('fs'),
path = require('path');
if (process.platform == 'linux')
var netstat = require('./lib/netstat'),
mem = require('./lib/mem'),
proc = require('./lib/proc');
var conf = pmx.initModule({
pid : pmx.resolvePidPaths([]),
widget : {
type : 'generic',
logo : 'http://serverental.com/server-rental/wp-content/uploads/2013/12/DellPowerEdger510Server2U2-socketrackserver.png',
// 0 = main element
// 1 = secondary
// 2 = main border
// 3 = secondary border
theme : ['#111111', '#1B2228', '#807C7C', '#807C7C'],
el : {
probes : true,
actions : true
},
block : {
actions : false,
issues : true,
meta : true,
cpu: false,
mem: false,
main_probes : ['CPU usage', 'Free memory', 'Avail. Disk', 'Total Processes', 'TTY/SSH opened', 'eth0 input', 'eth0 output', 'Operating System']
}
// Status
// Green / Yellow / Red
}
});
if (process.platform == 'linux') {
pmx.action('top cpu consuming', function(reply) {
var top_cpu_process = shelljs.exec('ps -eo pcpu,user,args --no-headers | sort -k 1 -n | tail -n 10 | sort -k 1 -nr | cut -c 1-70', { async : true, silent:true}, function(err, out) {
var result = out.replace(/\n/g, "<br />");
return reply(result);
});
});
pmx.action('top mem consuming', function(reply) {
var top_mem_process = shelljs.exec('ps -eo pmem,pid,cmd | sort -k 1 -n | tail -n 10 | sort -k 1 -nr | cut -c 1-70', { async : true, silent:true}, function(err, out) {
var result = out.replace(/\n/g, "<br />");
return reply(result);
});
});
pmx.action('vmstats', function(reply) {
var vmstats = shelljs.exec('vmstat -S m', { async : true, silent:true}, function(err, out) {
var result = out.replace(/\n/g, "<br />");
return reply(result);
});
});
}
pmx.action('processes/users', function(reply) {
var proc_users = shelljs.exec('ps hax -o user | sort | uniq -c', { async : true, silent:true}, function(err, out) {
var result = out.replace(/\n/g, "<br />");
return reply(result);
});
});
pmx.action('disk usage', function(reply) {
var disk_usage = shelljs.exec('df -h', { async : true, silent:true}, function(err, out) {
var result = out.replace(/\n/g, "<br />");
return reply(result);
});
});
pmx.action('who', function(reply) {
var who = shelljs.exec('who', { async : true, silent:true}, function(err, out) {
var result = out.replace(/\n/g, "<br />");
return reply(result);
});
});
pmx.action('uptime', function(reply) {
var uptime = shelljs.exec('uptime', { async : true, silent:true}, function(err, out) {
var result = out.replace(/\n/g, "<br />");
return reply(result);
});
});
pmx.action('open ports', function(reply) {
var open_ports = shelljs.exec('lsof -Pni4 | grep ESTABLISHED', { async : true, silent:true}, function(err, out) {
var result = out.replace(/\n/g, "<br />");
return reply(result);
});
});
pmx.action('open files', function(reply) {
var open_files = shelljs.exec('lsof -i -n -P | wc -l', { async : true, silent:true}, function(err, out) {
var result = out.replace(/\n/g, "");
result = parseInt(result) - 1;
return reply(result);
});
});