zabbix_manager 5.0.5 → 5.0.6
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/.idea/vcs.xml +6 -0
- data/.idea/workspace.xml +2 -4
- data/.rubocop.yml +1 -1
- data/lib/zabbix_manager/basic/basic_alias.rb +2 -0
- data/lib/zabbix_manager/basic/basic_extend.rb +11 -9
- data/lib/zabbix_manager/basic/basic_func.rb +9 -5
- data/lib/zabbix_manager/basic/basic_init.rb +6 -4
- data/lib/zabbix_manager/basic/basic_logic.rb +7 -5
- data/lib/zabbix_manager/classes/actions.rb +6 -4
- data/lib/zabbix_manager/classes/applications.rb +4 -2
- data/lib/zabbix_manager/classes/configurations.rb +6 -4
- data/lib/zabbix_manager/classes/drules.rb +5 -3
- data/lib/zabbix_manager/classes/errors.rb +5 -3
- data/lib/zabbix_manager/classes/events.rb +4 -3
- data/lib/zabbix_manager/classes/graphs.rb +11 -9
- data/lib/zabbix_manager/classes/hostgroups.rb +13 -11
- data/lib/zabbix_manager/classes/hosts.rb +36 -34
- data/lib/zabbix_manager/classes/httptests.rb +4 -2
- data/lib/zabbix_manager/classes/items.rb +51 -49
- data/lib/zabbix_manager/classes/maintenance.rb +4 -2
- data/lib/zabbix_manager/classes/mediatypes.rb +15 -13
- data/lib/zabbix_manager/classes/problems.rb +31 -30
- data/lib/zabbix_manager/classes/proxies.rb +9 -7
- data/lib/zabbix_manager/classes/roles.rb +17 -15
- data/lib/zabbix_manager/classes/screens.rb +6 -4
- data/lib/zabbix_manager/classes/scripts.rb +6 -4
- data/lib/zabbix_manager/classes/server.rb +3 -1
- data/lib/zabbix_manager/classes/templates.rb +18 -16
- data/lib/zabbix_manager/classes/triggers.rb +41 -37
- data/lib/zabbix_manager/classes/unusable.rb +2 -0
- data/lib/zabbix_manager/classes/usergroups.rb +11 -9
- data/lib/zabbix_manager/classes/usermacros.rb +21 -19
- data/lib/zabbix_manager/classes/users.rb +11 -9
- data/lib/zabbix_manager/classes/valuemaps.rb +5 -3
- data/lib/zabbix_manager/client.rb +38 -28
- data/lib/zabbix_manager/version.rb +3 -1
- data/lib/zabbix_manager.rb +36 -35
- data/zabbix_manager-5.0.3.gem +0 -0
- data/zabbix_manager-5.0.4.gem +0 -0
- data/zabbix_manager-5.0.5.gem +0 -0
- metadata +9 -4
@@ -1,17 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class ZabbixManager
|
2
4
|
class Hosts < Basic
|
3
5
|
# The method name used for interacting with Hosts via Zabbix API
|
4
6
|
#
|
5
7
|
# @return [String]
|
6
8
|
def method_name
|
7
|
-
|
9
|
+
"host"
|
8
10
|
end
|
9
11
|
|
10
12
|
# The id field name used for identifying specific Host objects via Zabbix API
|
11
13
|
#
|
12
14
|
# @return [String]
|
13
15
|
def identify
|
14
|
-
|
16
|
+
"host"
|
15
17
|
end
|
16
18
|
|
17
19
|
# Dump Host object data by key from Zabbix API
|
@@ -23,12 +25,12 @@ class ZabbixManager
|
|
23
25
|
def dump_by_id(data)
|
24
26
|
log "[DEBUG] Call dump_by_id with parameters: #{data.inspect}"
|
25
27
|
@client.api_request(
|
26
|
-
method:
|
28
|
+
method: "host.get",
|
27
29
|
params: {
|
28
30
|
filter: {
|
29
31
|
key.to_sym => data[key.to_sym]
|
30
32
|
},
|
31
|
-
output:
|
33
|
+
output: "extend"
|
32
34
|
# selectHosts: 'shorten'
|
33
35
|
}
|
34
36
|
)
|
@@ -39,23 +41,23 @@ class ZabbixManager
|
|
39
41
|
# @return [Hash]
|
40
42
|
def default_options
|
41
43
|
{
|
42
|
-
host:
|
43
|
-
interfaces:
|
44
|
-
main:
|
45
|
-
useip:
|
46
|
-
type:
|
47
|
-
ip:
|
48
|
-
dns:
|
49
|
-
port:
|
44
|
+
host: nil,
|
45
|
+
interfaces: {
|
46
|
+
main: 1,
|
47
|
+
useip: 1,
|
48
|
+
type: 2,
|
49
|
+
ip: nil,
|
50
|
+
dns: "",
|
51
|
+
port: 161,
|
50
52
|
details: {
|
51
|
-
version:
|
53
|
+
version: 2,
|
52
54
|
community: "transsion"
|
53
55
|
}
|
54
56
|
},
|
55
|
-
status:
|
56
|
-
available:
|
57
|
-
groups:
|
58
|
-
proxy_hostid:
|
57
|
+
status: 0,
|
58
|
+
available: 1,
|
59
|
+
groups: [],
|
60
|
+
proxy_hostid: nil,
|
59
61
|
inventory_mode: 1
|
60
62
|
}
|
61
63
|
end
|
@@ -68,9 +70,9 @@ class ZabbixManager
|
|
68
70
|
# @return [Boolean]
|
69
71
|
def unlink_templates(data)
|
70
72
|
result = @client.api_request(
|
71
|
-
method:
|
73
|
+
method: "host.massRemove",
|
72
74
|
params: {
|
73
|
-
hostids:
|
75
|
+
hostids: data[:hosts_id],
|
74
76
|
templates: data[:templates_id]
|
75
77
|
}
|
76
78
|
)
|
@@ -120,19 +122,19 @@ class ZabbixManager
|
|
120
122
|
# 测试数据
|
121
123
|
def update_mojo
|
122
124
|
data = {
|
123
|
-
name:
|
124
|
-
groups:
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
templates:
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
125
|
+
name: "SZX1-16-SW3111111111",
|
126
|
+
groups: [
|
127
|
+
{
|
128
|
+
groupid: 22
|
129
|
+
}
|
130
|
+
],
|
131
|
+
templates: [
|
132
|
+
{
|
133
|
+
templateid: 10_227
|
134
|
+
}
|
135
|
+
],
|
134
136
|
inventory_mode: 1,
|
135
|
-
hostid:
|
137
|
+
hostid: 15_951
|
136
138
|
}
|
137
139
|
|
138
140
|
# 请求后端接口
|
@@ -142,7 +144,7 @@ class ZabbixManager
|
|
142
144
|
# 根据主机名查询 hostid
|
143
145
|
def get_host_id(name)
|
144
146
|
result = @client.api_request(
|
145
|
-
method:
|
147
|
+
method: "host.get",
|
146
148
|
params: {
|
147
149
|
output: "extend",
|
148
150
|
filter: {
|
@@ -158,7 +160,7 @@ class ZabbixManager
|
|
158
160
|
# 根据可见名称查询 hostid
|
159
161
|
def get_hostid_by_name(name)
|
160
162
|
result = @client.api_request(
|
161
|
-
method:
|
163
|
+
method: "host.get",
|
162
164
|
params: {
|
163
165
|
output: "extend",
|
164
166
|
filter: {
|
@@ -210,7 +212,7 @@ class ZabbixManager
|
|
210
212
|
# 新增监控对象
|
211
213
|
create data
|
212
214
|
end
|
213
|
-
rescue => e
|
215
|
+
rescue StandardError => e
|
214
216
|
puts "创建或新增主机 #{data[:host]} 异常,异常信息:#{e}"
|
215
217
|
# raise NotImplementedError
|
216
218
|
end
|
@@ -1,17 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class ZabbixManager
|
2
4
|
class HttpTests < Basic
|
3
5
|
# The method name used for interacting with HttpTests via Zabbix API
|
4
6
|
#
|
5
7
|
# @return [String]
|
6
8
|
def method_name
|
7
|
-
|
9
|
+
"httptest"
|
8
10
|
end
|
9
11
|
|
10
12
|
# The id field name used for identifying specific HttpTest objects via Zabbix API
|
11
13
|
#
|
12
14
|
# @return [String]
|
13
15
|
def identify
|
14
|
-
|
16
|
+
"name"
|
15
17
|
end
|
16
18
|
|
17
19
|
# The default options used when creating HttpTest objects via Zabbix API
|
@@ -1,17 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class ZabbixManager
|
2
4
|
class Items < Basic
|
3
5
|
# The method name used for interacting with Items via Zabbix API
|
4
6
|
#
|
5
7
|
# @return [String]
|
6
8
|
def method_name
|
7
|
-
|
9
|
+
"item"
|
8
10
|
end
|
9
11
|
|
10
12
|
# The id field name used for identifying specific Item objects via Zabbix API
|
11
13
|
#
|
12
14
|
# @return [String]
|
13
15
|
def identify
|
14
|
-
|
16
|
+
"name"
|
15
17
|
end
|
16
18
|
|
17
19
|
# The default options used when creating Item objects via Zabbix API
|
@@ -19,38 +21,38 @@ class ZabbixManager
|
|
19
21
|
# @return [Hash]
|
20
22
|
def default_options
|
21
23
|
{
|
22
|
-
name:
|
23
|
-
key_:
|
24
|
-
hostid:
|
25
|
-
delay:
|
26
|
-
history:
|
27
|
-
status:
|
28
|
-
type:
|
29
|
-
snmp_community:
|
30
|
-
snmp_oid:
|
31
|
-
value_type:
|
32
|
-
data_type:
|
33
|
-
trapper_hosts:
|
34
|
-
snmp_port:
|
35
|
-
units:
|
36
|
-
multiplier:
|
37
|
-
delta:
|
38
|
-
snmpv3_securityname:
|
39
|
-
snmpv3_securitylevel:
|
40
|
-
snmpv3_authpassphrase:
|
41
|
-
snmpv3_privpassphrase:
|
42
|
-
formula:
|
43
|
-
trends:
|
44
|
-
logtimefmt:
|
45
|
-
valuemapid:
|
46
|
-
delay_flex:
|
47
|
-
authtype:
|
48
|
-
username:
|
49
|
-
password:
|
50
|
-
publickey:
|
51
|
-
privatekey:
|
52
|
-
params:
|
53
|
-
ipmi_sensor:
|
24
|
+
name: nil,
|
25
|
+
key_: nil,
|
26
|
+
hostid: nil,
|
27
|
+
delay: 60,
|
28
|
+
history: 3600,
|
29
|
+
status: 0,
|
30
|
+
type: 7,
|
31
|
+
snmp_community: "",
|
32
|
+
snmp_oid: "",
|
33
|
+
value_type: 3,
|
34
|
+
data_type: 0,
|
35
|
+
trapper_hosts: "localhost",
|
36
|
+
snmp_port: 161,
|
37
|
+
units: "",
|
38
|
+
multiplier: 0,
|
39
|
+
delta: 0,
|
40
|
+
snmpv3_securityname: "",
|
41
|
+
snmpv3_securitylevel: 0,
|
42
|
+
snmpv3_authpassphrase: "",
|
43
|
+
snmpv3_privpassphrase: "",
|
44
|
+
formula: 0,
|
45
|
+
trends: 86_400,
|
46
|
+
logtimefmt: "",
|
47
|
+
valuemapid: 0,
|
48
|
+
delay_flex: "",
|
49
|
+
authtype: 0,
|
50
|
+
username: "",
|
51
|
+
password: "",
|
52
|
+
publickey: "",
|
53
|
+
privatekey: "",
|
54
|
+
params: "",
|
55
|
+
ipmi_sensor: ""
|
54
56
|
}
|
55
57
|
end
|
56
58
|
|
@@ -83,19 +85,19 @@ class ZabbixManager
|
|
83
85
|
# 根据设备名称和接口名字查询监控项 | 15809 | GigabitEthernet1/0/12
|
84
86
|
def get_interface_items(hostid, name)
|
85
87
|
# 自动剔除收尾空白字串
|
86
|
-
_name = name&.gsub(%r
|
88
|
+
_name = name&.gsub(%r{[^/0-9]}, "")&.strip
|
87
89
|
iface = "#{_name}("
|
88
90
|
|
89
91
|
# 模糊查询接口下所有监控项,同时过滤出特定的 snmp_oid
|
90
92
|
result = @client.api_request(
|
91
|
-
method:
|
93
|
+
method: "item.get",
|
92
94
|
params: {
|
93
95
|
# output: ["itemid", "name", "snmp_oid", "key_", "triggerids"],
|
94
|
-
output:
|
96
|
+
output: "extend",
|
95
97
|
hostids: hostid,
|
96
|
-
search:
|
98
|
+
search: {
|
97
99
|
name: iface
|
98
|
-
}
|
100
|
+
}
|
99
101
|
}
|
100
102
|
).select { |item| item["snmp_oid"].match?(/1.3.6.1.2.1.31.1.1.1.(6|10)./) }
|
101
103
|
|
@@ -111,34 +113,34 @@ class ZabbixManager
|
|
111
113
|
|
112
114
|
# 请求绑定 dns 监控项到特定的 hostid
|
113
115
|
result = @client.api_request(
|
114
|
-
method:
|
116
|
+
method: "item.create",
|
115
117
|
params: {
|
116
118
|
hostid: hostid,
|
117
|
-
name:
|
118
|
-
key_:
|
119
|
+
name: item_name,
|
120
|
+
key_: item_key_,
|
119
121
|
# 代表 zabbix_agent
|
120
122
|
type: 0,
|
121
123
|
# 代表字符串
|
122
124
|
value_type: 1,
|
123
125
|
# 固定参数
|
124
|
-
delay:
|
125
|
-
history:
|
126
|
+
delay: "1m",
|
127
|
+
history: "90d",
|
126
128
|
lifetime: "30d",
|
127
|
-
timeout:
|
129
|
+
timeout: "3s"
|
128
130
|
}
|
129
131
|
)
|
130
132
|
p "成功创建 dns监控 #{dns_name}"
|
131
|
-
rescue
|
133
|
+
rescue StandardError
|
132
134
|
p "创建 dns监控 #{dns_name} 异常"
|
133
135
|
end
|
134
136
|
|
135
137
|
# 查询某个监控项具体信息
|
136
138
|
def get_item_info
|
137
139
|
result = @client.api_request(
|
138
|
-
method:
|
140
|
+
method: "item.get",
|
139
141
|
params: {
|
140
|
-
output:
|
141
|
-
hostids: "16914"
|
142
|
+
output: "extend",
|
143
|
+
hostids: "16914"
|
142
144
|
}
|
143
145
|
)
|
144
146
|
end
|
@@ -1,17 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class ZabbixManager
|
2
4
|
class Maintenance < Basic
|
3
5
|
# The method name used for interacting with Maintenances via Zabbix API
|
4
6
|
#
|
5
7
|
# @return [String]
|
6
8
|
def method_name
|
7
|
-
|
9
|
+
"maintenance"
|
8
10
|
end
|
9
11
|
|
10
12
|
# The id field name used for identifying specific Maintenance objects via Zabbix API
|
11
13
|
#
|
12
14
|
# @return [String]
|
13
15
|
def identify
|
14
|
-
|
16
|
+
"name"
|
15
17
|
end
|
16
18
|
end
|
17
19
|
end
|
@@ -1,17 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class ZabbixManager
|
2
4
|
class Mediatypes < Basic
|
3
5
|
# The method name used for interacting with MediaTypes via Zabbix API
|
4
6
|
#
|
5
7
|
# @return [String]
|
6
8
|
def method_name
|
7
|
-
|
9
|
+
"mediatype"
|
8
10
|
end
|
9
11
|
|
10
12
|
# The id field name used for identifying specific MediaType objects via Zabbix API
|
11
13
|
#
|
12
14
|
# @return [String]
|
13
15
|
def identify
|
14
|
-
|
16
|
+
"name"
|
15
17
|
end
|
16
18
|
|
17
19
|
# The default options used when creating MediaType objects via Zabbix API
|
@@ -19,16 +21,16 @@ class ZabbixManager
|
|
19
21
|
# @return [Hash]
|
20
22
|
def default_options
|
21
23
|
{
|
22
|
-
name:
|
23
|
-
description:
|
24
|
+
name: "", # Name
|
25
|
+
description: "", # Description
|
24
26
|
type: 0, # 0 - Email, 1 - External script, 2 - SMS, 3 - Jabber, 100 - EzTexting
|
25
|
-
smtp_server:
|
26
|
-
smtp_helo:
|
27
|
-
smtp_email:
|
28
|
-
exec_path:
|
29
|
-
gsm_modem:
|
30
|
-
username:
|
31
|
-
passwd:
|
27
|
+
smtp_server: "",
|
28
|
+
smtp_helo: "",
|
29
|
+
smtp_email: "", # Email address of Zabbix server
|
30
|
+
exec_path: "", # Name of external script
|
31
|
+
gsm_modem: "", # Serial device name of GSM modem
|
32
|
+
username: "", # Jabber user name used by Zabbix server
|
33
|
+
passwd: "" # Jabber password used by Zabbix server
|
32
34
|
}
|
33
35
|
end
|
34
36
|
|
@@ -78,12 +80,12 @@ class ZabbixManager
|
|
78
80
|
data = symbolize_keys(data) if data.key?(identify)
|
79
81
|
# raise an error if identify name was not supplied
|
80
82
|
name = data[identify.to_sym]
|
81
|
-
raise ManagerError
|
83
|
+
raise ManagerError, "#{identify} not supplied in call to get_id, #{data} (#{method_name})" if name.nil?
|
82
84
|
|
83
85
|
result = @client.api_request(
|
84
86
|
method: "#{method_name}.get",
|
85
87
|
params: {
|
86
|
-
filter: {name: name},
|
88
|
+
filter: { name: name },
|
87
89
|
output: [key, identify]
|
88
90
|
}
|
89
91
|
)
|
@@ -1,17 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class ZabbixManager
|
2
4
|
class Problems < Basic
|
3
5
|
# The method name used for interacting with Hosts via Zabbix API
|
4
6
|
#
|
5
7
|
# @return [String]
|
6
8
|
def method_name
|
7
|
-
|
9
|
+
"problem"
|
8
10
|
end
|
9
11
|
|
10
12
|
# The id field name used for identifying specific Problem objects via Zabbix API
|
11
13
|
#
|
12
14
|
# @return [String]
|
13
15
|
def identify
|
14
|
-
|
16
|
+
"name"
|
15
17
|
end
|
16
18
|
|
17
19
|
# The key field name used for Problem objects via Zabbix API
|
@@ -19,7 +21,7 @@ class ZabbixManager
|
|
19
21
|
#
|
20
22
|
# @return [String]
|
21
23
|
def key
|
22
|
-
|
24
|
+
"problemid"
|
23
25
|
end
|
24
26
|
|
25
27
|
# Returns the object's plural id field name (identify) based on key
|
@@ -27,7 +29,7 @@ class ZabbixManager
|
|
27
29
|
#
|
28
30
|
# @return [String]
|
29
31
|
def keys
|
30
|
-
|
32
|
+
"problemids"
|
31
33
|
end
|
32
34
|
|
33
35
|
# Dump Problem object data by key from Zabbix API
|
@@ -40,12 +42,12 @@ class ZabbixManager
|
|
40
42
|
log "[DEBUG] Call dump_by_id with parameters: #{data.inspect}"
|
41
43
|
|
42
44
|
@client.api_request(
|
43
|
-
method:
|
45
|
+
method: "problem.get",
|
44
46
|
params: {
|
45
47
|
filter: {
|
46
48
|
identify.to_sym => data[identify.to_sym]
|
47
49
|
},
|
48
|
-
output:
|
50
|
+
output: "extend"
|
49
51
|
}
|
50
52
|
)
|
51
53
|
end
|
@@ -64,27 +66,27 @@ class ZabbixManager
|
|
64
66
|
@client.api_request(
|
65
67
|
method: "#{method_name}.get",
|
66
68
|
params: {
|
67
|
-
filter:
|
69
|
+
filter: {
|
68
70
|
identify.to_sym => data[identify.to_sym]
|
69
71
|
},
|
70
|
-
eventids:
|
71
|
-
groupids:
|
72
|
-
hostids:
|
73
|
-
objectids:
|
74
|
-
applicationids:
|
75
|
-
tags:
|
76
|
-
time_from:
|
77
|
-
time_till:
|
78
|
-
eventid_from:
|
79
|
-
eventid_till:
|
80
|
-
recent:
|
81
|
-
sortfield:
|
82
|
-
sortorder:
|
83
|
-
countOutput:
|
84
|
-
output:
|
85
|
-
selectAcknowledges:
|
86
|
-
selectTags:
|
87
|
-
selectSuppressionData:
|
72
|
+
eventids: data[:eventids] || nil,
|
73
|
+
groupids: data[:groupids] || nil,
|
74
|
+
hostids: data[:hostids] || nil,
|
75
|
+
objectids: data[:objectids] || nil,
|
76
|
+
applicationids: data[:applicationids] || nil,
|
77
|
+
tags: data[:tags] || nil,
|
78
|
+
time_from: data[:time_from] || nil,
|
79
|
+
time_till: data[:time_till] || nil,
|
80
|
+
eventid_from: data[:eventid_from] || nil,
|
81
|
+
eventid_till: data[:eventid_till] || nil,
|
82
|
+
recent: data[:recent] || false,
|
83
|
+
sortfield: data[:sortfield] || ["eventid"],
|
84
|
+
sortorder: data[:sortorder] || "DESC",
|
85
|
+
countOutput: data[:countOutput] || nil,
|
86
|
+
output: "extend",
|
87
|
+
selectAcknowledges: "extend",
|
88
|
+
selectTags: "extend",
|
89
|
+
selectSuppressionData: "extend"
|
88
90
|
}
|
89
91
|
)
|
90
92
|
end
|
@@ -118,16 +120,15 @@ class ZabbixManager
|
|
118
120
|
|
119
121
|
def ack_event(eventids)
|
120
122
|
# 请求后端
|
121
|
-
|
123
|
+
@client.api_request(
|
122
124
|
method: "event.acknowledge",
|
123
125
|
params: {
|
124
126
|
eventids: eventids,
|
125
|
-
action:
|
126
|
-
message:
|
127
|
+
action: 2,
|
128
|
+
message: "由 RUBY SCRIPT 自动关闭"
|
127
129
|
}
|
128
130
|
)
|
129
131
|
# 返回运行结果
|
130
|
-
result
|
131
132
|
end
|
132
133
|
end
|
133
|
-
end
|
134
|
+
end
|
@@ -1,17 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class ZabbixManager
|
2
4
|
class Proxies < Basic
|
3
5
|
# The method name used for interacting with Proxies via Zabbix API
|
4
6
|
#
|
5
7
|
# @return [String]
|
6
8
|
def method_name
|
7
|
-
|
9
|
+
"proxy"
|
8
10
|
end
|
9
11
|
|
10
12
|
# The id field name used for identifying specific Proxy objects via Zabbix API
|
11
13
|
#
|
12
14
|
# @return [String]
|
13
15
|
def identify
|
14
|
-
|
16
|
+
"host"
|
15
17
|
end
|
16
18
|
|
17
19
|
# Delete Proxy object using Zabbix API
|
@@ -21,8 +23,8 @@ class ZabbixManager
|
|
21
23
|
# @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
|
22
24
|
# @return [Integer] The Proxy object id that was deleted
|
23
25
|
def delete(data)
|
24
|
-
result = @client.api_request(method:
|
25
|
-
result.empty? ? nil : result[
|
26
|
+
result = @client.api_request(method: "proxy.delete", params: data)
|
27
|
+
result.empty? ? nil : result["proxyids"][0].to_i
|
26
28
|
end
|
27
29
|
|
28
30
|
# Check if a Proxy object is readable using Zabbix API
|
@@ -32,7 +34,7 @@ class ZabbixManager
|
|
32
34
|
# @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
|
33
35
|
# @return [Boolean] Returns true if the given proxies are readable
|
34
36
|
def isreadable(data)
|
35
|
-
@client.api_request(method:
|
37
|
+
@client.api_request(method: "proxy.isreadable", params: data)
|
36
38
|
end
|
37
39
|
|
38
40
|
# Check if a Proxy object is writable using Zabbix API
|
@@ -42,7 +44,7 @@ class ZabbixManager
|
|
42
44
|
# @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK.
|
43
45
|
# @return [Boolean] Returns true if the given proxies are writable
|
44
46
|
def iswritable(data)
|
45
|
-
@client.api_request(method:
|
47
|
+
@client.api_request(method: "proxy.iswritable", params: data)
|
46
48
|
end
|
47
49
|
|
48
50
|
# 新增代理服务器查询接口
|
@@ -52,7 +54,7 @@ class ZabbixManager
|
|
52
54
|
|
53
55
|
# 请求后端接口,只支持单个代理节点
|
54
56
|
result = @client.api_request(
|
55
|
-
method:
|
57
|
+
method: "proxy.get",
|
56
58
|
params: {
|
57
59
|
output: "extend",
|
58
60
|
filter: {
|