zabbapi 2.4.13 → 2.4.14
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
- - ">="
|