icinga2 0.6.4.0 → 0.6.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.
- checksums.yaml +4 -4
- data/doc/Icinga2.html +21 -5
- data/doc/Logging.html +1 -1
- data/doc/_index.html +1 -1
- data/doc/file.README.html +1 -1
- data/doc/index.html +1 -1
- data/doc/method_list.html +71 -23
- data/doc/top-level-namespace.html +1 -1
- data/examples/test.rb +33 -27
- data/lib/icinga2/hosts.rb +2 -2
- data/lib/icinga2/network.rb +86 -7
- data/lib/icinga2/services.rb +11 -9
- data/lib/icinga2/status.rb +67 -11
- data/lib/icinga2/tools.rb +6 -10
- data/lib/icinga2/version.rb +1 -1
- data/lib/icinga2.rb +7 -6
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5d082904a4b57ecb1d3da9a398611e130a8ac951
|
|
4
|
+
data.tar.gz: 575a2ec8387ef5ab1cc95cfa2a1c3a8013b85274
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3d3f7b99eff8a66a6d6aefcf2d5d58e78ca41f97c36147c73d723b928cd750953eeb4cae92585564ba4283a9d99ec02d6e2218f5c085f31cc0a2180584acce17
|
|
7
|
+
data.tar.gz: 91a5ff146a4f3a0b7255e01fb4bdb3635928b7f5f10d9936420c5d8e29dd8cd25296e5c446ab40da878a6b22251ddaf9a797540d233ed6e6c0e5a801e4152e21
|
data/doc/Icinga2.html
CHANGED
|
@@ -112,7 +112,23 @@
|
|
|
112
112
|
<h2>Constant Summary</h2>
|
|
113
113
|
<dl class="constants">
|
|
114
114
|
|
|
115
|
-
<dt id="
|
|
115
|
+
<dt id="HOSTS_DOWN-constant" class="">HOSTS_DOWN =
|
|
116
|
+
<div class="docstring">
|
|
117
|
+
<div class="discussion">
|
|
118
|
+
|
|
119
|
+
<p>static variable for hosts down</p>
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
<div class="tags">
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
</div>
|
|
128
|
+
</dt>
|
|
129
|
+
<dd><pre class="code"><span class='int'>1</span></pre></dd>
|
|
130
|
+
|
|
131
|
+
<dt id="SERVICE_STATE_WARNING-constant" class="">SERVICE_STATE_WARNING =
|
|
116
132
|
<div class="docstring">
|
|
117
133
|
<div class="discussion">
|
|
118
134
|
|
|
@@ -128,7 +144,7 @@
|
|
|
128
144
|
</dt>
|
|
129
145
|
<dd><pre class="code"><span class='int'>1</span></pre></dd>
|
|
130
146
|
|
|
131
|
-
<dt id="
|
|
147
|
+
<dt id="SERVICE_STATE_CRITICAL-constant" class="">SERVICE_STATE_CRITICAL =
|
|
132
148
|
<div class="docstring">
|
|
133
149
|
<div class="discussion">
|
|
134
150
|
|
|
@@ -144,7 +160,7 @@
|
|
|
144
160
|
</dt>
|
|
145
161
|
<dd><pre class="code"><span class='int'>2</span></pre></dd>
|
|
146
162
|
|
|
147
|
-
<dt id="
|
|
163
|
+
<dt id="SERVICE_STATE_UNKNOWN-constant" class="">SERVICE_STATE_UNKNOWN =
|
|
148
164
|
<div class="docstring">
|
|
149
165
|
<div class="discussion">
|
|
150
166
|
|
|
@@ -174,7 +190,7 @@
|
|
|
174
190
|
|
|
175
191
|
</div>
|
|
176
192
|
</dt>
|
|
177
|
-
<dd><pre class="code"><span class='lbracket'>[</span><span class='const'><span class='object_link'><a href="Icinga2/Version.html" title="Icinga2::Version (module)">Version</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Icinga2/Version.html#MAJOR-constant" title="Icinga2::Version::MAJOR (constant)">MAJOR</a></span></span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="Icinga2/Version.html" title="Icinga2::Version (module)">Version</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Icinga2/Version.html#MINOR-constant" title="Icinga2::Version::MINOR (constant)">MINOR</a></span></span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="Icinga2/Version.html" title="Icinga2::Version (module)">Version</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Icinga2/Version.html#TINY-constant" title="Icinga2::Version::TINY (constant)">TINY</a></span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span> <span class='op'>*</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>.</span><span class='tstring_end'>'</span></span></pre></dd>
|
|
193
|
+
<dd><pre class="code"><span class='lbracket'>[</span><span class='const'><span class='object_link'><a href="Icinga2/Version.html" title="Icinga2::Version (module)">Version</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Icinga2/Version.html#MAJOR-constant" title="Icinga2::Version::MAJOR (constant)">MAJOR</a></span></span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="Icinga2/Version.html" title="Icinga2::Version (module)">Version</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Icinga2/Version.html#MINOR-constant" title="Icinga2::Version::MINOR (constant)">MINOR</a></span></span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="Icinga2/Version.html" title="Icinga2::Version (module)">Version</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Icinga2/Version.html#TINY-constant" title="Icinga2::Version::TINY (constant)">TINY</a></span></span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="Icinga2/Version.html" title="Icinga2::Version (module)">Version</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Icinga2/Version.html#PATCH-constant" title="Icinga2::Version::PATCH (constant)">PATCH</a></span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span> <span class='op'>*</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>.</span><span class='tstring_end'>'</span></span></pre></dd>
|
|
178
194
|
|
|
179
195
|
</dl>
|
|
180
196
|
|
|
@@ -189,7 +205,7 @@
|
|
|
189
205
|
</div>
|
|
190
206
|
|
|
191
207
|
<div id="footer">
|
|
192
|
-
Generated on
|
|
208
|
+
Generated on Wed Jun 28 05:55:20 2017 by
|
|
193
209
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
194
210
|
0.9.9 (ruby-2.3.4).
|
|
195
211
|
</div>
|
data/doc/Logging.html
CHANGED
|
@@ -318,7 +318,7 @@ href="https://stackoverflow.com/questions/917566/ruby-share-logger-instance-amon
|
|
|
318
318
|
</div>
|
|
319
319
|
|
|
320
320
|
<div id="footer">
|
|
321
|
-
Generated on
|
|
321
|
+
Generated on Wed Jun 28 05:55:20 2017 by
|
|
322
322
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
323
323
|
0.9.9 (ruby-2.3.4).
|
|
324
324
|
</div>
|
data/doc/_index.html
CHANGED
|
@@ -275,7 +275,7 @@
|
|
|
275
275
|
</div>
|
|
276
276
|
|
|
277
277
|
<div id="footer">
|
|
278
|
-
Generated on
|
|
278
|
+
Generated on Wed Jun 28 05:55:20 2017 by
|
|
279
279
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
280
280
|
0.9.9 (ruby-2.3.4).
|
|
281
281
|
</div>
|
data/doc/file.README.html
CHANGED
|
@@ -268,7 +268,7 @@ feature'</code>)</p>
|
|
|
268
268
|
</div></div>
|
|
269
269
|
|
|
270
270
|
<div id="footer">
|
|
271
|
-
Generated on
|
|
271
|
+
Generated on Wed Jun 28 05:55:20 2017 by
|
|
272
272
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
273
273
|
0.9.9 (ruby-2.3.4).
|
|
274
274
|
</div>
|
data/doc/index.html
CHANGED
|
@@ -268,7 +268,7 @@ feature'</code>)</p>
|
|
|
268
268
|
</div></div>
|
|
269
269
|
|
|
270
270
|
<div id="footer">
|
|
271
|
-
Generated on
|
|
271
|
+
Generated on Wed Jun 28 05:55:20 2017 by
|
|
272
272
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
273
273
|
0.9.9 (ruby-2.3.4).
|
|
274
274
|
</div>
|
data/doc/method_list.html
CHANGED
|
@@ -116,6 +116,22 @@
|
|
|
116
116
|
</li>
|
|
117
117
|
|
|
118
118
|
|
|
119
|
+
<li class="even ">
|
|
120
|
+
<div class="item">
|
|
121
|
+
<span class='object_link'><a href="Icinga2/Client.html#avg_execution_time-instance_method" title="Icinga2::Client#avg_execution_time (method)">#avg_execution_time</a></span>
|
|
122
|
+
<small>Icinga2::Client</small>
|
|
123
|
+
</div>
|
|
124
|
+
</li>
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
<li class="odd ">
|
|
128
|
+
<div class="item">
|
|
129
|
+
<span class='object_link'><a href="Icinga2/Client.html#avg_latency-instance_method" title="Icinga2::Client#avg_latency (method)">#avg_latency</a></span>
|
|
130
|
+
<small>Icinga2::Client</small>
|
|
131
|
+
</div>
|
|
132
|
+
</li>
|
|
133
|
+
|
|
134
|
+
|
|
119
135
|
<li class="even ">
|
|
120
136
|
<div class="item">
|
|
121
137
|
<span class='object_link'><a href="Icinga2/Client.html#cert%3F-instance_method" title="Icinga2::Client#cert? (method)">#cert?</a></span>
|
|
@@ -318,13 +334,21 @@
|
|
|
318
334
|
|
|
319
335
|
<li class="odd ">
|
|
320
336
|
<div class="item">
|
|
321
|
-
<span class='object_link'><a href="Icinga2/Network.html#
|
|
337
|
+
<span class='object_link'><a href="Icinga2/Network.html#get_raw-class_method" title="Icinga2::Network.get_raw (method)">get_raw</a></span>
|
|
322
338
|
<small>Icinga2::Network</small>
|
|
323
339
|
</div>
|
|
324
340
|
</li>
|
|
325
341
|
|
|
326
342
|
|
|
327
343
|
<li class="even ">
|
|
344
|
+
<div class="item">
|
|
345
|
+
<span class='object_link'><a href="Icinga2/Network.html#get_with_payload-class_method" title="Icinga2::Network.get_with_payload (method)">get_with_payload</a></span>
|
|
346
|
+
<small>Icinga2::Network</small>
|
|
347
|
+
</div>
|
|
348
|
+
</li>
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
<li class="odd ">
|
|
328
352
|
<div class="item">
|
|
329
353
|
<span class='object_link'><a href="Icinga2/Tools.html#handled_problems-instance_method" title="Icinga2::Tools#handled_problems (method)">#handled_problems</a></span>
|
|
330
354
|
<small>Icinga2::Tools</small>
|
|
@@ -332,7 +356,7 @@
|
|
|
332
356
|
</li>
|
|
333
357
|
|
|
334
358
|
|
|
335
|
-
<li class="
|
|
359
|
+
<li class="even ">
|
|
336
360
|
<div class="item">
|
|
337
361
|
<span class='object_link'><a href="Icinga2/Hosts.html#host_objects-instance_method" title="Icinga2::Hosts#host_objects (method)">#host_objects</a></span>
|
|
338
362
|
<small>Icinga2::Hosts</small>
|
|
@@ -340,7 +364,7 @@
|
|
|
340
364
|
</li>
|
|
341
365
|
|
|
342
366
|
|
|
343
|
-
<li class="
|
|
367
|
+
<li class="odd ">
|
|
344
368
|
<div class="item">
|
|
345
369
|
<span class='object_link'><a href="Icinga2/Hosts.html#host_problems-instance_method" title="Icinga2::Hosts#host_problems (method)">#host_problems</a></span>
|
|
346
370
|
<small>Icinga2::Hosts</small>
|
|
@@ -348,7 +372,7 @@
|
|
|
348
372
|
</li>
|
|
349
373
|
|
|
350
374
|
|
|
351
|
-
<li class="
|
|
375
|
+
<li class="even ">
|
|
352
376
|
<div class="item">
|
|
353
377
|
<span class='object_link'><a href="Icinga2/Hosts.html#host_severity-instance_method" title="Icinga2::Hosts#host_severity (method)">#host_severity</a></span>
|
|
354
378
|
<small>Icinga2::Hosts</small>
|
|
@@ -356,7 +380,7 @@
|
|
|
356
380
|
</li>
|
|
357
381
|
|
|
358
382
|
|
|
359
|
-
<li class="
|
|
383
|
+
<li class="odd ">
|
|
360
384
|
<div class="item">
|
|
361
385
|
<span class='object_link'><a href="Icinga2/Hostgroups.html#hostgroups-instance_method" title="Icinga2::Hostgroups#hostgroups (method)">#hostgroups</a></span>
|
|
362
386
|
<small>Icinga2::Hostgroups</small>
|
|
@@ -364,7 +388,7 @@
|
|
|
364
388
|
</li>
|
|
365
389
|
|
|
366
390
|
|
|
367
|
-
<li class="
|
|
391
|
+
<li class="even ">
|
|
368
392
|
<div class="item">
|
|
369
393
|
<span class='object_link'><a href="Icinga2/Hosts.html#hosts-instance_method" title="Icinga2::Hosts#hosts (method)">#hosts</a></span>
|
|
370
394
|
<small>Icinga2::Hosts</small>
|
|
@@ -372,7 +396,7 @@
|
|
|
372
396
|
</li>
|
|
373
397
|
|
|
374
398
|
|
|
375
|
-
<li class="
|
|
399
|
+
<li class="odd ">
|
|
376
400
|
<div class="item">
|
|
377
401
|
<span class='object_link'><a href="Icinga2/Client.html#hosts_acknowledged-instance_method" title="Icinga2::Client#hosts_acknowledged (method)">#hosts_acknowledged</a></span>
|
|
378
402
|
<small>Icinga2::Client</small>
|
|
@@ -380,7 +404,7 @@
|
|
|
380
404
|
</li>
|
|
381
405
|
|
|
382
406
|
|
|
383
|
-
<li class="
|
|
407
|
+
<li class="even ">
|
|
384
408
|
<div class="item">
|
|
385
409
|
<span class='object_link'><a href="Icinga2/Client.html#hosts_active_checks_1min-instance_method" title="Icinga2::Client#hosts_active_checks_1min (method)">#hosts_active_checks_1min</a></span>
|
|
386
410
|
<small>Icinga2::Client</small>
|
|
@@ -388,7 +412,7 @@
|
|
|
388
412
|
</li>
|
|
389
413
|
|
|
390
414
|
|
|
391
|
-
<li class="
|
|
415
|
+
<li class="odd ">
|
|
392
416
|
<div class="item">
|
|
393
417
|
<span class='object_link'><a href="Icinga2/Client.html#hosts_all-instance_method" title="Icinga2::Client#hosts_all (method)">#hosts_all</a></span>
|
|
394
418
|
<small>Icinga2::Client</small>
|
|
@@ -396,7 +420,7 @@
|
|
|
396
420
|
</li>
|
|
397
421
|
|
|
398
422
|
|
|
399
|
-
<li class="
|
|
423
|
+
<li class="even ">
|
|
400
424
|
<div class="item">
|
|
401
425
|
<span class='object_link'><a href="Icinga2/Client.html#hosts_down-instance_method" title="Icinga2::Client#hosts_down (method)">#hosts_down</a></span>
|
|
402
426
|
<small>Icinga2::Client</small>
|
|
@@ -404,7 +428,7 @@
|
|
|
404
428
|
</li>
|
|
405
429
|
|
|
406
430
|
|
|
407
|
-
<li class="
|
|
431
|
+
<li class="odd ">
|
|
408
432
|
<div class="item">
|
|
409
433
|
<span class='object_link'><a href="Icinga2/Client.html#hosts_down_adjusted-instance_method" title="Icinga2::Client#hosts_down_adjusted (method)">#hosts_down_adjusted</a></span>
|
|
410
434
|
<small>Icinga2::Client</small>
|
|
@@ -412,7 +436,7 @@
|
|
|
412
436
|
</li>
|
|
413
437
|
|
|
414
438
|
|
|
415
|
-
<li class="
|
|
439
|
+
<li class="even ">
|
|
416
440
|
<div class="item">
|
|
417
441
|
<span class='object_link'><a href="Icinga2/Client.html#hosts_handled_critical_problems-instance_method" title="Icinga2::Client#hosts_handled_critical_problems (method)">#hosts_handled_critical_problems</a></span>
|
|
418
442
|
<small>Icinga2::Client</small>
|
|
@@ -420,7 +444,7 @@
|
|
|
420
444
|
</li>
|
|
421
445
|
|
|
422
446
|
|
|
423
|
-
<li class="
|
|
447
|
+
<li class="odd ">
|
|
424
448
|
<div class="item">
|
|
425
449
|
<span class='object_link'><a href="Icinga2/Client.html#hosts_handled_problems-instance_method" title="Icinga2::Client#hosts_handled_problems (method)">#hosts_handled_problems</a></span>
|
|
426
450
|
<small>Icinga2::Client</small>
|
|
@@ -428,7 +452,7 @@
|
|
|
428
452
|
</li>
|
|
429
453
|
|
|
430
454
|
|
|
431
|
-
<li class="
|
|
455
|
+
<li class="even ">
|
|
432
456
|
<div class="item">
|
|
433
457
|
<span class='object_link'><a href="Icinga2/Client.html#hosts_handled_unknown_problems-instance_method" title="Icinga2::Client#hosts_handled_unknown_problems (method)">#hosts_handled_unknown_problems</a></span>
|
|
434
458
|
<small>Icinga2::Client</small>
|
|
@@ -436,7 +460,7 @@
|
|
|
436
460
|
</li>
|
|
437
461
|
|
|
438
462
|
|
|
439
|
-
<li class="
|
|
463
|
+
<li class="odd ">
|
|
440
464
|
<div class="item">
|
|
441
465
|
<span class='object_link'><a href="Icinga2/Client.html#hosts_handled_warning_problems-instance_method" title="Icinga2::Client#hosts_handled_warning_problems (method)">#hosts_handled_warning_problems</a></span>
|
|
442
466
|
<small>Icinga2::Client</small>
|
|
@@ -444,7 +468,7 @@
|
|
|
444
468
|
</li>
|
|
445
469
|
|
|
446
470
|
|
|
447
|
-
<li class="
|
|
471
|
+
<li class="even ">
|
|
448
472
|
<div class="item">
|
|
449
473
|
<span class='object_link'><a href="Icinga2/Client.html#hosts_in_downtime-instance_method" title="Icinga2::Client#hosts_in_downtime (method)">#hosts_in_downtime</a></span>
|
|
450
474
|
<small>Icinga2::Client</small>
|
|
@@ -452,7 +476,7 @@
|
|
|
452
476
|
</li>
|
|
453
477
|
|
|
454
478
|
|
|
455
|
-
<li class="
|
|
479
|
+
<li class="odd ">
|
|
456
480
|
<div class="item">
|
|
457
481
|
<span class='object_link'><a href="Icinga2/Client.html#hosts_passive_checks_1min-instance_method" title="Icinga2::Client#hosts_passive_checks_1min (method)">#hosts_passive_checks_1min</a></span>
|
|
458
482
|
<small>Icinga2::Client</small>
|
|
@@ -460,7 +484,7 @@
|
|
|
460
484
|
</li>
|
|
461
485
|
|
|
462
486
|
|
|
463
|
-
<li class="
|
|
487
|
+
<li class="even ">
|
|
464
488
|
<div class="item">
|
|
465
489
|
<span class='object_link'><a href="Icinga2/Client.html#hosts_problems-instance_method" title="Icinga2::Client#hosts_problems (method)">#hosts_problems</a></span>
|
|
466
490
|
<small>Icinga2::Client</small>
|
|
@@ -468,6 +492,14 @@
|
|
|
468
492
|
</li>
|
|
469
493
|
|
|
470
494
|
|
|
495
|
+
<li class="odd ">
|
|
496
|
+
<div class="item">
|
|
497
|
+
<span class='object_link'><a href="Icinga2/Client.html#hosts_problems_down-instance_method" title="Icinga2::Client#hosts_problems_down (method)">#hosts_problems_down</a></span>
|
|
498
|
+
<small>Icinga2::Client</small>
|
|
499
|
+
</div>
|
|
500
|
+
</li>
|
|
501
|
+
|
|
502
|
+
|
|
471
503
|
<li class="even ">
|
|
472
504
|
<div class="item">
|
|
473
505
|
<span class='object_link'><a href="Icinga2/Client.html#hosts_up-instance_method" title="Icinga2::Client#hosts_up (method)">#hosts_up</a></span>
|
|
@@ -765,6 +797,14 @@
|
|
|
765
797
|
|
|
766
798
|
|
|
767
799
|
<li class="odd ">
|
|
800
|
+
<div class="item">
|
|
801
|
+
<span class='object_link'><a href="Icinga2/Status.html#status_data-instance_method" title="Icinga2::Status#status_data (method)">#status_data</a></span>
|
|
802
|
+
<small>Icinga2::Status</small>
|
|
803
|
+
</div>
|
|
804
|
+
</li>
|
|
805
|
+
|
|
806
|
+
|
|
807
|
+
<li class="even ">
|
|
768
808
|
<div class="item">
|
|
769
809
|
<span class='object_link'><a href="Icinga2/Services.html#unhandled_services-instance_method" title="Icinga2::Services#unhandled_services (method)">#unhandled_services</a></span>
|
|
770
810
|
<small>Icinga2::Services</small>
|
|
@@ -772,7 +812,7 @@
|
|
|
772
812
|
</li>
|
|
773
813
|
|
|
774
814
|
|
|
775
|
-
<li class="
|
|
815
|
+
<li class="odd ">
|
|
776
816
|
<div class="item">
|
|
777
817
|
<span class='object_link'><a href="Icinga2/Services.html#update_host-instance_method" title="Icinga2::Services#update_host (method)">#update_host</a></span>
|
|
778
818
|
<small>Icinga2::Services</small>
|
|
@@ -780,7 +820,7 @@
|
|
|
780
820
|
</li>
|
|
781
821
|
|
|
782
822
|
|
|
783
|
-
<li class="
|
|
823
|
+
<li class="even ">
|
|
784
824
|
<div class="item">
|
|
785
825
|
<span class='object_link'><a href="Icinga2/Client.html#uptime-instance_method" title="Icinga2::Client#uptime (method)">#uptime</a></span>
|
|
786
826
|
<small>Icinga2::Client</small>
|
|
@@ -788,7 +828,7 @@
|
|
|
788
828
|
</li>
|
|
789
829
|
|
|
790
830
|
|
|
791
|
-
<li class="
|
|
831
|
+
<li class="odd ">
|
|
792
832
|
<div class="item">
|
|
793
833
|
<span class='object_link'><a href="Icinga2/Usergroups.html#usergroups-instance_method" title="Icinga2::Usergroups#usergroups (method)">#usergroups</a></span>
|
|
794
834
|
<small>Icinga2::Usergroups</small>
|
|
@@ -796,7 +836,7 @@
|
|
|
796
836
|
</li>
|
|
797
837
|
|
|
798
838
|
|
|
799
|
-
<li class="
|
|
839
|
+
<li class="even ">
|
|
800
840
|
<div class="item">
|
|
801
841
|
<span class='object_link'><a href="Icinga2/Users.html#users-instance_method" title="Icinga2::Users#users (method)">#users</a></span>
|
|
802
842
|
<small>Icinga2::Users</small>
|
|
@@ -804,7 +844,7 @@
|
|
|
804
844
|
</li>
|
|
805
845
|
|
|
806
846
|
|
|
807
|
-
<li class="
|
|
847
|
+
<li class="odd ">
|
|
808
848
|
<div class="item">
|
|
809
849
|
<span class='object_link'><a href="Icinga2/Client.html#version-instance_method" title="Icinga2::Client#version (method)">#version</a></span>
|
|
810
850
|
<small>Icinga2::Client</small>
|
|
@@ -812,6 +852,14 @@
|
|
|
812
852
|
</li>
|
|
813
853
|
|
|
814
854
|
|
|
855
|
+
<li class="even ">
|
|
856
|
+
<div class="item">
|
|
857
|
+
<span class='object_link'><a href="Icinga2/Status.html#work_queue_statistics-instance_method" title="Icinga2::Status#work_queue_statistics (method)">#work_queue_statistics</a></span>
|
|
858
|
+
<small>Icinga2::Status</small>
|
|
859
|
+
</div>
|
|
860
|
+
</li>
|
|
861
|
+
|
|
862
|
+
|
|
815
863
|
|
|
816
864
|
</ul>
|
|
817
865
|
</div>
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
</div>
|
|
101
101
|
|
|
102
102
|
<div id="footer">
|
|
103
|
-
Generated on
|
|
103
|
+
Generated on Wed Jun 28 05:55:20 2017 by
|
|
104
104
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
105
105
|
0.9.9 (ruby-2.3.4).
|
|
106
106
|
</div>
|
data/examples/test.rb
CHANGED
|
@@ -53,38 +53,40 @@ unless( i.nil? )
|
|
|
53
53
|
puts ''
|
|
54
54
|
puts 'API Listener'
|
|
55
55
|
puts i.api_listener
|
|
56
|
-
puts ''
|
|
57
56
|
|
|
57
|
+
puts ''
|
|
58
58
|
puts format( 'version: %s, revision %s', i.version, i.revision )
|
|
59
59
|
puts format( 'start time: %s', i.start_time )
|
|
60
60
|
puts format( 'uptime: %s', i.uptime )
|
|
61
|
+
|
|
61
62
|
puts ''
|
|
62
|
-
puts format( 'all hosts: %d', i.hosts_all )
|
|
63
|
-
puts format( 'host down %d', i.hosts_down )
|
|
64
|
-
puts format( 'hosts
|
|
65
|
-
|
|
66
|
-
puts format( 'hosts handled unknown problems: %d', i.hosts_handled_unknown_problems )
|
|
63
|
+
puts format( 'count of all hosts: %d', i.hosts_all )
|
|
64
|
+
puts format( 'host down: %d', i.hosts_down )
|
|
65
|
+
puts format( 'hosts problems down: %d', i.hosts_problems_down )
|
|
66
|
+
|
|
67
67
|
puts ''
|
|
68
|
-
puts format( 'all services: %d', i.services_all )
|
|
69
|
-
puts format( 'services critical %d', i.services_critical)
|
|
70
|
-
puts format( 'services warning %d', i.services_warning)
|
|
71
|
-
puts format( 'services unknown %d', i.services_unknown)
|
|
72
|
-
puts
|
|
73
|
-
puts format( 'services handled
|
|
74
|
-
puts format( 'services handled
|
|
75
|
-
puts format( 'services
|
|
76
|
-
puts
|
|
77
|
-
puts format( 'services adjusted
|
|
68
|
+
puts format( 'count of all services: %d', i.services_all )
|
|
69
|
+
puts format( 'services critical: %d', i.services_critical)
|
|
70
|
+
puts format( 'services warning: %d', i.services_warning)
|
|
71
|
+
puts format( 'services unknown: %d', i.services_unknown)
|
|
72
|
+
puts ''
|
|
73
|
+
puts format( 'services handled warning problems: %d', i.services_handled_warning_problems)
|
|
74
|
+
puts format( 'services handled critical problems: %d', i.services_handled_critical_problems)
|
|
75
|
+
puts format( 'services handled unknown problems: %d', i.services_handled_unknown_problems)
|
|
76
|
+
puts ''
|
|
77
|
+
puts format( 'services adjusted critical: %d', i.services_critical_adjusted)
|
|
78
|
+
puts format( 'services adjusted warning: %d', i.services_warning_adjusted)
|
|
79
|
+
puts format( 'services adjusted unknown: %d', i.services_unknown_adjusted)
|
|
78
80
|
puts ''
|
|
79
81
|
|
|
80
82
|
puts 'check if Host \'icinga2\' exists'
|
|
81
83
|
puts i.exists_host?( 'icinga2' ) ? 'true' : 'false'
|
|
82
84
|
puts ''
|
|
83
85
|
puts 'get host Objects'
|
|
84
|
-
puts i.
|
|
86
|
+
puts i.host_objects
|
|
85
87
|
puts ''
|
|
86
88
|
puts 'Host problems'
|
|
87
|
-
puts i.
|
|
89
|
+
puts i.host_problems
|
|
88
90
|
puts ''
|
|
89
91
|
puts 'Problem Hosts'
|
|
90
92
|
puts i.problem_hosts
|
|
@@ -117,13 +119,14 @@ unless( i.nil? )
|
|
|
117
119
|
puts i.exists_service?( host: 'icinga2', service: 'users' ) ? 'true' : 'false'
|
|
118
120
|
puts ''
|
|
119
121
|
puts 'get service Objects'
|
|
120
|
-
puts i.
|
|
122
|
+
puts i.service_objects
|
|
121
123
|
puts ''
|
|
122
124
|
puts 'Service problems'
|
|
123
|
-
puts i.
|
|
125
|
+
puts i.service_problems
|
|
124
126
|
puts ''
|
|
125
127
|
puts 'Problem Services'
|
|
126
|
-
|
|
128
|
+
a,_b = i.problem_services
|
|
129
|
+
puts a
|
|
127
130
|
puts ''
|
|
128
131
|
puts i.problem_services(10)
|
|
129
132
|
puts ''
|
|
@@ -192,24 +195,27 @@ unless( i.nil? )
|
|
|
192
195
|
puts i.notifications
|
|
193
196
|
puts ''
|
|
194
197
|
puts 'enable Notifications for host'
|
|
195
|
-
puts i.
|
|
198
|
+
puts i.enable_host_notification( 'icinga2' )
|
|
196
199
|
puts ''
|
|
197
200
|
puts 'disable Notifications for host'
|
|
198
|
-
puts i.
|
|
201
|
+
puts i.disable_host_notification( 'icinga2' )
|
|
199
202
|
puts ''
|
|
200
203
|
puts 'enable Notifications for host and services'
|
|
201
|
-
puts i.
|
|
204
|
+
puts i.enable_service_notification('icinga2')
|
|
202
205
|
puts ''
|
|
203
206
|
puts 'disable Notifications for host and services'
|
|
204
|
-
puts i.
|
|
207
|
+
puts i.disable_service_notification( 'icinga2' )
|
|
205
208
|
puts ''
|
|
206
209
|
puts 'enable Notifications for hostgroup'
|
|
207
|
-
puts i.enable_hostgroup_notification( host: 'icinga2',
|
|
210
|
+
puts i.enable_hostgroup_notification( host: 'icinga2', host_group: 'linux-servers')
|
|
208
211
|
puts ''
|
|
209
212
|
puts 'disable Notifications for hostgroup'
|
|
210
|
-
puts i.disable_hostgroup_notification( host: 'icinga2',
|
|
213
|
+
puts i.disable_hostgroup_notification( host: 'icinga2', host_group: 'linux-servers')
|
|
211
214
|
puts ''
|
|
212
215
|
|
|
216
|
+
puts 'work queue statistics'
|
|
217
|
+
puts i.work_queue_statistics
|
|
218
|
+
|
|
213
219
|
end
|
|
214
220
|
|
|
215
221
|
# -----------------------------------------------------------------------------
|
data/lib/icinga2/hosts.rb
CHANGED
|
@@ -224,7 +224,7 @@ module Icinga2
|
|
|
224
224
|
data = JSON.parse(data) if data.is_a?(String)
|
|
225
225
|
nodes = data.dig(:nodes)
|
|
226
226
|
|
|
227
|
-
unless
|
|
227
|
+
unless( nodes.nil? )
|
|
228
228
|
|
|
229
229
|
nodes.each do |n|
|
|
230
230
|
|
|
@@ -261,7 +261,7 @@ module Icinga2
|
|
|
261
261
|
host_data = JSON.parse( host_data ) if host_data.is_a?(String)
|
|
262
262
|
host_data = host_data.dig(:nodes)
|
|
263
263
|
|
|
264
|
-
unless
|
|
264
|
+
unless( host_data.nil? )
|
|
265
265
|
|
|
266
266
|
host_data.each do |_host,v|
|
|
267
267
|
|
data/lib/icinga2/network.rb
CHANGED
|
@@ -49,13 +49,8 @@ module Icinga2
|
|
|
49
49
|
result[:data] ||={}
|
|
50
50
|
|
|
51
51
|
results.each do |r|
|
|
52
|
-
|
|
53
|
-
# puts JSON.pretty_generate r
|
|
54
|
-
# name = r.dig('name')
|
|
55
52
|
attrs = r.dig('attrs')
|
|
56
|
-
|
|
57
53
|
if( !attrs.nil? )
|
|
58
|
-
|
|
59
54
|
result[:data][attrs['name']] = {
|
|
60
55
|
name: attrs['name'],
|
|
61
56
|
display_name: attrs['display_name'],
|
|
@@ -90,11 +85,11 @@ module Icinga2
|
|
|
90
85
|
sleep( 4 )
|
|
91
86
|
retry
|
|
92
87
|
else
|
|
93
|
-
$stderr.puts( '
|
|
88
|
+
$stderr.puts(format( "Maximum retries (%d) against '%s' reached. Giving up ...", max_retries, url ))
|
|
94
89
|
|
|
95
90
|
return {
|
|
96
91
|
status: 500,
|
|
97
|
-
message: format(
|
|
92
|
+
message: format( "Maximum retries (%d) against '%s' reached. Giving up ...", max_retries, url )
|
|
98
93
|
}
|
|
99
94
|
end
|
|
100
95
|
end
|
|
@@ -102,6 +97,90 @@ module Icinga2
|
|
|
102
97
|
result
|
|
103
98
|
end
|
|
104
99
|
|
|
100
|
+
# static function for GET Requests without filters
|
|
101
|
+
#
|
|
102
|
+
# @param [Hash] params
|
|
103
|
+
# @option params [String] :host
|
|
104
|
+
# @option params [String] :url
|
|
105
|
+
# @option params [String] :headers
|
|
106
|
+
# @option params [String] :options
|
|
107
|
+
# @option params [Hash] :payload
|
|
108
|
+
#
|
|
109
|
+
#
|
|
110
|
+
# @return [Hash]
|
|
111
|
+
#
|
|
112
|
+
def self.get_raw( params = {} )
|
|
113
|
+
|
|
114
|
+
host = params.dig(:host)
|
|
115
|
+
url = params.dig(:url)
|
|
116
|
+
headers = params.dig(:headers)
|
|
117
|
+
options = params.dig(:options)
|
|
118
|
+
payload = params.dig(:payload) || {}
|
|
119
|
+
result = {}
|
|
120
|
+
max_retries = 30
|
|
121
|
+
times_retried = 0
|
|
122
|
+
|
|
123
|
+
return get_with_payload( params ) if payload.count >= 1
|
|
124
|
+
|
|
125
|
+
headers.delete( 'X-HTTP-Method-Override' )
|
|
126
|
+
|
|
127
|
+
result = {}
|
|
128
|
+
|
|
129
|
+
rest_client = RestClient::Resource.new(
|
|
130
|
+
URI.encode( url ),
|
|
131
|
+
options
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
begin
|
|
135
|
+
|
|
136
|
+
data = rest_client.get( headers )
|
|
137
|
+
results = JSON.parse( data.body )
|
|
138
|
+
results = results.dig('results')
|
|
139
|
+
|
|
140
|
+
result[:status] = 200
|
|
141
|
+
result[:data] ||={}
|
|
142
|
+
|
|
143
|
+
results.each do |r|
|
|
144
|
+
|
|
145
|
+
r.reject! { |x| x == 'perfdata' }
|
|
146
|
+
result[:data][r.dig('name')] = r.dig('status')
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
rescue RestClient::ExceptionWithResponse => e
|
|
150
|
+
|
|
151
|
+
error = e.response ? e.response : nil
|
|
152
|
+
error = JSON.parse( error )
|
|
153
|
+
|
|
154
|
+
result = {
|
|
155
|
+
status: error['error'].to_i,
|
|
156
|
+
name: host,
|
|
157
|
+
message: error['status']
|
|
158
|
+
}
|
|
159
|
+
rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH => e
|
|
160
|
+
|
|
161
|
+
if( times_retried < max_retries )
|
|
162
|
+
|
|
163
|
+
times_retried += 1
|
|
164
|
+
$stderr.puts(format( 'Cannot execute request %s', url ))
|
|
165
|
+
$stderr.puts(format( ' cause: %s', e ))
|
|
166
|
+
$stderr.puts(format( ' retry %d / %d', times_retried, max_retries ))
|
|
167
|
+
|
|
168
|
+
sleep( 4 )
|
|
169
|
+
retry
|
|
170
|
+
else
|
|
171
|
+
$stderr.puts(format( "Maximum retries (%d) against '%s' reached. Giving up ...", max_retries, url ))
|
|
172
|
+
|
|
173
|
+
return {
|
|
174
|
+
status: 500,
|
|
175
|
+
message: format( "Maximum retries (%d) against '%s' reached. Giving up ...", max_retries, url )
|
|
176
|
+
}
|
|
177
|
+
end
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
result
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
|
|
105
184
|
# static function for GET Requests with payload
|
|
106
185
|
# internal we use here an POST Request and overwrite a http header
|
|
107
186
|
#
|
data/lib/icinga2/services.rb
CHANGED
|
@@ -145,7 +145,7 @@ module Icinga2
|
|
|
145
145
|
payload = {}
|
|
146
146
|
|
|
147
147
|
if( attrs.nil? )
|
|
148
|
-
attrs = [
|
|
148
|
+
attrs = %w[name state acknowledgement downtime_depth last_check]
|
|
149
149
|
end
|
|
150
150
|
|
|
151
151
|
if( joins.nil? )
|
|
@@ -179,7 +179,8 @@ module Icinga2
|
|
|
179
179
|
data = JSON.parse(data) if data.is_a?(String)
|
|
180
180
|
nodes = data.dig(:nodes)
|
|
181
181
|
|
|
182
|
-
unless
|
|
182
|
+
unless( nodes.nil? )
|
|
183
|
+
|
|
183
184
|
nodes.each do |n|
|
|
184
185
|
attrs = n.last.dig('attrs')
|
|
185
186
|
state = attrs.dig('state') || 0
|
|
@@ -205,8 +206,8 @@ module Icinga2
|
|
|
205
206
|
#
|
|
206
207
|
def problem_services( max_items = 5 )
|
|
207
208
|
|
|
208
|
-
|
|
209
|
-
|
|
209
|
+
service_problems = {}
|
|
210
|
+
service_problems_severity = {}
|
|
210
211
|
|
|
211
212
|
# only fetch the minimal attribute set required for severity calculation
|
|
212
213
|
services_data = service_objects
|
|
@@ -217,7 +218,7 @@ module Icinga2
|
|
|
217
218
|
|
|
218
219
|
services_data = services_data.dig(:nodes)
|
|
219
220
|
|
|
220
|
-
unless
|
|
221
|
+
unless( services_data.nil? )
|
|
221
222
|
|
|
222
223
|
services_data.each do |_service,v|
|
|
223
224
|
|
|
@@ -225,13 +226,14 @@ module Icinga2
|
|
|
225
226
|
state = v.dig('attrs','state')
|
|
226
227
|
next if state.zero?
|
|
227
228
|
|
|
228
|
-
|
|
229
|
+
service_problems[name] = service_severity(v)
|
|
229
230
|
end
|
|
230
231
|
|
|
231
|
-
|
|
232
|
-
|
|
232
|
+
service_problems.sort.reverse!
|
|
233
|
+
service_problems = service_problems.keys[1..max_items].each { |k,_v| service_problems_severity[k] = service_problems[k] }
|
|
233
234
|
end
|
|
234
|
-
|
|
235
|
+
|
|
236
|
+
[service_problems, service_problems_severity]
|
|
235
237
|
end
|
|
236
238
|
|
|
237
239
|
# update host
|
data/lib/icinga2/status.rb
CHANGED
|
@@ -19,7 +19,6 @@ module Icinga2
|
|
|
19
19
|
url: format( '%s/v1/status/IcingaApplication', @icinga_api_url_base ),
|
|
20
20
|
headers: @headers,
|
|
21
21
|
options: @options)
|
|
22
|
-
|
|
23
22
|
end
|
|
24
23
|
|
|
25
24
|
# return Icinga2 CIB
|
|
@@ -38,6 +37,22 @@ module Icinga2
|
|
|
38
37
|
|
|
39
38
|
end
|
|
40
39
|
|
|
40
|
+
#
|
|
41
|
+
#
|
|
42
|
+
#
|
|
43
|
+
def status_data
|
|
44
|
+
|
|
45
|
+
data = Network.get_raw(host: nil,
|
|
46
|
+
url: format( '%s/v1/status', @icinga_api_url_base ),
|
|
47
|
+
headers: @headers,
|
|
48
|
+
options: @options)
|
|
49
|
+
|
|
50
|
+
return nil unless data.dig(:status) != 200
|
|
51
|
+
|
|
52
|
+
data.dig('results')
|
|
53
|
+
|
|
54
|
+
end
|
|
55
|
+
|
|
41
56
|
# return Icinga2 API Listener
|
|
42
57
|
#
|
|
43
58
|
# @example
|
|
@@ -54,6 +69,47 @@ module Icinga2
|
|
|
54
69
|
|
|
55
70
|
end
|
|
56
71
|
|
|
72
|
+
# return queue statistics from the api
|
|
73
|
+
#
|
|
74
|
+
# @example
|
|
75
|
+
# @icinga.work_queue_statistics
|
|
76
|
+
#
|
|
77
|
+
# @return [Hash]
|
|
78
|
+
#
|
|
79
|
+
def work_queue_statistics
|
|
80
|
+
|
|
81
|
+
stats = {}
|
|
82
|
+
data = Network.get_raw(host: nil,
|
|
83
|
+
url: format( '%s/v1/status', @icinga_api_url_base ),
|
|
84
|
+
headers: @headers,
|
|
85
|
+
options: @options)
|
|
86
|
+
|
|
87
|
+
return stats if data.nil?
|
|
88
|
+
|
|
89
|
+
data = data.dig(:data)
|
|
90
|
+
|
|
91
|
+
a = {
|
|
92
|
+
'json-rpc' => data.dig('ApiListener', 'api', 'json_rpc'),
|
|
93
|
+
'graphite' => data.dig('GraphiteWriter', 'graphitewriter', 'graphite'),
|
|
94
|
+
'ido-mysql' => data.dig('IdoMysqlConnection', 'idomysqlconnection', 'ido-mysql')
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
key_list = %w[work_queue_item_rate query_queue_item_rate]
|
|
98
|
+
|
|
99
|
+
a.each do |k,v|
|
|
100
|
+
key_list.each do |key|
|
|
101
|
+
if( v.include?( key ))
|
|
102
|
+
attr_name = format('%s queue rate', k)
|
|
103
|
+
stats[attr_name] = v[key].to_f.round(3)
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
stats
|
|
109
|
+
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
|
|
57
113
|
# extract many datas from application_data and cib_data
|
|
58
114
|
# and store them in global variables
|
|
59
115
|
#
|
|
@@ -65,7 +121,7 @@ module Icinga2
|
|
|
65
121
|
|
|
66
122
|
a_data = a_data.dig('status','icingaapplication','app')
|
|
67
123
|
|
|
68
|
-
|
|
124
|
+
unless( a_data.nil? )
|
|
69
125
|
|
|
70
126
|
# extract
|
|
71
127
|
# - version
|
|
@@ -85,7 +141,7 @@ module Icinga2
|
|
|
85
141
|
|
|
86
142
|
c_data = c_data.dig('status')
|
|
87
143
|
|
|
88
|
-
|
|
144
|
+
unless( c_data.nil? )
|
|
89
145
|
|
|
90
146
|
# extract
|
|
91
147
|
# - uptime
|
|
@@ -107,14 +163,12 @@ module Icinga2
|
|
|
107
163
|
|
|
108
164
|
@hosts_all = all_hosts.size
|
|
109
165
|
@hosts_problems = host_problems
|
|
110
|
-
@
|
|
111
|
-
@hosts_handled_critical_problems = handled_problems(all_hosts, Icinga2::HANDLED_CRITICAL)
|
|
112
|
-
@hosts_handled_unknown_problems = handled_problems(all_hosts, Icinga2::HANDLED_UNKNOWN)
|
|
166
|
+
@hosts_problems_down = handled_problems(h_objects, Icinga2::HOSTS_DOWN)
|
|
113
167
|
|
|
114
168
|
# calculate host problems adjusted by handled problems
|
|
115
169
|
# count togther handled host problems
|
|
116
|
-
|
|
117
|
-
|
|
170
|
+
# @hosts_handled_problems = @hosts_handled_warning_problems + @hosts_handled_critical_problems + @hosts_handled_unknown_problems
|
|
171
|
+
# @hosts_down_adjusted = @hosts_down - @hosts_handled_problems
|
|
118
172
|
|
|
119
173
|
# - services
|
|
120
174
|
@services_ok = c_data.dig('num_services_ok').to_i
|
|
@@ -129,9 +183,9 @@ module Icinga2
|
|
|
129
183
|
|
|
130
184
|
@services_all = all_services.size
|
|
131
185
|
@services_problems = service_problems
|
|
132
|
-
@services_handled_warning_problems = handled_problems(
|
|
133
|
-
@services_handled_critical_problems = handled_problems(
|
|
134
|
-
@services_handled_unknown_problems = handled_problems(
|
|
186
|
+
@services_handled_warning_problems = handled_problems(s_objects, Icinga2::SERVICE_STATE_WARNING)
|
|
187
|
+
@services_handled_critical_problems = handled_problems(s_objects, Icinga2::SERVICE_STATE_CRITICAL)
|
|
188
|
+
@services_handled_unknown_problems = handled_problems(s_objects, Icinga2::SERVICE_STATE_UNKNOWN)
|
|
135
189
|
|
|
136
190
|
# calculate service problems adjusted by handled problems
|
|
137
191
|
@services_warning_adjusted = @services_warning - @services_handled_warning_problems
|
|
@@ -144,6 +198,8 @@ module Icinga2
|
|
|
144
198
|
@hosts_passive_checks_1min = c_data.dig('passive_host_checks_1min')
|
|
145
199
|
@services_active_checks_1min = c_data.dig('active_service_checks_1min')
|
|
146
200
|
@services_passive_checks_1min = c_data.dig('passive_service_checks_1min')
|
|
201
|
+
|
|
202
|
+
@service_problems, @service_problems_severity = problem_services
|
|
147
203
|
end
|
|
148
204
|
end
|
|
149
205
|
end
|
data/lib/icinga2/tools.rb
CHANGED
|
@@ -50,17 +50,13 @@ module Icinga2
|
|
|
50
50
|
#
|
|
51
51
|
# @example for host objects
|
|
52
52
|
# h_objects = @icinga.host_objects
|
|
53
|
-
#
|
|
54
|
-
# warning = @icinga.handled_problems(all_hosts, Icinga2::HANDLED_WARNING)
|
|
55
|
-
# critical = @icinga.handled_problems(all_hosts, Icinga2::HANDLED_CRITICAL)
|
|
56
|
-
# unknown = @icinga.handled_problems(all_hosts, Icinga2::HANDLED_UNKNOWN)
|
|
53
|
+
# warning = @icinga.handled_problems(h_objects, Icinga2::HOSTS_DOWN)
|
|
57
54
|
#
|
|
58
55
|
# @example for service objects
|
|
59
56
|
# s_objects = @icinga.service_objects
|
|
60
|
-
#
|
|
61
|
-
#
|
|
62
|
-
#
|
|
63
|
-
# unknown = @icinga.handled_problems(all_services, Icinga2::HANDLED_UNKNOWN)
|
|
57
|
+
# warning = @icinga.handled_problems(s_objects, Icinga2::SERVICE_STATE_WARNING)
|
|
58
|
+
# critical = @icinga.handled_problems(s_objects, Icinga2::SERVICE_STATE_CRITICAL)
|
|
59
|
+
# unknown = @icinga.handled_problems(s_objects, Icinga2::SERVICE_STATE_UNKNOWN)
|
|
64
60
|
#
|
|
65
61
|
# @return [Integer]
|
|
66
62
|
#
|
|
@@ -69,9 +65,9 @@ module Icinga2
|
|
|
69
65
|
problems = 0
|
|
70
66
|
|
|
71
67
|
objects = JSON.parse(objects) if objects.is_a?(String)
|
|
72
|
-
nodes
|
|
68
|
+
nodes = objects.dig(:nodes)
|
|
73
69
|
|
|
74
|
-
unless
|
|
70
|
+
unless( nodes.nil? )
|
|
75
71
|
|
|
76
72
|
nodes.each do |n|
|
|
77
73
|
|
data/lib/icinga2/version.rb
CHANGED
data/lib/icinga2.rb
CHANGED
|
@@ -31,12 +31,15 @@ require_relative 'icinga2/usergroups'
|
|
|
31
31
|
# Namespace for classes and modules that handle all Icinga2 API calls
|
|
32
32
|
module Icinga2
|
|
33
33
|
|
|
34
|
+
# static variable for hosts down
|
|
35
|
+
HOSTS_DOWN = 1
|
|
36
|
+
|
|
34
37
|
# static variables for handled warning
|
|
35
|
-
|
|
38
|
+
SERVICE_STATE_WARNING = 1
|
|
36
39
|
# static variables for handled critical
|
|
37
|
-
|
|
40
|
+
SERVICE_STATE_CRITICAL = 2
|
|
38
41
|
# static variables for handled unknown
|
|
39
|
-
|
|
42
|
+
SERVICE_STATE_UNKNOWN = 3
|
|
40
43
|
|
|
41
44
|
# Abstract base class for the API calls.
|
|
42
45
|
# Provides some helper methods
|
|
@@ -48,7 +51,7 @@ module Icinga2
|
|
|
48
51
|
attr_reader :version, :revision, :node_name, :start_time, :uptime
|
|
49
52
|
attr_reader :avg_latency, :avg_execution_time
|
|
50
53
|
attr_reader :hosts_up, :hosts_down, :hosts_in_downtime, :hosts_acknowledged
|
|
51
|
-
attr_reader :hosts_all, :hosts_problems, :hosts_handled_warning_problems, :hosts_handled_critical_problems, :hosts_handled_unknown_problems
|
|
54
|
+
attr_reader :hosts_all, :hosts_problems, :hosts_problems_down, :hosts_handled_warning_problems, :hosts_handled_critical_problems, :hosts_handled_unknown_problems
|
|
52
55
|
attr_reader :hosts_handled_problems, :hosts_down_adjusted
|
|
53
56
|
|
|
54
57
|
attr_reader :services_ok, :services_warning, :services_critical, :services_unknown, :services_in_downtime, :services_acknowledged
|
|
@@ -56,8 +59,6 @@ module Icinga2
|
|
|
56
59
|
attr_reader :services_warning_adjusted, :services_critical_adjusted, :services_unknown_adjusted
|
|
57
60
|
attr_reader :hosts_active_checks_1min, :hosts_passive_checks_1min, :services_active_checks_1min, :services_passive_checks_1min
|
|
58
61
|
|
|
59
|
-
|
|
60
|
-
|
|
61
62
|
include Logging
|
|
62
63
|
|
|
63
64
|
include Icinga2::Version
|