simple_host_monitoring 1.1.1 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/examples/example01.rb +2 -2
- data/lib/basehost.rb +51 -38
- data/lib/simple_host_monitoring.rb +7 -5
- metadata +4 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e473f9c33841dfd3b489c434bae1751a587fec16
|
4
|
+
data.tar.gz: 370acdef2777fd6865d3f8f5592a51c0a6d6fa16
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae38a1728b7f93b15d413a3f7759758ac41bb2e28f4487cbdefc1040626cd4e087a5fcb136028ca6c92ec522254ca450a7e15260e448febb45c69e5a763aefe5
|
7
|
+
data.tar.gz: 20690ba33e9af2a95951c5269a3552db505f3041329e156915be7913b4c0464b8e450fa85c572287747d6acb31f05ebdcb9fc94d715df02475a4cd1713a3802c
|
data/examples/example01.rb
CHANGED
@@ -32,8 +32,8 @@ logger = BlackStack::LocalLoggerFactory.create('./example01.log')
|
|
32
32
|
|
33
33
|
#
|
34
34
|
while (true)
|
35
|
-
url = "https://
|
36
|
-
api_key = '
|
35
|
+
url = "https://euler.connectionsphere.com/api1.4/shm/update.json"
|
36
|
+
api_key = '290582D4-D00C-4D37-82AF-23043B242647'
|
37
37
|
|
38
38
|
logger.logs "Flag start time... "
|
39
39
|
start_time = Time.now
|
data/lib/basehost.rb
CHANGED
@@ -7,56 +7,65 @@ include Sys
|
|
7
7
|
module BlackStack
|
8
8
|
|
9
9
|
module BaseHost
|
10
|
-
|
10
|
+
|
11
11
|
# Map the status of this host to the attributes of the class
|
12
12
|
# Returns the hash descriptor of the object
|
13
13
|
def poll()
|
14
|
-
b_total_memory = `wmic ComputerSystem get TotalPhysicalMemory`.delete('^0-9').to_i
|
15
|
-
kb_total_memory = b_total_memory / 1024
|
14
|
+
b_total_memory = windows_os? ? `wmic ComputerSystem get TotalPhysicalMemory`.delete('^0-9').to_i : `cat /proc/meminfo | grep MemTotal`.delete('^0-9').to_i*1024
|
15
|
+
kb_total_memory = b_total_memory / 1024
|
16
16
|
mb_total_memory = kb_total_memory / 1024
|
17
17
|
gb_total_memory = mb_total_memory / 1024
|
18
|
-
|
19
|
-
kb_free_memory = `wmic OS get FreePhysicalMemory`.delete('^0-9').to_i
|
18
|
+
|
19
|
+
kb_free_memory = windows_os? ? `wmic OS get FreePhysicalMemory`.delete('^0-9').to_i : `cat /proc/meminfo | grep MemFree`.delete('^0-9').to_i
|
20
20
|
mb_free_memory = kb_free_memory / 1024
|
21
21
|
gb_free_memory = mb_free_memory / 1024
|
22
|
-
|
22
|
+
|
23
23
|
# getting disk free space
|
24
24
|
stat = Sys::Filesystem.stat("/")
|
25
25
|
mb_total_disk = stat.block_size * stat.blocks / 1024 / 1024
|
26
26
|
mb_free_disk = stat.block_size * stat.blocks_available / 1024 / 1024
|
27
|
-
|
27
|
+
|
28
28
|
# getting public Internet IP
|
29
29
|
#remote_ip = remoteIp()
|
30
|
-
|
30
|
+
|
31
31
|
# getting server name
|
32
32
|
hostname = Socket.gethostname
|
33
|
-
|
33
|
+
|
34
34
|
# mapping cpu status
|
35
|
-
# self.id = BlackStack::SimpleHostMonitoring::host_id
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
35
|
+
# self.id = BlackStack::SimpleHostMonitoring::host_id
|
36
|
+
if windows_os?
|
37
|
+
self.cpu_architecture = CPU.architecture.to_s
|
38
|
+
self.cpu_speed = CPU.freq.to_i
|
39
|
+
self.cpu_load_average = CPU.load_avg.to_i
|
40
|
+
self.cpu_model = CPU.model.to_s
|
41
|
+
self.cpu_type = CPU.cpu_type.to_s
|
42
|
+
self.cpu_number = CPU.num_cpu.to_i
|
43
|
+
else
|
44
|
+
self.cpu_architecture = `lscpu | grep Architecture`.split(':')[1].strip!
|
45
|
+
self.cpu_speed = `lscpu | grep "CPU MHz:"`.split(':')[1].strip!.to_f.round
|
46
|
+
self.cpu_load_average = Sys::CPU.load_avg.to_s.to_i
|
47
|
+
self.cpu_model = `lscpu | grep "Model"`.split(':')[1].strip!
|
48
|
+
self.cpu_type = self.cpu_model.split(' ')[0]
|
49
|
+
self.cpu_number = `lscpu | grep "^CPU(s):"`.split(':')[1].strip!.to_i
|
50
|
+
end
|
51
|
+
|
52
|
+
# mapping ram status
|
44
53
|
self.mem_total = mb_total_memory.to_i
|
45
54
|
self.mem_free = mb_free_memory.to_i
|
46
|
-
|
55
|
+
|
47
56
|
# mapping disk status
|
48
57
|
self.disk_total = mb_total_disk.to_i
|
49
58
|
self.disk_free = mb_free_disk.to_i
|
50
|
-
|
59
|
+
|
51
60
|
# mapping lan attributes
|
52
61
|
self.net_hostname = hostname
|
53
62
|
#self.net_remote_ip = remote_ip.to_s
|
54
63
|
self.net_mac_address = BlackStack::SimpleHostMonitoring.macaddress
|
55
|
-
|
64
|
+
|
56
65
|
self.to_hash
|
57
66
|
end
|
58
|
-
|
59
|
-
#
|
67
|
+
|
68
|
+
#
|
60
69
|
def to_hash
|
61
70
|
{
|
62
71
|
# :id => self.id,
|
@@ -65,7 +74,7 @@ module BlackStack
|
|
65
74
|
:cpu_load_average => self.cpu_load_average,
|
66
75
|
:cpu_model => self.cpu_model,
|
67
76
|
:cpu_type => self.cpu_type,
|
68
|
-
:cpu_number => self.cpu_number,
|
77
|
+
:cpu_number => self.cpu_number,
|
69
78
|
:mem_total => self.mem_total,
|
70
79
|
:mem_free => self.mem_free,
|
71
80
|
:disk_total => self.disk_total,
|
@@ -73,10 +82,10 @@ module BlackStack
|
|
73
82
|
:net_hostname => self.net_hostname,
|
74
83
|
#:net_remote_ip => self.net_remote_ip,
|
75
84
|
:net_mac_address => self.net_mac_address
|
76
|
-
}
|
85
|
+
}
|
77
86
|
end
|
78
|
-
|
79
|
-
#
|
87
|
+
|
88
|
+
#
|
80
89
|
def self.valid_descriptor?(h)
|
81
90
|
return false if !h.is_a?(Hash)
|
82
91
|
# return false if !h[:id].to_s.guid?
|
@@ -93,10 +102,10 @@ module BlackStack
|
|
93
102
|
return false if h[:net_hostname].to_s.size==0
|
94
103
|
#return false if h[:net_remote_ip].to_s.size==0
|
95
104
|
return false if h[:net_mac_address].to_s.size==0
|
96
|
-
true
|
105
|
+
true
|
97
106
|
end
|
98
|
-
|
99
|
-
#
|
107
|
+
|
108
|
+
#
|
100
109
|
def self.descriptor_validation_details(h)
|
101
110
|
s = ''
|
102
111
|
s += 'Wrong descriptor format. ' if !h.is_a?(Hash)
|
@@ -116,8 +125,8 @@ module BlackStack
|
|
116
125
|
s += 'Invalid net_mac_address. ' if h[:net_mac_address].to_s.size==0
|
117
126
|
s
|
118
127
|
end
|
119
|
-
|
120
|
-
#
|
128
|
+
|
129
|
+
#
|
121
130
|
def parse(h)
|
122
131
|
# self.id = h[:id]
|
123
132
|
self.cpu_architecture = h[:cpu_architecture]
|
@@ -125,21 +134,25 @@ module BlackStack
|
|
125
134
|
self.cpu_load_average = h[:cpu_load_average]
|
126
135
|
self.cpu_model = h[:cpu_model]
|
127
136
|
self.cpu_type = h[:cpu_type]
|
128
|
-
self.cpu_number = h[:cpu_number]
|
137
|
+
self.cpu_number = h[:cpu_number]
|
129
138
|
self.mem_total = h[:mem_total]
|
130
139
|
self.mem_free = h[:mem_free]
|
131
140
|
self.disk_total = h[:disk_total]
|
132
141
|
self.disk_free = h[:disk_free]
|
133
142
|
self.net_hostname = h[:net_hostname]
|
134
143
|
#self.net_remote_ip = h[:net_remote_ip]
|
135
|
-
self.net_mac_address = h[:net_mac_address]
|
144
|
+
self.net_mac_address = h[:net_mac_address]
|
136
145
|
end
|
137
|
-
|
138
|
-
#
|
146
|
+
|
147
|
+
#
|
139
148
|
def push(api_key, url)
|
140
149
|
BlackStack::Netting::api_call( url, {:api_key => api_key}.merge(self.to_hash) )
|
141
150
|
end
|
142
|
-
|
151
|
+
|
152
|
+
def windows_os?
|
153
|
+
(/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil
|
154
|
+
end
|
155
|
+
|
143
156
|
end # module BaseHost
|
144
157
|
|
145
|
-
end # module BlackStack
|
158
|
+
end # module BlackStack
|
@@ -45,14 +45,16 @@ module BlackStack
|
|
45
45
|
# TODO: Esta funcion no retorna la mac address completa
|
46
46
|
# TODO: Validar que no se retorne una macaddress virtual, con todos valores en 0
|
47
47
|
def self.macaddress()
|
48
|
+
return `cat /sys/class/net/eth0/address`.upcase.strip.gsub(':', '-') unless BlackStack::RemoteHost.new.windows_os?
|
49
|
+
|
48
50
|
s = `ipconfig /all`
|
49
|
-
|
50
|
-
# The standard (IEEE 802) format for printing MAC-48
|
51
|
-
# => addresses in human-friendly form is six groups
|
52
|
-
# => of two hexadecimal digits, separated by hyphens
|
51
|
+
|
52
|
+
# The standard (IEEE 802) format for printing MAC-48
|
53
|
+
# => addresses in human-friendly form is six groups
|
54
|
+
# => of two hexadecimal digits, separated by hyphens
|
53
55
|
# => - or colons :
|
54
56
|
v = s.scan(/(([A-F0-9]{2}\-){5})([A-F0-9]{2}$)/im)
|
55
|
-
|
57
|
+
|
56
58
|
if (v.size>0)
|
57
59
|
return v.first.join.to_s
|
58
60
|
else
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_host_monitoring
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leandro Daniel Sardi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: websocket
|
@@ -54,20 +54,14 @@ dependencies:
|
|
54
54
|
name: tiny_tds
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
56
56
|
requirements:
|
57
|
-
- -
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: 1.0.5
|
60
|
-
- - ">="
|
57
|
+
- - '='
|
61
58
|
- !ruby/object:Gem::Version
|
62
59
|
version: 1.0.5
|
63
60
|
type: :runtime
|
64
61
|
prerelease: false
|
65
62
|
version_requirements: !ruby/object:Gem::Requirement
|
66
63
|
requirements:
|
67
|
-
- -
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 1.0.5
|
70
|
-
- - ">="
|
64
|
+
- - '='
|
71
65
|
- !ruby/object:Gem::Version
|
72
66
|
version: 1.0.5
|
73
67
|
- !ruby/object:Gem::Dependency
|