nagios-promoo 1.2.0 → 1.3.0
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c242118ff175bfc75cd2dcdb1f601ee0bce917a
|
4
|
+
data.tar.gz: fc1af479b2fc2e7fabb7ac425b5b785eb3e95f73
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d36bfb153389e3391c8d533979067bc64362f0ce3aed4a82b7ca4a8b7776abb284adc080b86c10252ad8a0f0a33069eb2284efdf88d6978645b45e4cdc4b7f32
|
7
|
+
data.tar.gz: f71856419e0ee71de26cede648b834be3deeea9741e22178789780ff71107f86860004e41e65ab82aa56ee9f4f9484d2dfb1d34f5d2a6a8cbe6f22be6fa9939e
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# Internal deps
|
2
|
+
require File.join(File.dirname(__FILE__), 'base_probe')
|
3
|
+
|
4
|
+
module Nagios
|
5
|
+
module Promoo
|
6
|
+
module Opennebula
|
7
|
+
module Probes
|
8
|
+
# Probe for checking ONe for ERRORs on hosts.
|
9
|
+
#
|
10
|
+
# @author Boris Parak <parak@cesnet.cz>
|
11
|
+
class HostErrorProbe < Nagios::Promoo::Opennebula::Probes::BaseProbe
|
12
|
+
class << self
|
13
|
+
def description
|
14
|
+
['host-error', 'Run a probe checking for ERRORs on hosts']
|
15
|
+
end
|
16
|
+
|
17
|
+
def options
|
18
|
+
[]
|
19
|
+
end
|
20
|
+
|
21
|
+
def declaration
|
22
|
+
'host_error'
|
23
|
+
end
|
24
|
+
|
25
|
+
def runnable?
|
26
|
+
true
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
ERROR_KEYWORD = 'ERROR'.freeze
|
31
|
+
|
32
|
+
def run(_args = [])
|
33
|
+
Timeout.timeout(options[:timeout]) do
|
34
|
+
errors = host_pool.select { |host| errored?(host) }
|
35
|
+
errors.map! { |host| host['NAME'] }
|
36
|
+
raise "HOSTs #{errors.inspect} are in state #{ERROR_KEYWORD}" if errors.count > 0
|
37
|
+
end
|
38
|
+
|
39
|
+
puts 'HOSTERR OK - Everything is hunky-dory'
|
40
|
+
rescue => ex
|
41
|
+
puts "HOSTERR CRITICAL - #{ex.message}"
|
42
|
+
puts ex.backtrace if options[:debug]
|
43
|
+
exit 2
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def host_pool
|
49
|
+
host_pool = OpenNebula::HostPool.new(client)
|
50
|
+
rc = host_pool.info
|
51
|
+
raise rc.message if OpenNebula.is_error?(rc)
|
52
|
+
|
53
|
+
host_pool
|
54
|
+
end
|
55
|
+
|
56
|
+
def errored?(host)
|
57
|
+
host.state_str == ERROR_KEYWORD
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# Internal deps
|
2
|
+
require File.join(File.dirname(__FILE__), 'base_probe')
|
3
|
+
|
4
|
+
module Nagios
|
5
|
+
module Promoo
|
6
|
+
module Opennebula
|
7
|
+
module Probes
|
8
|
+
# Probe for checking ONe for FAILED virtual machines.
|
9
|
+
#
|
10
|
+
# @author Boris Parak <parak@cesnet.cz>
|
11
|
+
class VirtualMachineFailsProbe < Nagios::Promoo::Opennebula::Probes::BaseProbe
|
12
|
+
class << self
|
13
|
+
def description
|
14
|
+
['virtual-machine-fails', 'Run a probe checking for FAILED virtual machines']
|
15
|
+
end
|
16
|
+
|
17
|
+
def options
|
18
|
+
[]
|
19
|
+
end
|
20
|
+
|
21
|
+
def declaration
|
22
|
+
'virtual_machine_fails'
|
23
|
+
end
|
24
|
+
|
25
|
+
def runnable?
|
26
|
+
true
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
FAIL_KEYWORD = 'FAILURE'.freeze
|
31
|
+
|
32
|
+
def run(_args = [])
|
33
|
+
Timeout.timeout(options[:timeout]) do
|
34
|
+
fails = virtual_machine_pool.select { |vm| failed?(vm) }
|
35
|
+
fails.map!(&:id)
|
36
|
+
raise "Virtual machines #{fails.inspect} are in a FAILED state" if fails.count > 0
|
37
|
+
end
|
38
|
+
|
39
|
+
puts 'VMFAILS OK - Everything is hunky-dory'
|
40
|
+
rescue => ex
|
41
|
+
puts "VMFAILS CRITICAL - #{ex.message}"
|
42
|
+
puts ex.backtrace if options[:debug]
|
43
|
+
exit 2
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def virtual_machine_pool
|
49
|
+
vm_pool = OpenNebula::VirtualMachinePool.new(client)
|
50
|
+
rc = vm_pool.info_all
|
51
|
+
raise rc.message if OpenNebula.is_error?(rc)
|
52
|
+
|
53
|
+
vm_pool
|
54
|
+
end
|
55
|
+
|
56
|
+
def failed?(vm)
|
57
|
+
vm.lcm_state_str.include?(FAIL_KEYWORD) || vm.state_str.include?(FAIL_KEYWORD)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nagios-promoo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Boris Parak
|
@@ -330,6 +330,8 @@ files:
|
|
330
330
|
- lib/nagios/promoo/opennebula/master.rb
|
331
331
|
- lib/nagios/promoo/opennebula/probes/.keep
|
332
332
|
- lib/nagios/promoo/opennebula/probes/base_probe.rb
|
333
|
+
- lib/nagios/promoo/opennebula/probes/host_error_probe.rb
|
334
|
+
- lib/nagios/promoo/opennebula/probes/virtual_machine_fails_probe.rb
|
333
335
|
- lib/nagios/promoo/opennebula/probes/virtual_machine_probe.rb
|
334
336
|
- lib/nagios/promoo/opennebula/probes/xmlrpc_health_probe.rb
|
335
337
|
- lib/nagios/promoo/opennebula/version.rb
|
@@ -357,7 +359,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
357
359
|
version: '0'
|
358
360
|
requirements: []
|
359
361
|
rubyforge_project:
|
360
|
-
rubygems_version: 2.6.
|
362
|
+
rubygems_version: 2.6.8
|
361
363
|
signing_key:
|
362
364
|
specification_version: 4
|
363
365
|
summary: Nagios Probes for Monitoring OpenNebula and OCCI
|