nagios-manage 0.5.5 → 0.6.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.
- data/bin/check_check.rb +29 -3
- metadata +5 -4
data/bin/check_check.rb
CHANGED
@@ -80,6 +80,7 @@ Settings = Struct.new(:nagios_cfg, :status_path, :service_pattern, :host_pattern
|
|
80
80
|
def main(args)
|
81
81
|
progname = File.basename($0)
|
82
82
|
settings = Settings.new
|
83
|
+
thresholds = Hash.new { |h,k| h[k] = 0 }
|
83
84
|
settings.nagios_cfg = "/etc/nagios3/nagios.cfg" # debian/ubuntu default
|
84
85
|
|
85
86
|
opts = OptionParser.new do |opts|
|
@@ -99,6 +100,24 @@ def main(args)
|
|
99
100
|
"Aggregate only services from hosts matching the given pattern") do |val|
|
100
101
|
settings.host_pattern = val
|
101
102
|
end
|
103
|
+
|
104
|
+
thresholds["WARNING"] = 1
|
105
|
+
opts.on("-w NUMBER", "--warning NUMBER",
|
106
|
+
"Exit with a warning state if more than x checks are in warning state (defaults to 1, 0 disables the check)") do |val|
|
107
|
+
thresholds["WARNING"] = val.to_i
|
108
|
+
end
|
109
|
+
|
110
|
+
thresholds["CRITICAL"] = 1
|
111
|
+
opts.on("-c NUMBER", "--critical NUMBER",
|
112
|
+
"Exit with a critical state if more than x checks are in critical state (defaults to 1, 0 disables the check)") do |val|
|
113
|
+
thresholds["CRITICAL"] = val.to_i
|
114
|
+
end
|
115
|
+
|
116
|
+
thresholds["UNKNOWN"] = 1
|
117
|
+
opts.on("-u NUMBER", "--unknown NUMBER",
|
118
|
+
"Exit with a unknown state if more than x checks are in unknown state (defaults to 1, 0 disables the check)") do |val|
|
119
|
+
thresholds["UNKNOWN"] = val.to_i
|
120
|
+
end
|
102
121
|
end # OptionParser.new
|
103
122
|
|
104
123
|
opts.parse!(args)
|
@@ -136,6 +155,9 @@ def main(args)
|
|
136
155
|
# Output a summary line
|
137
156
|
["OK", "WARNING", "CRITICAL", "UNKNOWN"].each do | state|
|
138
157
|
print "#{state}=#{results[state].length} "
|
158
|
+
if ["WARNING", "CRITICAL", "UNKNOWN"].include?(state)
|
159
|
+
print"(threshold: #{thresholds[state]}) "
|
160
|
+
end
|
139
161
|
end
|
140
162
|
print "services=/#{settings.service_pattern}/ "
|
141
163
|
print "hosts=/#{settings.host_pattern}/ "
|
@@ -143,7 +165,7 @@ def main(args)
|
|
143
165
|
|
144
166
|
# More data output
|
145
167
|
["WARNING", "CRITICAL", "UNKNOWN"].each do |state|
|
146
|
-
if results[state] && results[state].size > 0
|
168
|
+
if results[state] && results[state].size > 0 and thresholds[state] > 0
|
147
169
|
puts "Services in #{state}:"
|
148
170
|
results[state].sort { |a,b| a["host_name"] <=> b["host_name"] }.each do |service|
|
149
171
|
puts " #{service["host_name"]} => #{service["service_description"]}"
|
@@ -153,11 +175,15 @@ def main(args)
|
|
153
175
|
|
154
176
|
exitcode = 0
|
155
177
|
|
156
|
-
if results["
|
178
|
+
if results["UNKNOWN"].length >= thresholds["UNKNOWN"] and thresholds["UNKNOWN"] > 0
|
179
|
+
exitcode = 3
|
180
|
+
end
|
181
|
+
|
182
|
+
if results["WARNING"].length >= thresholds["WARNING"] and thresholds["WARNING"] > 0
|
157
183
|
exitcode = 1
|
158
184
|
end
|
159
185
|
|
160
|
-
if results["CRITICAL"].length > 0
|
186
|
+
if results["CRITICAL"].length >= thresholds["CRITICAL"] and thresholds["CRITICAL"] > 0
|
161
187
|
exitcode = 2
|
162
188
|
end
|
163
189
|
return exitcode
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nagios-manage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-03-20 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Silence alerts, aggregate existing checks, etc.
|
15
15
|
email: rip@devco.net, jls@semicomplete.com
|
@@ -20,8 +20,8 @@ extensions: []
|
|
20
20
|
extra_rdoc_files: []
|
21
21
|
files:
|
22
22
|
- lib/nagios/status.rb
|
23
|
-
- bin/nagsrv.rb
|
24
23
|
- bin/check_check.rb
|
24
|
+
- bin/nagsrv.rb
|
25
25
|
homepage: http://code.google.com/p/ruby-nagios/
|
26
26
|
licenses: []
|
27
27
|
post_install_message:
|
@@ -43,8 +43,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
43
43
|
version: '0'
|
44
44
|
requirements: []
|
45
45
|
rubyforge_project:
|
46
|
-
rubygems_version: 1.8.
|
46
|
+
rubygems_version: 1.8.24
|
47
47
|
signing_key:
|
48
48
|
specification_version: 3
|
49
49
|
summary: nagios-manage - a ruby tool for managing your nagios instance
|
50
50
|
test_files: []
|
51
|
+
has_rdoc:
|