zabbixapi 0.1.6.4 → 0.1.7
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.
- data/README.rdoc +7 -1
- data/examples/basic_auth.rb +30 -0
- data/examples/maintenance-example.rb +55 -0
- data/examples/populate_new_zabbix.sh +84 -0
- data/examples/zabbix_availability +7 -7
- data/examples/zabbix_clear_default +36 -0
- data/examples/zabbix_cpufan-sersor +114 -0
- data/examples/zabbix_cputemp-sersor +112 -0
- data/examples/zabbix_disk_io +8 -8
- data/examples/zabbix_filesystem +20 -20
- data/examples/zabbix_group +25 -0
- data/examples/zabbix_hlsp +100 -0
- data/examples/zabbix_host +37 -0
- data/examples/zabbix_iops +131 -0
- data/examples/zabbix_ipmi-cpufan-sersor +101 -0
- data/examples/zabbix_ipmi_systemp +110 -0
- data/examples/zabbix_la +42 -7
- data/examples/zabbix_mailer +125 -0
- data/examples/zabbix_mdadm +72 -0
- data/examples/zabbix_megaraid +71 -0
- data/examples/zabbix_memory +35 -21
- data/examples/zabbix_named +71 -0
- data/examples/zabbix_net +144 -8
- data/examples/zabbix_nginx +167 -0
- data/examples/zabbix_nginx_500 +112 -0
- data/examples/zabbix_ntp +71 -0
- data/examples/zabbix_nv-gputemp +111 -0
- data/examples/zabbix_pgsql +125 -0
- data/examples/zabbix_server_process +71 -0
- data/examples/zabbix_smart_blade +94 -0
- data/examples/zabbix_ssh +71 -0
- data/examples/zabbix_varnish +71 -0
- data/lib/zabbixapi.rb +1 -0
- data/lib/zabbixapi/application.rb +2 -2
- data/lib/zabbixapi/base.rb +6 -1
- data/lib/zabbixapi/host.rb +3 -3
- data/lib/zabbixapi/maintenance.rb +78 -0
- data/spec/localhost.rb +7 -1
- data/zabbixapi.gemspec +2 -2
- metadata +30 -4
- data/spec/request.rb +0 -130
data/README.rdoc
CHANGED
@@ -5,7 +5,7 @@ Simple and lightweight ruby module for work with zabbix api version 1.8.x
|
|
5
5
|
{<img src="https://travis-ci.org/vadv/zabbixapi.png">}[https://travis-ci.org/vadv/zabbixapi]
|
6
6
|
|
7
7
|
You can:
|
8
|
-
* Create and delete host/template/application/items/triggers and screens;
|
8
|
+
* Create and delete host/template/application/items/triggers/maintenance and screens;
|
9
9
|
* Get info about all zabbix essences;
|
10
10
|
|
11
11
|
== Installation
|
@@ -35,6 +35,12 @@ You can:
|
|
35
35
|
puts zbx.get_group_id('some_group')
|
36
36
|
end
|
37
37
|
|
38
|
+
* Debugging
|
39
|
+
|
40
|
+
For debug information on requests set
|
41
|
+
|
42
|
+
zbx.debug = true
|
43
|
+
|
38
44
|
More see in spec please...
|
39
45
|
|
40
46
|
== Dependencies
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'getopt/std'
|
5
|
+
require 'yaml'
|
6
|
+
require 'zabbixapi'
|
7
|
+
|
8
|
+
opt = Getopt::Std.getopts("g:E:")
|
9
|
+
|
10
|
+
group_name = opt["g"]
|
11
|
+
zabbix_env = opt["E"]
|
12
|
+
|
13
|
+
maintenance_name = "Test Maintenance"
|
14
|
+
|
15
|
+
# read config
|
16
|
+
config = YAML::load(open('./config.yml'))
|
17
|
+
|
18
|
+
api_url = config[zabbix_env]["api_url"]
|
19
|
+
api_login = config[zabbix_env]["api_login"]
|
20
|
+
api_password = config[zabbix_env]["api_password"]
|
21
|
+
|
22
|
+
# Esablish new connection
|
23
|
+
zbx = Zabbix::ZabbixApi.new(api_url, api_login, api_password)
|
24
|
+
zbx.debug = true
|
25
|
+
#Simply uses the api_login and api_password for basic auth
|
26
|
+
zbx.basic_auth = true
|
27
|
+
|
28
|
+
p " * Creating hostgroup #{group_name}."
|
29
|
+
g_id = zbx.add_or_get_group(group_name)
|
30
|
+
puts g_id
|
@@ -0,0 +1,55 @@
|
|
1
|
+
#
|
2
|
+
# gems
|
3
|
+
#
|
4
|
+
require 'zabbixapi'
|
5
|
+
|
6
|
+
#
|
7
|
+
# main
|
8
|
+
#
|
9
|
+
@yourZabbixHost = 'https://zabbix.example.com/api_jsonrpc.php'
|
10
|
+
@yourZabbixLogin = 'login'
|
11
|
+
@yourZabbixPassword = 'password'
|
12
|
+
@yourServerHost = 'examplehost'
|
13
|
+
|
14
|
+
# init
|
15
|
+
zbx = Zabbix::ZabbixApi.new(@yourZabbixHost, @yourZabbixLogin, @yourZabbixPassword)
|
16
|
+
zbx.debug = true
|
17
|
+
|
18
|
+
# find your host
|
19
|
+
host_id = zbx.get_host_id(@yourServerHost);
|
20
|
+
puts host_id
|
21
|
+
|
22
|
+
# create an 1hour maintenance period
|
23
|
+
# => true
|
24
|
+
time_now = Time.now.to_i
|
25
|
+
options = {
|
26
|
+
'name' => 'maintenance example',
|
27
|
+
'description' => 'maintenance example description ',
|
28
|
+
'active_since' => time_now,
|
29
|
+
'active_till' => time_now + 60*60
|
30
|
+
}
|
31
|
+
maintenance_id = zbx.create_maintenance(host_id,options)
|
32
|
+
puts maintenance_id
|
33
|
+
|
34
|
+
# is maintenance item available?
|
35
|
+
# => true
|
36
|
+
puts zbx.maintenance_exists?(maintenance_id)
|
37
|
+
|
38
|
+
# update name, description and extend period to 3h
|
39
|
+
# => true
|
40
|
+
options = {
|
41
|
+
'name' => 'maintenance example update',
|
42
|
+
'description' => 'maintenance example update description',
|
43
|
+
'hostids' => [host_id],
|
44
|
+
'active_since' => time_now,
|
45
|
+
'active_till' => time_now + 180*60
|
46
|
+
}
|
47
|
+
puts zbx.update_maintenance(maintenance_id,options)
|
48
|
+
|
49
|
+
# delete it
|
50
|
+
# => true
|
51
|
+
puts zbx.delete_maintenance(maintenance_id)
|
52
|
+
|
53
|
+
# is maintenance item still available?
|
54
|
+
# => false
|
55
|
+
puts zbx.maintenance_exists?(maintenance_id)
|
@@ -0,0 +1,84 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
if [ $# -ne 1 ]; then
|
4
|
+
echo "usage: $(basename $0) ENVIRONMENT"
|
5
|
+
exit 1
|
6
|
+
fi
|
7
|
+
|
8
|
+
ENVIRONMENT=$1
|
9
|
+
CURRENT_DIR=$(dirname $0)
|
10
|
+
|
11
|
+
# Clear default
|
12
|
+
bundle exec ruby zabbix_clear_default -E $ENVIRONMENT
|
13
|
+
|
14
|
+
# Availability
|
15
|
+
bundle exec ruby zabbix_availability -E $ENVIRONMENT -g "Templates"
|
16
|
+
|
17
|
+
# Net
|
18
|
+
bundle exec ruby zabbix_net -E $ENVIRONMENT -g "Templates" -i eth0
|
19
|
+
bundle exec ruby zabbix_net -E $ENVIRONMENT -g "Templates" -i eth1
|
20
|
+
bundle exec ruby zabbix_net -E $ENVIRONMENT -g "Templates" -i eth2
|
21
|
+
bundle exec ruby zabbix_net -E $ENVIRONMENT -g "Templates" -i eth3
|
22
|
+
|
23
|
+
# LA
|
24
|
+
bundle exec ruby zabbix_la -E $ENVIRONMENT -g "Templates"
|
25
|
+
|
26
|
+
# Memory
|
27
|
+
bundle exec ruby zabbix_memory -E $ENVIRONMENT -g "Templates"
|
28
|
+
|
29
|
+
# Filesystems
|
30
|
+
for i in "/storage" "/" "/boot" "/mnt" "/var" "/home" "/tmp" "/backup" \
|
31
|
+
"/var/lib/postgresql"; do
|
32
|
+
bundle exec ruby zabbix_filesystem -E $ENVIRONMENT -g "Templates" -m "$i"
|
33
|
+
done
|
34
|
+
|
35
|
+
# SSH
|
36
|
+
bundle exec ruby zabbix_ssh -E $ENVIRONMENT -g Templates
|
37
|
+
|
38
|
+
# NTP
|
39
|
+
bundle exec ruby zabbix_ntp -E $ENVIRONMENT -g Templates
|
40
|
+
|
41
|
+
# HLSP
|
42
|
+
for i in {1..8}; do
|
43
|
+
bundle exec ruby zabbix_hlsp -E $ENVIRONMENT -g Templates -i ${i}
|
44
|
+
done
|
45
|
+
|
46
|
+
# Playout
|
47
|
+
bundle exec ruby zabbix_playout-t -E $ENVIRONMENT -g Templates
|
48
|
+
|
49
|
+
# MegaRAID
|
50
|
+
bundle exec ruby zabbix_megaraid -E $ENVIRONMENT -g Templates
|
51
|
+
|
52
|
+
# PGSQL
|
53
|
+
bundle exec ruby zabbix_pgsql -E $ENVIRONMENT -g Templates
|
54
|
+
|
55
|
+
# MDADM
|
56
|
+
for i in md0 md1 md2 md3; do
|
57
|
+
bundle exec ruby zabbix_mdadm -E $ENVIRONMENT -g Templates -n ${i}
|
58
|
+
done
|
59
|
+
|
60
|
+
# ipmi_systemp
|
61
|
+
bundle exec ruby zabbix_ipmi_systemp -E $ENVIRONMENT -g Templates
|
62
|
+
|
63
|
+
# IO
|
64
|
+
bundle exec ruby zabbix_iops -E $ENVIRONMENT -g Templates -n sda
|
65
|
+
|
66
|
+
# varnish
|
67
|
+
bundle exec ruby zabbix_varnish -E $ENVIRONMENT -g Templates
|
68
|
+
|
69
|
+
# nginx
|
70
|
+
bundle exec ruby zabbix_nginx -E $ENVIRONMENT -g Templates
|
71
|
+
|
72
|
+
# nginx_500
|
73
|
+
bundle exec ruby zabbix_nginx_500 -E $ENVIRONMENT -g Templates
|
74
|
+
|
75
|
+
|
76
|
+
bundle exec ruby zabbix_cpufan-sersor -E $ENVIRONMENT -g Templates
|
77
|
+
bundle exec ruby zabbix_cputemp-sersor -E $ENVIRONMENT -g Templates
|
78
|
+
bundle exec ruby zabbix_ipmi-cpufan-sersor -E $ENVIRONMENT -g Templates
|
79
|
+
bundle exec ruby zabbix_mailer -E $ENVIRONMENT -g Templates
|
80
|
+
bundle exec ruby zabbix_megaraid -E $ENVIRONMENT -g Templates
|
81
|
+
bundle exec ruby zabbix_mpeg2lander_signal -E $ENVIRONMENT -g Templates
|
82
|
+
bundle exec ruby zabbix_mpeg2lander_status -E $ENVIRONMENT -g Templates
|
83
|
+
bundle exec ruby zabbix_named -E $ENVIRONMENT -g Templates
|
84
|
+
bundle exec ruby zabbix_nv-gputemp -E $ENVIRONMENT -g Templates
|
@@ -25,23 +25,23 @@ zbx = Zabbix::ZabbixApi.new(api_url, api_login, api_password)
|
|
25
25
|
|
26
26
|
# Create new template
|
27
27
|
p " * Creating template #{template_name}."
|
28
|
-
g_id = zbx.
|
28
|
+
g_id = zbx.add_or_get_group(group_name)
|
29
29
|
|
30
30
|
options = {
|
31
31
|
'groups' => [ g_id.to_i ],
|
32
32
|
'host' => template_name
|
33
33
|
}
|
34
34
|
|
35
|
-
t_id = zbx.
|
35
|
+
t_id = zbx.add_or_get_template(options)
|
36
36
|
|
37
37
|
# Create application #{app_name}
|
38
38
|
app_name = "Availability"
|
39
39
|
p " ** Create application #{app_name}."
|
40
40
|
application = {
|
41
|
-
'hostid' => t_id
|
41
|
+
'hostid' => t_id,
|
42
42
|
'name' => app_name
|
43
43
|
}
|
44
|
-
a_id = zbx.
|
44
|
+
a_id = zbx.add_or_get_application(t_id, application)
|
45
45
|
|
46
46
|
# 'Ping.'
|
47
47
|
options = {
|
@@ -51,12 +51,12 @@ options = {
|
|
51
51
|
'applications' => [ a_id.to_i ],
|
52
52
|
'history' => 7,
|
53
53
|
'trends' => 30,
|
54
|
-
'delay' =>
|
54
|
+
'delay' => 30,
|
55
55
|
'value_type' => 0,
|
56
56
|
'type' => '0'
|
57
57
|
}
|
58
58
|
p " ** Add 'Ping' to #{template_name}."
|
59
|
-
i_id = zbx.
|
59
|
+
i_id = zbx.add_or_get_item(t_id, options)
|
60
60
|
|
61
61
|
# TRIGGERS
|
62
62
|
options = {
|
@@ -70,4 +70,4 @@ options = {
|
|
70
70
|
}
|
71
71
|
|
72
72
|
p " ** Add 'Host availability disaster trigger'"
|
73
|
-
tr_id = zbx.
|
73
|
+
tr_id = zbx.add_or_get_trigger(t_id, options)
|
@@ -0,0 +1,36 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'getopt/std'
|
5
|
+
require 'yaml'
|
6
|
+
require 'zabbixapi'
|
7
|
+
|
8
|
+
opt = Getopt::Std.getopts("g:E:")
|
9
|
+
|
10
|
+
group_name = opt["g"]
|
11
|
+
zabbix_env = opt["E"]
|
12
|
+
|
13
|
+
template_name = "TMPL_Availability"
|
14
|
+
|
15
|
+
# read config
|
16
|
+
config = YAML::load(open('./config.yml'))
|
17
|
+
|
18
|
+
api_url = config[zabbix_env]["api_url"]
|
19
|
+
api_login = config[zabbix_env]["api_login"]
|
20
|
+
api_password = config[zabbix_env]["api_password"]
|
21
|
+
|
22
|
+
|
23
|
+
# Esablish new connection
|
24
|
+
zbx = Zabbix::ZabbixApi.new(api_url, api_login, api_password)
|
25
|
+
|
26
|
+
defaults = zbx.get_templates()
|
27
|
+
|
28
|
+
p " * Delete all template ^Template_."
|
29
|
+
|
30
|
+
defaults.each do |template|
|
31
|
+
if template[1].match('^Template_')
|
32
|
+
p " ** Delete template #{template[1]}"
|
33
|
+
zbx.delete_template(template[1])
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
@@ -0,0 +1,114 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'getopt/std'
|
5
|
+
require 'yaml'
|
6
|
+
require 'zabbixapi'
|
7
|
+
|
8
|
+
opt = Getopt::Std.getopts("g:E:")
|
9
|
+
|
10
|
+
group_name = opt["g"]
|
11
|
+
zabbix_env = opt["E"]
|
12
|
+
|
13
|
+
template_name = "TMPL_cpufan_sensor"
|
14
|
+
app_name = "cpufan_sensor"
|
15
|
+
high_disaster_rpm = '5000'
|
16
|
+
low_disaster_rpm = '800'
|
17
|
+
|
18
|
+
# read config
|
19
|
+
config = YAML::load(open('./config.yml'))
|
20
|
+
|
21
|
+
api_url = config[zabbix_env]["api_url"]
|
22
|
+
api_login = config[zabbix_env]["api_login"]
|
23
|
+
api_password = config[zabbix_env]["api_password"]
|
24
|
+
|
25
|
+
# Esablish new connection
|
26
|
+
zbx = Zabbix::ZabbixApi.new(api_url, api_login, api_password)
|
27
|
+
|
28
|
+
# Create new template
|
29
|
+
p " * Creating template #{template_name}."
|
30
|
+
g_id = zbx.add_or_get_group(group_name)
|
31
|
+
|
32
|
+
options = {
|
33
|
+
'groups' => [ g_id.to_i ],
|
34
|
+
'host' => template_name
|
35
|
+
}
|
36
|
+
|
37
|
+
t_id = zbx.add_or_get_template(options)
|
38
|
+
|
39
|
+
# Create application #{app_name}
|
40
|
+
app_name = "cpufan_sensor"
|
41
|
+
p " ** Create application #{app_name}."
|
42
|
+
application = {
|
43
|
+
'hostid' => t_id.to_i,
|
44
|
+
'name' => app_name
|
45
|
+
}
|
46
|
+
a_id = zbx.add_or_get_application(t_id, application)
|
47
|
+
|
48
|
+
# 'cpu fan speed'
|
49
|
+
options = {
|
50
|
+
'description' => "CPU FAN Speed sensor",
|
51
|
+
'key_' => "cpufansensor",
|
52
|
+
'hostid' => t_id.to_i,
|
53
|
+
'applications' => [ a_id.to_i ],
|
54
|
+
'history' => 7,
|
55
|
+
'trends' => 30,
|
56
|
+
'delay' => 60,
|
57
|
+
'templateid' => t_id,
|
58
|
+
'value_type' => '3',
|
59
|
+
'units' => 'rpm'
|
60
|
+
}
|
61
|
+
p " ** Add 'cpufansensor' to #{template_name}."
|
62
|
+
sensor_item_id = zbx.add_or_get_item(t_id, options)
|
63
|
+
|
64
|
+
# TRIGGER
|
65
|
+
# cpufan disaster (high threshold)
|
66
|
+
options = {
|
67
|
+
'description' => "CPU FAN sensor high",
|
68
|
+
'expression' => "{#{template_name}:cpufansensor.last(0)}>#{high_disaster_rpm}",
|
69
|
+
'priority' => 5, # disaster
|
70
|
+
'templateid' => 0,
|
71
|
+
'comments' => "Cpufan sensor high threshold (Disaster)",
|
72
|
+
'type' => 0,
|
73
|
+
'status' => '0'
|
74
|
+
}
|
75
|
+
p " ** Add 'cpufan sensor high disaster' trigger"
|
76
|
+
zbx.debug = true
|
77
|
+
tr_id = zbx.add_or_get_trigger(t_id, options)
|
78
|
+
|
79
|
+
# TRIGGER
|
80
|
+
# cpufan disaster (high threshold)
|
81
|
+
options = {
|
82
|
+
'description' => "CPU FAN sensor low",
|
83
|
+
'expression' => "{#{template_name}:cpufansensor.last(0)}<#{low_disaster_rpm}",
|
84
|
+
'priority' => 5, # disaster
|
85
|
+
'templateid' => 0,
|
86
|
+
'comments' => "Cpufan sensor low threshold (Disaster)",
|
87
|
+
'type' => 0,
|
88
|
+
'status' => '0'
|
89
|
+
}
|
90
|
+
p " ** Add 'cpufan sensor low disaster' trigger"
|
91
|
+
tr_id = zbx.add_or_get_trigger(t_id, options)
|
92
|
+
|
93
|
+
# GRAPH
|
94
|
+
options = {
|
95
|
+
'gitems' => [
|
96
|
+
{
|
97
|
+
"itemid" => sensor_item_id,
|
98
|
+
"drawtype" => "0",
|
99
|
+
"sortorder" => "0",
|
100
|
+
"color" => "AA0000",
|
101
|
+
"yaxisside" => "0",
|
102
|
+
"calc_fnc" => "2",
|
103
|
+
"type" => "0",
|
104
|
+
"periods_cnt" => "5"
|
105
|
+
}
|
106
|
+
],
|
107
|
+
"show_triggers" => "1",
|
108
|
+
"name" => "CPU FAN Speed sensor data from lm-sensors",
|
109
|
+
"width" => "900",
|
110
|
+
"height" => "200",
|
111
|
+
"templateid" => "0"
|
112
|
+
}
|
113
|
+
|
114
|
+
g_id = zbx.add_or_get_graph(t_id, options)
|
@@ -0,0 +1,112 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'getopt/std'
|
5
|
+
require 'yaml'
|
6
|
+
require 'zabbixapi'
|
7
|
+
|
8
|
+
opt = Getopt::Std.getopts("g:E:")
|
9
|
+
|
10
|
+
group_name = opt["g"]
|
11
|
+
zabbix_env = opt["E"]
|
12
|
+
|
13
|
+
template_name = "TMPL_cputemp_sensor"
|
14
|
+
app_name = "cputemp_sensor"
|
15
|
+
high_temperature = '60'
|
16
|
+
crit_temperature = '80'
|
17
|
+
|
18
|
+
# read config
|
19
|
+
config = YAML::load(open('./config.yml'))
|
20
|
+
|
21
|
+
api_url = config[zabbix_env]["api_url"]
|
22
|
+
api_login = config[zabbix_env]["api_login"]
|
23
|
+
api_password = config[zabbix_env]["api_password"]
|
24
|
+
|
25
|
+
# Esablish new connection
|
26
|
+
zbx = Zabbix::ZabbixApi.new(api_url, api_login, api_password)
|
27
|
+
|
28
|
+
# Create new template
|
29
|
+
p " * Creating template #{template_name}."
|
30
|
+
g_id = zbx.add_or_get_group(group_name)
|
31
|
+
|
32
|
+
options = {
|
33
|
+
'groups' => [ g_id.to_i ],
|
34
|
+
'host' => template_name
|
35
|
+
}
|
36
|
+
|
37
|
+
t_id = zbx.add_or_get_template(options)
|
38
|
+
|
39
|
+
# Create application #{app_name}
|
40
|
+
app_name = "cputemp_sensor"
|
41
|
+
p " ** Create application #{app_name}."
|
42
|
+
application = {
|
43
|
+
'hostid' => t_id.to_i,
|
44
|
+
'name' => app_name
|
45
|
+
}
|
46
|
+
a_id = zbx.add_or_get_application(t_id, application)
|
47
|
+
|
48
|
+
# 'cpu temperature sensor'
|
49
|
+
options = {
|
50
|
+
'description' => "CPU Temperature sensor",
|
51
|
+
'key_' => "cputempsensor",
|
52
|
+
'hostid' => t_id.to_i,
|
53
|
+
'applications' => [ a_id.to_i ],
|
54
|
+
'history' => 7,
|
55
|
+
'trends' => 30,
|
56
|
+
'delay' => 60,
|
57
|
+
'value_type' => '3',
|
58
|
+
'units' => 'C'
|
59
|
+
}
|
60
|
+
p " ** Add 'cputempsensor' to #{template_name}."
|
61
|
+
sensor_item_id = zbx.add_or_get_item(t_id, options)
|
62
|
+
|
63
|
+
# TRIGGER
|
64
|
+
# cputemp disaster (high threshold)
|
65
|
+
options = {
|
66
|
+
'description' => "CPU Temperature sensor warning",
|
67
|
+
'expression' => "{#{template_name}:cputempsensor.last(0)}>#{high_temperature}",
|
68
|
+
'priority' => 2, # warning
|
69
|
+
'templateid' => 0,
|
70
|
+
'comments' => "Cputemp sensor (Warning)",
|
71
|
+
'type' => 0,
|
72
|
+
'status' => '0'
|
73
|
+
}
|
74
|
+
p " ** Add 'cputemp sensor warning' trigger"
|
75
|
+
tr_id = zbx.add_or_get_trigger(t_id, options)
|
76
|
+
|
77
|
+
# TRIGGER
|
78
|
+
# cputemp disaster (high threshold)
|
79
|
+
options = {
|
80
|
+
'description' => "CPU temperature sensor disaster",
|
81
|
+
'expression' => "{#{template_name}:cputempsensor.last(0)}>#{crit_temperature}",
|
82
|
+
'priority' => 5, # disaster
|
83
|
+
'templateid' => 0,
|
84
|
+
'comments' => "Cputemp sensor (Disaster)",
|
85
|
+
'type' => 0,
|
86
|
+
'status' => '0'
|
87
|
+
}
|
88
|
+
p " ** Add 'cputemp sensor disaster' trigger"
|
89
|
+
tr_id = zbx.add_or_get_trigger(t_id, options)
|
90
|
+
|
91
|
+
# GRAPH
|
92
|
+
options = {
|
93
|
+
'gitems' => [
|
94
|
+
{
|
95
|
+
"itemid" => sensor_item_id,
|
96
|
+
"drawtype" => "0",
|
97
|
+
"sortorder" => "0",
|
98
|
+
"color" => "AA0000",
|
99
|
+
"yaxisside" => "0",
|
100
|
+
"calc_fnc" => "2",
|
101
|
+
"type" => "0",
|
102
|
+
"periods_cnt" => "5"
|
103
|
+
}
|
104
|
+
],
|
105
|
+
"show_triggers" => "1",
|
106
|
+
"name" => "CPU Temperature from lm-sensors",
|
107
|
+
"width" => "900",
|
108
|
+
"height" => "200",
|
109
|
+
"templateid" => "0"
|
110
|
+
}
|
111
|
+
|
112
|
+
g_id = zbx.add_or_get_graph(t_id, options)
|