icinga2 0.9.2.1 → 0.9.2.8
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/README.md +25 -22
- data/doc/Array.html +4 -6
- data/doc/Boolean.html +4 -6
- data/doc/FalseClass.html +4 -6
- data/doc/Hash.html +126 -8
- data/doc/Icinga2.html +7 -9
- data/doc/Logging.html +5 -7
- data/doc/Object.html +8 -10
- data/doc/Time.html +4 -6
- data/doc/TrueClass.html +4 -6
- data/doc/_index.html +20 -7
- data/doc/class_list.html +1 -1
- data/doc/file.README.html +32 -30
- data/doc/frames.html +1 -1
- data/doc/index.html +32 -30
- data/doc/method_list.html +34 -2
- data/doc/services.md +45 -62
- data/doc/top-level-namespace.html +4 -6
- data/examples/_blank.rb +2 -2
- data/examples/config.rb +23 -0
- data/examples/downtimes.rb +4 -33
- data/examples/hostgroups.rb +4 -33
- data/examples/hosts.rb +18 -33
- data/examples/informations.rb +4 -33
- data/examples/notifications.rb +4 -33
- data/examples/servicegroups.rb +4 -25
- data/examples/services.rb +46 -67
- data/examples/statistics.rb +4 -33
- data/examples/test.rb +7 -28
- data/examples/usergroups.rb +4 -33
- data/examples/users.rb +4 -33
- data/lib/icinga2/client.rb +16 -42
- data/lib/icinga2/converts.rb +16 -54
- data/lib/icinga2/downtimes.rb +46 -44
- data/lib/icinga2/hostgroups.rb +35 -35
- data/lib/icinga2/hosts.rb +235 -228
- data/lib/icinga2/network.rb +53 -125
- data/lib/icinga2/notifications.rb +37 -46
- data/lib/icinga2/servicegroups.rb +31 -41
- data/lib/icinga2/services.rb +211 -236
- data/lib/icinga2/tools.rb +10 -9
- data/lib/icinga2/usergroups.rb +22 -32
- data/lib/icinga2/users.rb +64 -59
- data/lib/icinga2/validator.rb +59 -0
- data/lib/icinga2/version.rb +1 -1
- metadata +78 -7
- data/lib/icinga2/network.rb-SAVE +0 -1004
data/doc/method_list.html
CHANGED
@@ -132,6 +132,22 @@
|
|
132
132
|
</li>
|
133
133
|
|
134
134
|
|
135
|
+
<li class="even ">
|
136
|
+
<div class="item">
|
137
|
+
<span class='object_link'><a href="Hash.html#assert_required_keys-instance_method" title="Hash#assert_required_keys (method)">#assert_required_keys</a></span>
|
138
|
+
<small>Hash</small>
|
139
|
+
</div>
|
140
|
+
</li>
|
141
|
+
|
142
|
+
|
143
|
+
<li class="odd ">
|
144
|
+
<div class="item">
|
145
|
+
<span class='object_link'><a href="Hash.html#assert_valid_keys-instance_method" title="Hash#assert_valid_keys (method)">#assert_valid_keys</a></span>
|
146
|
+
<small>Hash</small>
|
147
|
+
</div>
|
148
|
+
</li>
|
149
|
+
|
150
|
+
|
135
151
|
<li class="even ">
|
136
152
|
<div class="item">
|
137
153
|
<span class='object_link'><a href="Icinga2/Client.html#available%3F-instance_method" title="Icinga2::Client#available? (method)">#available?</a></span>
|
@@ -646,7 +662,7 @@
|
|
646
662
|
|
647
663
|
<li class="even ">
|
648
664
|
<div class="item">
|
649
|
-
<span class='object_link'><a href="Icinga2/Converts.html#state_to_color-
|
665
|
+
<span class='object_link'><a href="Icinga2/Converts.html#state_to_color-instance_method" title="Icinga2::Converts#state_to_color (method)">#state_to_color</a></span>
|
650
666
|
<small>Icinga2::Converts</small>
|
651
667
|
</div>
|
652
668
|
</li>
|
@@ -654,7 +670,7 @@
|
|
654
670
|
|
655
671
|
<li class="odd ">
|
656
672
|
<div class="item">
|
657
|
-
<span class='object_link'><a href="Icinga2/Converts.html#state_to_string-
|
673
|
+
<span class='object_link'><a href="Icinga2/Converts.html#state_to_string-instance_method" title="Icinga2::Converts#state_to_string (method)">#state_to_string</a></span>
|
658
674
|
<small>Icinga2::Converts</small>
|
659
675
|
</div>
|
660
676
|
</li>
|
@@ -700,6 +716,22 @@
|
|
700
716
|
</li>
|
701
717
|
|
702
718
|
|
719
|
+
<li class="odd ">
|
720
|
+
<div class="item">
|
721
|
+
<span class='object_link'><a href="Icinga2/Validator.html#validate-instance_method" title="Icinga2::Validator#validate (method)">#validate</a></span>
|
722
|
+
<small>Icinga2::Validator</small>
|
723
|
+
</div>
|
724
|
+
</li>
|
725
|
+
|
726
|
+
|
727
|
+
<li class="even ">
|
728
|
+
<div class="item">
|
729
|
+
<span class='object_link'><a href="Icinga2/Validator.html#validate_options!-instance_method" title="Icinga2::Validator#validate_options! (method)">#validate_options!</a></span>
|
730
|
+
<small>Icinga2::Validator</small>
|
731
|
+
</div>
|
732
|
+
</li>
|
733
|
+
|
734
|
+
|
703
735
|
<li class="odd ">
|
704
736
|
<div class="item">
|
705
737
|
<span class='object_link'><a href="Icinga2/Client.html#version-instance_method" title="Icinga2::Client#version (method)">#version</a></span>
|
data/doc/services.md
CHANGED
@@ -7,26 +7,36 @@ Add a Service to Icinga2
|
|
7
7
|
|
8
8
|
`params` is an `Hash` with following Parameters:
|
9
9
|
|
10
|
-
| Parameter
|
11
|
-
| :--------------------
|
12
|
-
| `host_name`
|
13
|
-
| `name`
|
14
|
-
| `
|
15
|
-
| `
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
|
23
|
-
|
|
24
|
-
| `
|
25
|
-
| `
|
26
|
-
| `
|
27
|
-
| `
|
28
|
-
|
29
|
-
|
10
|
+
| Parameter | Type | Example | Description
|
11
|
+
| :-------------------- | :-----: | :----- | :-----------
|
12
|
+
| `host_name` | String | `foo` | existing Host for these Service
|
13
|
+
| `name` | String | `ping4` | Service Name they will be create
|
14
|
+
| `display_name` | String | `ping4 check` | displayed Name
|
15
|
+
| `templates` | Array | `['own-service']` | (optional) a Array of templates (default: `['generic-service']`)
|
16
|
+
| `check_command` | String | `ping4` | The Check Command to execute (**Importand** This Check-Comand must be exists! Otherwise an error will occur)
|
17
|
+
| `check_interval` | Integer | `10` | The check Interval
|
18
|
+
| `retry_interval` | Integer | `30` | The retry Interval
|
19
|
+
| `notes` | String | `` |
|
20
|
+
| `notes_url` | String | `` |
|
21
|
+
| `action_url` | String | `` |
|
22
|
+
| `check_period` | String | `` |
|
23
|
+
| `check_timeout` | Integer | `` |
|
24
|
+
| `command_endpoint` | String | `` |
|
25
|
+
| `enable_active_checks` | Bool | `` |
|
26
|
+
| `enable_event_handler` | Bool | `` |
|
27
|
+
| `enable_flapping` | Bool | `` |
|
28
|
+
| `enable_notifications` | Bool | `` |
|
29
|
+
| `enable_passive_checks` | Bool | `` |
|
30
|
+
| `enable_perfdata` | Bool | `` |
|
31
|
+
| `event_command` | String | `` |
|
32
|
+
| `flapping_threshold_high`| Integer | `` |
|
33
|
+
| `flapping_threshold_low` | Integer | `` |
|
34
|
+
| `flapping_threshold` | Integer | `` |
|
35
|
+
| `icon_image_alt` | String | `` |
|
36
|
+
| `icon_image` | String | `` |
|
37
|
+
| `max_check_attempts` | Integer | `` |
|
38
|
+
| `volatile` | Bool | `` |
|
39
|
+
| `vars` | Hash | (see below) | optional config params for the `check_command`
|
30
40
|
|
31
41
|
The result are an `Hash`
|
32
42
|
|
@@ -35,13 +45,9 @@ The result are an `Hash`
|
|
35
45
|
@icinga.add_services(
|
36
46
|
host_name: 'foo',
|
37
47
|
name: 'ping4',
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
check_interval: 10,
|
42
|
-
retry_interval: 30
|
43
|
-
}
|
44
|
-
}
|
48
|
+
check_command: 'ping4',
|
49
|
+
check_interval: 10,
|
50
|
+
retry_interval: 30
|
45
51
|
)
|
46
52
|
|
47
53
|
or
|
@@ -49,17 +55,13 @@ or
|
|
49
55
|
@icinga.add_service(
|
50
56
|
host_name: 'foo',
|
51
57
|
name: 'http',
|
58
|
+
check_command: 'http',
|
59
|
+
check_interval: 10,
|
60
|
+
retry_interval: 30,
|
52
61
|
vars: {
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
retry_interval: 30,
|
57
|
-
vars: {
|
58
|
-
http_address: '127.0.0.1',
|
59
|
-
http_url: '/access/index',
|
60
|
-
http_port: 80
|
61
|
-
}
|
62
|
-
}
|
62
|
+
http_address: '127.0.0.1',
|
63
|
+
http_url: '/access/index',
|
64
|
+
http_port: 80
|
63
65
|
}
|
64
66
|
)
|
65
67
|
|
@@ -97,14 +99,9 @@ Modify an Service.
|
|
97
99
|
|
98
100
|
| Parameter | Type | Example | Description
|
99
101
|
| :-------------------- | :-----: | :----- | :-----------
|
100
|
-
| `name`
|
102
|
+
| `name` | String | `ping4` | Service Name they will be deleted
|
101
103
|
| `templates` | Array | `['own-service']` | (optional) a Array of templates (default: `['generic-service']`)
|
102
|
-
| `vars` | Hash | (see below) | Hash with custom options
|
103
|
-
|
104
|
-
Under the `vars` Hash is the structure very strict.
|
105
|
-
They hold only a `attrs` Hash with all others variable. (similar to `add_service`)
|
106
|
-
|
107
|
-
For more custom fields, add an `vars` Hash with the config parameters of the `check_command` (see below in the examples)
|
104
|
+
| `vars` | Hash | (see below) | Hash with custom options (see `add_services()`)
|
108
105
|
|
109
106
|
The result are an `Hash`
|
110
107
|
|
@@ -112,15 +109,11 @@ The result are an `Hash`
|
|
112
109
|
|
113
110
|
@icinga.modify_service(
|
114
111
|
name: 'http2',
|
112
|
+
check_interval: 60,
|
113
|
+
retry_interval: 10,
|
115
114
|
vars: {
|
116
|
-
|
117
|
-
|
118
|
-
retry_interval: 10,
|
119
|
-
vars: {
|
120
|
-
http_url: '/access/login' ,
|
121
|
-
http_address: '10.41.80.63'
|
122
|
-
}
|
123
|
-
}
|
115
|
+
http_url: '/access/login' ,
|
116
|
+
http_address: '10.41.80.63'
|
124
117
|
}
|
125
118
|
)
|
126
119
|
|
@@ -286,13 +279,3 @@ The result are an `Integer`
|
|
286
279
|
service_severity( {'attrs' => { 'state' => 0.0, 'acknowledgement' => 0.0, 'downtime_depth' => 0.0 } } )
|
287
280
|
|
288
281
|
|
289
|
-
|
290
|
-
## <a name=""></a>*update_host( hash, host )* (private)
|
291
|
-
|
292
|
-
update host
|
293
|
-
|
294
|
-
The result are an `Hash`
|
295
|
-
|
296
|
-
### Example
|
297
|
-
service_severity( {'attrs' => { 'state' => 0.0, 'acknowledgement' => 0.0, 'downtime_depth' => 0.0 } } )
|
298
|
-
|
@@ -6,7 +6,7 @@
|
|
6
6
|
<title>
|
7
7
|
Top Level Namespace
|
8
8
|
|
9
|
-
— Documentation by YARD 0.9.
|
9
|
+
— Documentation by YARD 0.9.11
|
10
10
|
|
11
11
|
</title>
|
12
12
|
|
@@ -28,7 +28,7 @@
|
|
28
28
|
</head>
|
29
29
|
<body>
|
30
30
|
<div class="nav_wrap">
|
31
|
-
<iframe id="nav" src="class_list.html"></iframe>
|
31
|
+
<iframe id="nav" src="class_list.html?1"></iframe>
|
32
32
|
<div id="resizer"></div>
|
33
33
|
</div>
|
34
34
|
|
@@ -59,8 +59,6 @@
|
|
59
59
|
<div class="clear"></div>
|
60
60
|
</div>
|
61
61
|
|
62
|
-
<iframe id="search_frame" src="class_list.html"></iframe>
|
63
|
-
|
64
62
|
<div id="content"><h1>Top Level Namespace
|
65
63
|
|
66
64
|
|
@@ -104,9 +102,9 @@
|
|
104
102
|
</div>
|
105
103
|
|
106
104
|
<div id="footer">
|
107
|
-
Generated on
|
105
|
+
Generated on Sat Dec 9 20:28:06 2017 by
|
108
106
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
109
|
-
0.9.
|
107
|
+
0.9.11 (ruby-2.2.8).
|
110
108
|
</div>
|
111
109
|
|
112
110
|
</div>
|
data/examples/_blank.rb
CHANGED
data/examples/config.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
|
2
|
+
icinga_host = ENV.fetch( 'ICINGA_HOST' , 'icinga2' )
|
3
|
+
icinga_api_port = ENV.fetch( 'ICINGA_API_PORT' , 5665 )
|
4
|
+
icinga_api_user = ENV.fetch( 'ICINGA_API_USER' , 'admin' )
|
5
|
+
icinga_api_pass = ENV.fetch( 'ICINGA_API_PASSWORD' , nil )
|
6
|
+
icinga_api_pki_path = ENV.fetch( 'ICINGA_API_PKI_PATH' , '/etc/icinga2' )
|
7
|
+
icinga_api_node_name = ENV.fetch( 'ICINGA_API_NODE_NAME' , nil )
|
8
|
+
|
9
|
+
@config = {
|
10
|
+
icinga: {
|
11
|
+
host: icinga_host,
|
12
|
+
api: {
|
13
|
+
port: icinga_api_port,
|
14
|
+
user: icinga_api_user,
|
15
|
+
password: icinga_api_pass,
|
16
|
+
pki_path: icinga_api_pki_path,
|
17
|
+
node_name: icinga_api_node_name
|
18
|
+
}
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
# ---------------------------------------------------------------------------------------
|
23
|
+
|
data/examples/downtimes.rb
CHANGED
@@ -9,40 +9,11 @@
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
11
11
|
require_relative '../lib/icinga2'
|
12
|
+
require_relative 'config'
|
12
13
|
|
13
14
|
# -----------------------------------------------------------------------------
|
14
15
|
|
15
|
-
|
16
|
-
icinga_api_port = ENV.fetch( 'ICINGA_API_PORT' , 5665 )
|
17
|
-
icinga_api_user = ENV.fetch( 'ICINGA_API_USER' , 'admin' )
|
18
|
-
icinga_api_pass = ENV.fetch( 'ICINGA_API_PASSWORD' , nil )
|
19
|
-
icinga_api_pki_path = ENV.fetch( 'ICINGA_API_PKI_PATH' , '/etc/icinga2' )
|
20
|
-
icinga_api_node_name = ENV.fetch( 'ICINGA_API_NODE_NAME' , nil )
|
21
|
-
icinga_cluster = ENV.fetch( 'ICINGA_CLUSTER' , false )
|
22
|
-
icinga_satellite = ENV.fetch( 'ICINGA_CLUSTER_SATELLITE', nil )
|
23
|
-
|
24
|
-
|
25
|
-
# convert string to bool
|
26
|
-
icinga_cluster = icinga_cluster.to_s.eql?('true') ? true : false
|
27
|
-
|
28
|
-
config = {
|
29
|
-
icinga: {
|
30
|
-
host: icinga_host,
|
31
|
-
api: {
|
32
|
-
port: icinga_api_port,
|
33
|
-
user: icinga_api_user,
|
34
|
-
password: icinga_api_pass,
|
35
|
-
pki_path: icinga_api_pki_path,
|
36
|
-
node_name: icinga_api_node_name
|
37
|
-
},
|
38
|
-
cluster: icinga_cluster,
|
39
|
-
satellite: icinga_satellite
|
40
|
-
}
|
41
|
-
}
|
42
|
-
|
43
|
-
# ---------------------------------------------------------------------------------------
|
44
|
-
|
45
|
-
i = Icinga2::Client.new( config )
|
16
|
+
i = Icinga2::Client.new( @config )
|
46
17
|
|
47
18
|
unless( i.nil? )
|
48
19
|
|
@@ -68,8 +39,8 @@ unless( i.nil? )
|
|
68
39
|
puts ''
|
69
40
|
|
70
41
|
rescue => e
|
71
|
-
|
72
|
-
|
42
|
+
warn( e )
|
43
|
+
warn( e.backtrace.join("\n") )
|
73
44
|
end
|
74
45
|
end
|
75
46
|
|
data/examples/hostgroups.rb
CHANGED
@@ -9,40 +9,11 @@
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
11
11
|
require_relative '../lib/icinga2'
|
12
|
+
require_relative 'config'
|
12
13
|
|
13
14
|
# -----------------------------------------------------------------------------
|
14
15
|
|
15
|
-
|
16
|
-
icinga_api_port = ENV.fetch( 'ICINGA_API_PORT' , 5665 )
|
17
|
-
icinga_api_user = ENV.fetch( 'ICINGA_API_USER' , 'admin' )
|
18
|
-
icinga_api_pass = ENV.fetch( 'ICINGA_API_PASSWORD' , nil )
|
19
|
-
icinga_api_pki_path = ENV.fetch( 'ICINGA_API_PKI_PATH' , '/etc/icinga2' )
|
20
|
-
icinga_api_node_name = ENV.fetch( 'ICINGA_API_NODE_NAME' , nil )
|
21
|
-
icinga_cluster = ENV.fetch( 'ICINGA_CLUSTER' , false )
|
22
|
-
icinga_satellite = ENV.fetch( 'ICINGA_CLUSTER_SATELLITE', nil )
|
23
|
-
|
24
|
-
|
25
|
-
# convert string to bool
|
26
|
-
icinga_cluster = icinga_cluster.to_s.eql?('true') ? true : false
|
27
|
-
|
28
|
-
config = {
|
29
|
-
icinga: {
|
30
|
-
host: icinga_host,
|
31
|
-
api: {
|
32
|
-
port: icinga_api_port,
|
33
|
-
user: icinga_api_user,
|
34
|
-
password: icinga_api_pass,
|
35
|
-
pki_path: icinga_api_pki_path,
|
36
|
-
node_name: icinga_api_node_name
|
37
|
-
},
|
38
|
-
cluster: icinga_cluster,
|
39
|
-
satellite: icinga_satellite
|
40
|
-
}
|
41
|
-
}
|
42
|
-
|
43
|
-
# ---------------------------------------------------------------------------------------
|
44
|
-
|
45
|
-
i = Icinga2::Client.new( config )
|
16
|
+
i = Icinga2::Client.new( @config )
|
46
17
|
|
47
18
|
unless( i.nil? )
|
48
19
|
|
@@ -80,8 +51,8 @@ unless( i.nil? )
|
|
80
51
|
puts ''
|
81
52
|
|
82
53
|
rescue => e
|
83
|
-
|
84
|
-
|
54
|
+
warn( e )
|
55
|
+
warn( e.backtrace.join("\n") )
|
85
56
|
end
|
86
57
|
end
|
87
58
|
|
data/examples/hosts.rb
CHANGED
@@ -9,40 +9,11 @@
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
11
11
|
require_relative '../lib/icinga2'
|
12
|
+
require_relative 'config'
|
12
13
|
|
13
14
|
# -----------------------------------------------------------------------------
|
14
15
|
|
15
|
-
|
16
|
-
icinga_api_port = ENV.fetch( 'ICINGA_API_PORT' , 5665 )
|
17
|
-
icinga_api_user = ENV.fetch( 'ICINGA_API_USER' , 'admin' )
|
18
|
-
icinga_api_pass = ENV.fetch( 'ICINGA_API_PASSWORD' , nil )
|
19
|
-
icinga_api_pki_path = ENV.fetch( 'ICINGA_API_PKI_PATH' , '/etc/icinga2' )
|
20
|
-
icinga_api_node_name = ENV.fetch( 'ICINGA_API_NODE_NAME' , nil )
|
21
|
-
icinga_cluster = ENV.fetch( 'ICINGA_CLUSTER' , false )
|
22
|
-
icinga_satellite = ENV.fetch( 'ICINGA_CLUSTER_SATELLITE', nil )
|
23
|
-
|
24
|
-
|
25
|
-
# convert string to bool
|
26
|
-
icinga_cluster = icinga_cluster.to_s.eql?('true') ? true : false
|
27
|
-
|
28
|
-
config = {
|
29
|
-
icinga: {
|
30
|
-
host: icinga_host,
|
31
|
-
api: {
|
32
|
-
port: icinga_api_port,
|
33
|
-
user: icinga_api_user,
|
34
|
-
password: icinga_api_pass,
|
35
|
-
pki_path: icinga_api_pki_path,
|
36
|
-
node_name: icinga_api_node_name
|
37
|
-
},
|
38
|
-
cluster: icinga_cluster,
|
39
|
-
satellite: icinga_satellite
|
40
|
-
}
|
41
|
-
}
|
42
|
-
|
43
|
-
# ---------------------------------------------------------------------------------------
|
44
|
-
|
45
|
-
i = Icinga2::Client.new( config )
|
16
|
+
i = Icinga2::Client.new( @config )
|
46
17
|
|
47
18
|
unless( i.nil? )
|
48
19
|
|
@@ -165,12 +136,26 @@ unless( i.nil? )
|
|
165
136
|
puts i.hosts(name: 'c1-mysql-1')
|
166
137
|
puts ''
|
167
138
|
|
139
|
+
puts '= list named Hosts \'c1-mysql-1\' (with attrs and filter)'
|
140
|
+
puts i.hosts(
|
141
|
+
name: 'c1-mysql-1',
|
142
|
+
attrs: %w[display_name name address]
|
143
|
+
)
|
144
|
+
puts ''
|
145
|
+
|
146
|
+
puts '= host object with attrs and filter'
|
147
|
+
# Get host name, address of hosts belonging to a specific hostgroup
|
148
|
+
puts i.host_objects(
|
149
|
+
attrs: %w[display_name name address],
|
150
|
+
filter: '"linux-servers" in host.groups'
|
151
|
+
)
|
152
|
+
|
168
153
|
puts ' ------------------------------------------------------------- '
|
169
154
|
puts ''
|
170
155
|
|
171
156
|
rescue => e
|
172
|
-
|
173
|
-
|
157
|
+
warn( e )
|
158
|
+
warn( e.backtrace.join("\n") )
|
174
159
|
end
|
175
160
|
end
|
176
161
|
|