zabbapi 2.4.13 → 2.4.14
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/exe/wda +8 -4
- data/lib/zabbapi.rb +85 -83
- data/lib/zabbapi/version.rb +1 -1
- data/zabbapi.gemspec +2 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f5957f96378fd50fd44ee94345e6a5f74a8a8179
|
4
|
+
data.tar.gz: 7439aef6565e08a8f7cf664257cf033845533f5c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed42abf624e14bbe27afaade5c76830dc182874bcdd55f59829673a5e6acf835c162e41a4061c8c4ecefb419c3a74437c59223a3d58633eddf5c503febff7d80
|
7
|
+
data.tar.gz: 240d71b0bbf01e2b61dc4e6edda140a0f20255bce62795846c363a6ed8aa3acc242a963801bc2b9b873176f0a34355dd6192297956a001b29a342e905dacb1a8
|
data/exe/wda
CHANGED
@@ -7,9 +7,13 @@ $email = ARGV[3]
|
|
7
7
|
$activeif = ARGV[4]
|
8
8
|
$ip = ARGV[5]
|
9
9
|
if $type == "del"
|
10
|
-
Zabbapi::WatchDog.new.wddel($host)
|
10
|
+
$host.nil? ? abort("miss param hostname; please use $ wda del <hostname>") : Zabbapi::WatchDog.new.wddel($host)
|
11
11
|
elsif $type == "add"
|
12
|
-
|
12
|
+
if $host.nil? or $name.nil? or $email.nil? or $activeif.nil? or $ip.nil?
|
13
|
+
abort("miss params; please use wda add <hostname> <name> <email> <activeif> <ip>")
|
14
|
+
else
|
15
|
+
Zabbapi::WatchDog.new.wdadd($host, $name , $email , $activeif , $ip)
|
16
|
+
end
|
13
17
|
elsif $type == "update"
|
14
18
|
Zabbapi::WatchDog.new.update($host)
|
15
19
|
else
|
@@ -18,6 +22,6 @@ else
|
|
18
22
|
puts "wda add <hostname> <name> <email> <activeif> <ip>"
|
19
23
|
puts " for del:"
|
20
24
|
puts "wda del <hostname>"
|
21
|
-
puts " for update:"
|
22
|
-
puts "wda update <hostname>"
|
25
|
+
# puts " for update:"
|
26
|
+
# puts "wda update <hostname>"
|
23
27
|
end
|
data/lib/zabbapi.rb
CHANGED
@@ -3,18 +3,20 @@ require 'zabbixapi'
|
|
3
3
|
require 'json'
|
4
4
|
require 'mechanize'
|
5
5
|
require 'hpricot'
|
6
|
-
|
6
|
+
|
7
7
|
module Zabbapi
|
8
|
+
|
8
9
|
if not File.exist?('/etc/config.json')
|
9
10
|
abort("please create config file with credentials /etc/config.json")
|
10
11
|
end
|
12
|
+
|
11
13
|
file = File.read('/etc/config.json')
|
12
14
|
credentials = JSON.parse(file)
|
13
15
|
$wd_host = credentials['host']
|
14
16
|
$wd_admin_login = credentials['login']
|
15
17
|
$wd_admin_pass = credentials['pass']
|
16
18
|
|
17
|
-
|
19
|
+
class WatchDog
|
18
20
|
|
19
21
|
def wddel(hostname)
|
20
22
|
@hostname = hostname
|
@@ -37,11 +39,11 @@ $wd_admin_pass = credentials['pass']
|
|
37
39
|
$idscreenfordel["screenid"]
|
38
40
|
)
|
39
41
|
rescue
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
42
|
+
puts "host with hostname " + @hostname + " deleted"
|
43
|
+
else
|
44
|
+
puts "host with hostname " + @hostname + " deleted"
|
45
|
+
end
|
46
|
+
end
|
45
47
|
end
|
46
48
|
|
47
49
|
def wdadd(hostname , name , email , activeif , ip)
|
@@ -89,28 +91,28 @@ end
|
|
89
91
|
zbx.users.create(
|
90
92
|
:alias => $name,
|
91
93
|
:type => 1,
|
92
|
-
|
93
|
-
|
94
|
-
|
94
|
+
:passwd => passwd,
|
95
|
+
:usrgrps => [zbx.usergroups.get_id(:name => @name)],
|
96
|
+
:url => '/screens.php'
|
95
97
|
)
|
96
98
|
rescue
|
97
99
|
puts "User exist!"
|
98
100
|
else
|
99
101
|
puts "User created!"
|
100
102
|
puts " "
|
101
|
-
puts "#
|
103
|
+
puts "#Zabbix"
|
102
104
|
puts 'https://' + $wd_host
|
103
105
|
puts "#{@name} / #{passwd}"
|
104
106
|
puts " "
|
105
|
-
|
107
|
+
|
106
108
|
begin
|
107
109
|
getuserid = zbx.query(
|
108
110
|
:method => "user.get",
|
109
111
|
:params => {
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
112
|
+
:filter => { :alias => ["#{@name}"] },
|
113
|
+
:output => {
|
114
|
+
:filter => "userid"
|
115
|
+
}
|
114
116
|
}
|
115
117
|
|
116
118
|
)
|
@@ -119,15 +121,15 @@ end
|
|
119
121
|
|
120
122
|
zbx.query(:method => "user.addmedia",
|
121
123
|
:params => {
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
124
|
+
:users => { :userid => getuserid["userid"]},
|
125
|
+
:medias => [
|
126
|
+
{
|
127
|
+
:mediatypeid => "100100000000001" ,
|
128
|
+
:sendto => @email,
|
129
|
+
:active => 0,
|
130
|
+
:severity => 48,
|
131
|
+
:period => "1-7,00:00-24:00"
|
132
|
+
}
|
131
133
|
]
|
132
134
|
}
|
133
135
|
)
|
@@ -137,7 +139,7 @@ end
|
|
137
139
|
puts "UserMedia added to #{@name}"
|
138
140
|
end
|
139
141
|
|
140
|
-
|
142
|
+
|
141
143
|
end
|
142
144
|
|
143
145
|
if $host.chars.first == 'l'
|
@@ -151,17 +153,17 @@ end
|
|
151
153
|
begin
|
152
154
|
zbx.query(:method => "host.create" ,
|
153
155
|
:params => {
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
156
|
+
:host => @hostname ,
|
157
|
+
:interfaces => {
|
158
|
+
:type => 1,
|
159
|
+
:main => 1,
|
160
|
+
:ip => $ip ,
|
161
|
+
:dns => "",
|
162
|
+
:useip => 1,
|
163
|
+
:port => 10050
|
164
|
+
},
|
165
|
+
:groups => [{ :groupid => zbx.hostgroups.get_id(:name => @name) }],
|
166
|
+
:templates => { :templateid => $tplid }
|
165
167
|
}
|
166
168
|
)
|
167
169
|
rescue
|
@@ -175,7 +177,7 @@ end
|
|
175
177
|
zbx.query(
|
176
178
|
:method => "action.create" ,
|
177
179
|
:params => [ {
|
178
|
-
:name => "all #{@name} triggs",
|
180
|
+
:name => "all #{@name} triggs",
|
179
181
|
:eventsource => 0 ,
|
180
182
|
:status => 0 ,
|
181
183
|
:evaltype => 0 ,
|
@@ -184,22 +186,22 @@ end
|
|
184
186
|
:def_longdata => '{TRIGGER.NAME}: {STATUS}',
|
185
187
|
:usrgrpid => zbx.usergroups.get_id(:name => @name),
|
186
188
|
:conditions => [
|
187
|
-
{
|
189
|
+
{
|
188
190
|
:conditiontype => 0 ,
|
189
191
|
:operator => 0 ,
|
190
192
|
:value => zbx.hostgroups.get_id(:name => $name)
|
191
193
|
}
|
192
194
|
],
|
193
195
|
:operations => [
|
194
|
-
{
|
196
|
+
{
|
195
197
|
:operationtype => 0 ,
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
198
|
+
:opmessage_grp => [
|
199
|
+
{
|
200
|
+
:usrgrpid => zbx.usergroups.get_id(:name => @name)
|
201
|
+
}],
|
202
|
+
:opmessage => {:default_msg => 1 }
|
203
|
+
}
|
204
|
+
]
|
203
205
|
}]
|
204
206
|
)
|
205
207
|
rescue
|
@@ -214,7 +216,7 @@ end
|
|
214
216
|
)
|
215
217
|
|
216
218
|
puts "Add host to group..."
|
217
|
-
|
219
|
+
|
218
220
|
zbx.query(:method => "hostgroup.massadd" , :params => {:groups => {:groupid => "100100000000614"} , :hosts => {:hostid => zbx.hosts.get_id(:host => @hostname)}} )
|
219
221
|
begin
|
220
222
|
puts "Update screen graphs..."
|
@@ -225,8 +227,8 @@ end
|
|
225
227
|
abort "Its not error!!!! please wait 5 min , and update host , because new iface not discovered."
|
226
228
|
end
|
227
229
|
begin
|
228
|
-
|
229
|
-
iface = "Traffic " + @activeif
|
230
|
+
|
231
|
+
iface = "Traffic " + @activeif
|
230
232
|
iface = "Traffic on " + @activeif unless ifaceknow.include? @activeif
|
231
233
|
$graphtoscreen1 = zbx.graphs.get_ids_by_host(:host => @hostname , :filter => iface )
|
232
234
|
$graphtoscreen2 = zbx.graphs.get_ids_by_host(:host => @hostname , :filter => "CPU\ Utilization")
|
@@ -243,14 +245,14 @@ end
|
|
243
245
|
|
244
246
|
zbx.screens.get_or_create_for_host(
|
245
247
|
:hosts_id => [zbx.hosts.get_id(:host => @hostname)],
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
248
|
+
:screen_name => @hostname,
|
249
|
+
:height => 180,
|
250
|
+
:width => 360,
|
251
|
+
:vsize => 3,
|
252
|
+
:hsize => 2,
|
253
|
+
:halign => 0,
|
254
|
+
:valign => 0,
|
255
|
+
:graphids => [ $graphtoscreen1[0] , $graphtoscreen2[0] , $graphtoscreen3[0] , $graphtoscreen4[0] , $graphtoscreen5[0] , $graphtoscreen6[0] ]
|
254
256
|
)
|
255
257
|
rescue
|
256
258
|
iface = "Traffic " + @activeif
|
@@ -265,14 +267,14 @@ end
|
|
265
267
|
|
266
268
|
zbx.screens.get_or_create_for_host(
|
267
269
|
:hosts_id => [zbx.hosts.get_id(:host => @hostname)],
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
270
|
+
:screen_name => @hostname,
|
271
|
+
:height => 180,
|
272
|
+
:width => 360,
|
273
|
+
:vsize => 2,
|
274
|
+
:hsize => 2,
|
275
|
+
:halign => 0,
|
276
|
+
:valign => 0,
|
277
|
+
:graphids => [ $graphtoscreen1[0] , $graphtoscreen2[0] , $graphtoscreen3[0] , $graphtoscreen4[0] ]
|
276
278
|
)
|
277
279
|
end
|
278
280
|
puts "Done!"
|
@@ -280,23 +282,23 @@ end
|
|
280
282
|
end
|
281
283
|
|
282
284
|
#class UpdateHostTemplates
|
283
|
-
def update(hostname)
|
284
|
-
@hostname = hostname
|
285
|
-
zbx = ZabbixApi.connect(
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
)
|
290
|
-
zbx.templates.mass_add(
|
291
|
-
|
292
|
-
|
293
|
-
)
|
294
|
-
zbx.screens.get_or_create_for_host(
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
)
|
299
|
-
end
|
285
|
+
# def update(hostname)
|
286
|
+
# @hostname = hostname
|
287
|
+
# zbx = ZabbixApi.connect(
|
288
|
+
# :url => 'https://' + $wd_host + '/api_jsonrpc.php',
|
289
|
+
# :user => $wd_admin_login ,
|
290
|
+
# :password => $wd_admin_pass
|
291
|
+
# )
|
292
|
+
# zbx.templates.mass_add(
|
293
|
+
# :hosts_id => [zbx.hosts.get_id(:host => @hostname)],
|
294
|
+
# :templates_id => [100100000010962 , 100100000010003 , 100100000010099]
|
295
|
+
# )
|
296
|
+
# zbx.screens.get_or_create_for_host(
|
297
|
+
# :hosts_id => [zbx.hosts.get_id(:host => @hostname)],
|
298
|
+
# :screen_name => @hostname,
|
299
|
+
# :graphids => zbx.graphs.get_ids_by_host(:host => @hostname )
|
300
|
+
# )
|
301
|
+
# end
|
300
302
|
#end
|
301
303
|
|
302
304
|
end
|
data/lib/zabbapi/version.rb
CHANGED
data/zabbapi.gemspec
CHANGED
@@ -10,10 +10,10 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["nikolaev.makc@gmail.com"]
|
11
11
|
|
12
12
|
spec.summary = %q{watch dog cli}
|
13
|
-
spec.description = %q{ZabbixAPI for host create / delete / update}
|
13
|
+
spec.description = %q{ZabbixAPI CLI for host create / delete / update}
|
14
14
|
spec.homepage = "https://rubygems.org/gems/zabbapi"
|
15
15
|
spec.license = "MIT"
|
16
|
-
|
16
|
+
spec.required_ruby_version = '>=1.9.3'
|
17
17
|
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
18
18
|
# delete this section to allow pushing this gem to any host.
|
19
19
|
# if spec.respond_to?(:metadata)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zabbapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- maxn maxn
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: zabbixapi
|
@@ -78,7 +78,7 @@ dependencies:
|
|
78
78
|
- - "~>"
|
79
79
|
- !ruby/object:Gem::Version
|
80
80
|
version: 0.8.6
|
81
|
-
description: ZabbixAPI for host create / delete / update
|
81
|
+
description: ZabbixAPI CLI for host create / delete / update
|
82
82
|
email:
|
83
83
|
- nikolaev.makc@gmail.com
|
84
84
|
executables:
|
@@ -110,7 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
110
110
|
requirements:
|
111
111
|
- - ">="
|
112
112
|
- !ruby/object:Gem::Version
|
113
|
-
version:
|
113
|
+
version: 1.9.3
|
114
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
116
|
- - ">="
|