zabbixapi 0.3.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. data/.travis.yml +9 -0
  2. data/Gemfile +4 -0
  3. data/Gemfile.lock +20 -0
  4. data/README.md +123 -0
  5. data/Rakefile +1 -0
  6. data/lib/zabbixapi/applications.rb +37 -0
  7. data/lib/zabbixapi/client.rb +65 -0
  8. data/lib/zabbixapi/errors.rb +12 -0
  9. data/lib/zabbixapi/graphs.rb +47 -0
  10. data/lib/zabbixapi/hostgroups.rb +42 -0
  11. data/lib/zabbixapi/hosts.rb +80 -0
  12. data/lib/zabbixapi/items.rb +81 -0
  13. data/lib/zabbixapi/server.rb +12 -0
  14. data/lib/zabbixapi/templates.rb +78 -0
  15. data/lib/zabbixapi/triggers.rb +42 -0
  16. data/lib/zabbixapi/users.rb +59 -0
  17. data/lib/zabbixapi/version.rb +3 -0
  18. data/lib/zabbixapi.rb +51 -12
  19. data/spec/localhost.rb +227 -75
  20. data/spec/run.rb +265 -0
  21. data/zabbixapi.gemspec +15 -15
  22. metadata +35 -57
  23. data/README.rdoc +0 -65
  24. data/examples/basic_auth.rb +0 -30
  25. data/examples/config.yml +0 -4
  26. data/examples/maintenance-example.rb +0 -55
  27. data/examples/populate_new_zabbix.sh +0 -84
  28. data/examples/zabbix_availability +0 -73
  29. data/examples/zabbix_clear_default +0 -36
  30. data/examples/zabbix_cpufan-sersor +0 -114
  31. data/examples/zabbix_cputemp-sersor +0 -112
  32. data/examples/zabbix_disk_io +0 -152
  33. data/examples/zabbix_filesystem +0 -249
  34. data/examples/zabbix_group +0 -25
  35. data/examples/zabbix_hlsp +0 -100
  36. data/examples/zabbix_host +0 -37
  37. data/examples/zabbix_iops +0 -131
  38. data/examples/zabbix_ipmi-cpufan-sersor +0 -101
  39. data/examples/zabbix_ipmi_systemp +0 -110
  40. data/examples/zabbix_la +0 -136
  41. data/examples/zabbix_mailer +0 -125
  42. data/examples/zabbix_mdadm +0 -72
  43. data/examples/zabbix_megaraid +0 -71
  44. data/examples/zabbix_memory +0 -290
  45. data/examples/zabbix_named +0 -71
  46. data/examples/zabbix_net +0 -218
  47. data/examples/zabbix_nginx +0 -167
  48. data/examples/zabbix_nginx_500 +0 -112
  49. data/examples/zabbix_ntp +0 -71
  50. data/examples/zabbix_nv-gputemp +0 -111
  51. data/examples/zabbix_pgsql +0 -125
  52. data/examples/zabbix_server_process +0 -71
  53. data/examples/zabbix_smart_blade +0 -94
  54. data/examples/zabbix_ssh +0 -71
  55. data/examples/zabbix_varnish +0 -71
  56. data/lib/zabbixapi/application.rb +0 -40
  57. data/lib/zabbixapi/base.rb +0 -158
  58. data/lib/zabbixapi/graph.rb +0 -59
  59. data/lib/zabbixapi/group.rb +0 -66
  60. data/lib/zabbixapi/host.rb +0 -70
  61. data/lib/zabbixapi/item.rb +0 -130
  62. data/lib/zabbixapi/maintenance.rb +0 -78
  63. data/lib/zabbixapi/mediatype.rb +0 -53
  64. data/lib/zabbixapi/screen.rb +0 -119
  65. data/lib/zabbixapi/template.rb +0 -128
  66. data/lib/zabbixapi/trigger.rb +0 -71
  67. data/lib/zabbixapi/user.rb +0 -0
  68. data/lib/zabbixapi/usermacro.rb +0 -46
@@ -1,167 +0,0 @@
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:i:E:")
9
-
10
- group_name = opt["g"]
11
- zabbix_env = opt["E"]
12
-
13
- template_name = "TMPL_nginx"
14
- app_name = "Nginx"
15
-
16
- # read config
17
- config = YAML::load(open('./config.yml'))
18
-
19
- api_url = config[zabbix_env]["api_url"]
20
- api_login = config[zabbix_env]["api_login"]
21
- api_password = config[zabbix_env]["api_password"]
22
-
23
- # Esablish new connection
24
- zbx = Zabbix::ZabbixApi.new(api_url, api_login, api_password)
25
-
26
- # Create new template
27
- p " * Creating template #{template_name}."
28
- g_id = zbx.add_or_get_group(group_name)
29
-
30
- options = {
31
- 'groups' => [ g_id.to_i ],
32
- 'host' => template_name
33
- }
34
-
35
- t_id = zbx.add_or_get_template(options)
36
-
37
- # Create application #{app_name}
38
- p " ** Create application #{app_name}."
39
- application = {
40
- 'hostid' => t_id.to_i,
41
- 'name' => app_name
42
- }
43
- a_id = zbx.add_or_get_application(t_id, application)
44
-
45
- # 'nginx service status'
46
- options = {
47
- 'description' => "nginx service status",
48
- 'key_' => "runit_service[nginx]",
49
- 'hostid' => t_id.to_i,
50
- 'applications' => [ a_id.to_i ],
51
- 'history' => 7,
52
- 'trends' => 30,
53
- 'delay' => 60,
54
- 'value_type' => 0
55
- }
56
- p " ** Add 'nginx service status' to #{template_name}."
57
- item_id = zbx.add_or_get_item(t_id, options)
58
-
59
- store = Hash.new()
60
- # 'nginx active_connections'
61
- options = {
62
- 'description' => "nginx active_connections",
63
- 'key_' => "nginx_status[http://127.0.0.1:8010/status,active_connections]",
64
- 'hostid' => t_id.to_i,
65
- 'applications' => [ a_id.to_i ],
66
- 'history' => 7,
67
- 'trends' => 30,
68
- 'delay' => 60,
69
- 'value_type' => 0
70
- }
71
- p " ** Add 'nginx active_connections' to #{template_name}."
72
- item_id = zbx.add_or_get_item(t_id, options)
73
- store["active_connections"] = item_id
74
-
75
- ["writing", "reading", "waiting"].each do |param|
76
- # 'nginx #{param}'
77
- options = {
78
- 'description' => "nginx #{param}",
79
- 'key_' => "nginx_status[http://127.0.0.1:8010/status,#{param}]",
80
- 'hostid' => t_id.to_i,
81
- 'applications' => [ a_id.to_i ],
82
- 'history' => 7,
83
- 'trends' => 30,
84
- 'delay' => 60,
85
- 'value_type' => 0
86
- }
87
- p " ** Add 'nginx #{param}' to #{template_name}."
88
- item_id = zbx.add_or_get_item(t_id, options)
89
-
90
- store[param] = item_id
91
- end
92
-
93
- ["handled", "accepts", "requests"].each do |param|
94
- # 'nginx #{param}'
95
- options = {
96
- 'description' => "nginx #{param}",
97
- 'key_' => "nginx_status[http://127.0.0.1:8010/status,#{param}]",
98
- 'hostid' => t_id.to_i,
99
- 'applications' => [ a_id.to_i ],
100
- 'history' => 7,
101
- 'trends' => 30,
102
- 'delay' => 60,
103
- 'value_type' => '3', # Numeric (unsigned)
104
- 'delta' => 1 # Store as delta (Speed per second)
105
- }
106
- p " ** Add 'nginx #{param}' to #{template_name}."
107
- item_id = zbx.add_or_get_item(t_id, options)
108
-
109
- store[param] = item_id
110
- end
111
-
112
- # TRIGGERS
113
- options = {
114
- 'description' => "nginx service status",
115
- 'expression' => "{#{template_name}:runit_service[nginx].last(0)}#0",
116
- 'priority' => 5, # disaster
117
- 'templateid' => 0,
118
- 'comments' => "nginx service status (disaster)",
119
- 'type' => 0,
120
- 'status' => '0'
121
- }
122
-
123
- p " ** Add 'nginx service status' trigger"
124
- tr_id = zbx.add_or_get_trigger(t_id, options)
125
-
126
- # GRAPHS
127
- options = {
128
- 'gitems' => [
129
- {
130
- "itemid" => store["active_connections"],
131
- "drawtype" => "0",
132
- "sortorder" => "0",
133
- "color" => "AA0000",
134
- "yaxisside" => "0",
135
- "calc_fnc" => "2",
136
- "type" => "0",
137
- "periods_cnt" => "5"
138
- },
139
- {
140
- "itemid" => store["writing"],
141
- "drawtype" => "0",
142
- "sortorder" => "0",
143
- "color" => "009900",
144
- "yaxisside" => "0",
145
- "calc_fnc" => "2",
146
- "type" => "0",
147
- "periods_cnt" => "5"
148
- },
149
- {
150
- "itemid" => store["waiting"],
151
- "drawtype" => "0",
152
- "sortorder" => "0",
153
- "color" => "0000AA",
154
- "yaxisside" => "0",
155
- "calc_fnc" => "2",
156
- "type" => "0",
157
- "periods_cnt" => "5"
158
- }
159
- ],
160
- "show_triggers" => "1",
161
- "name" => "Nginx status",
162
- "width" => "900",
163
- "height" => "200",
164
- "templateid" => "0"
165
- }
166
-
167
- g_id = zbx.add_or_get_graph(t_id, options)
@@ -1,112 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rubygems'
4
- require 'getopt/std'
5
- require 'yaml'
6
- require 'zabbixapi'
7
- require 'digest'
8
-
9
- opt = Getopt::Std.getopts("g:i:E:")
10
-
11
- group_name = opt["g"]
12
- zabbix_env = opt["E"]
13
-
14
- template_name = "TMPL_nginx_500"
15
- app_name = "Nginx_500"
16
-
17
- # read config
18
- config = YAML::load(open('./config.yml'))
19
-
20
- api_url = config[zabbix_env]["api_url"]
21
- api_login = config[zabbix_env]["api_login"]
22
- api_password = config[zabbix_env]["api_password"]
23
-
24
- # Monitor all /var/log/nginx/#{access_log_files}.log
25
- access_log_files = ["face-server-500", "api-server-500", "logger-face-500", "site-500"]
26
- # Search in log last min
27
- in_sec = 60 # in seconds
28
- # Monitor delay
29
- mon_delay_in_sec = 60 # in seconds
30
- # Disaster value
31
- disaster_value = 5
32
-
33
- # Esablish new connection
34
- zbx = Zabbix::ZabbixApi.new(api_url, api_login, api_password)
35
-
36
- # Create new template
37
- p " * Creating template #{template_name}."
38
- g_id = zbx.add_or_get_group(group_name)
39
-
40
- options = {
41
- 'groups' => [ g_id.to_i ],
42
- 'host' => template_name
43
- }
44
-
45
- t_id = zbx.add_or_get_template(options)
46
-
47
- # Create application #{app_name}
48
- p " ** Create application #{app_name}."
49
- application = {
50
- 'hostid' => t_id.to_i,
51
- 'name' => app_name
52
- }
53
- a_id = zbx.add_or_get_application(t_id, application)
54
-
55
- store = Hash.new()
56
- # 'nginx_500 error rate'
57
- access_log_files.each do |param|
58
- # 'nginx #{param}'
59
- options = {
60
- 'description' => "nginx error rate #{param}.log",
61
- 'key_' => "nginx_500[/var/log/nginx/#{param}.log,#{in_sec}]",
62
- 'hostid' => t_id.to_i,
63
- 'applications' => [ a_id.to_i ],
64
- 'history' => 70,
65
- 'trends' => 30,
66
- 'delay' => "#{mon_delay_in_sec}",
67
- 'value_type' => 0
68
- }
69
- p " ** Add 'nginx_500 #{param}' to #{template_name}."
70
- item_id = zbx.add_or_get_item(t_id, options)
71
-
72
- store["nginx_500_error_rate_log_#{param}"] = item_id
73
- end
74
-
75
- # TRIGGERS
76
- access_log_files.each do |param|
77
- # 'nginx #{param}'
78
- options = {
79
- 'description' => "nginx error log disaster for /var/log/nginx/#{param}.log",
80
- 'expression' => "{#{template_name}:nginx_500[/var/log/nginx/#{param}.log,#{in_sec}].last(0)}>#{disaster_value}",
81
- 'priority' => 5, # disaster
82
- 'templateid' => 0,
83
- 'comments' => "nginx error rate disaster for /var/log/nginx/#{param}.log errors > #{disaster_value} in last #{in_sec} min",
84
- 'type' => 0,
85
- 'status' => '0'
86
- }
87
- p " ** Add 'nginx service status' trigger for #{param}"
88
- tr_id = zbx.add_or_get_trigger(t_id, options)
89
-
90
- end
91
-
92
- # GRAPHS
93
- gitems = access_log_files.map do |param| {
94
- "itemid" => store["nginx_500_error_rate_log_#{param}"],
95
- "drawtype" => "0",
96
- "sortorder" => "0",
97
- "color" => Digest::MD5.hexdigest("#{param}").to_s[0..6],
98
- "yaxisside" => "0",
99
- "calc_fnc" => "2",
100
- "type" => "0",
101
- "periods_cnt" => "5"
102
- }
103
- end
104
- options = {
105
- 'gitems' => gitems,
106
- "show_triggers" => "0",
107
- "name" => "Nginx error rate",
108
- "width" => "900",
109
- "height" => "200"
110
- }
111
-
112
- g_id = zbx.add_or_get_graph(t_id, options)
data/examples/zabbix_ntp DELETED
@@ -1,71 +0,0 @@
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:i:E:")
9
-
10
- group_name = opt["g"]
11
- zabbix_env = opt["E"]
12
-
13
- template_name = "TMPL_ntp"
14
- app_name = "NTP"
15
-
16
- # read config
17
- config = YAML::load(open('./config.yml'))
18
-
19
- api_url = config[zabbix_env]["api_url"]
20
- api_login = config[zabbix_env]["api_login"]
21
- api_password = config[zabbix_env]["api_password"]
22
-
23
- # Esablish new connection
24
- zbx = Zabbix::ZabbixApi.new(api_url, api_login, api_password)
25
-
26
- # Create new template
27
- p " * Creating template #{template_name}."
28
- g_id = zbx.add_or_get_group(group_name)
29
-
30
- options = {
31
- 'groups' => [ g_id.to_i ],
32
- 'host' => template_name
33
- }
34
-
35
- t_id = zbx.add_or_get_template(options)
36
-
37
- # Create application #{app_name}
38
- p " ** Create application #{app_name}."
39
- application = {
40
- 'hostid' => t_id.to_i,
41
- 'name' => app_name
42
- }
43
- a_id = zbx.add_or_get_application(t_id, application)
44
-
45
- # 'ntpd process exists'
46
- options = {
47
- 'description' => "ntpd process exists",
48
- 'key_' => "proc.num[ntpd]",
49
- 'hostid' => t_id.to_i,
50
- 'applications' => [ a_id.to_i ],
51
- 'history' => 7,
52
- 'trends' => 30,
53
- 'delay' => 120,
54
- 'value_type' => 0
55
- }
56
- p " ** Add 'ntpd process exists' to #{template_name}."
57
- item_id = zbx.add_or_get_item(t_id, options)
58
-
59
- # TRIGGERS
60
- options = {
61
- 'description' => "ntpd process exists",
62
- 'expression' => "{#{template_name}:proc.num[ntpd].last(0)}<1",
63
- 'priority' => 5, # disaster
64
- 'templateid' => 0,
65
- 'comments' => "ntpd process exists (disaster)",
66
- 'type' => 0,
67
- 'status' => '0'
68
- }
69
-
70
- p " ** Add 'ntpd process exists' trigger"
71
- tr_id = zbx.add_or_get_trigger(t_id, options)
@@ -1,111 +0,0 @@
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_nv_gputemp_sensor"
14
- app_name = "nv_gputemp_sensor"
15
- high_temperature = '70'
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
- p " ** Create application #{app_name}."
41
- application = {
42
- 'hostid' => t_id.to_i,
43
- 'name' => app_name
44
- }
45
- a_id = zbx.add_or_get_application(t_id, application)
46
-
47
- # 'cpu temperature sensor'
48
- options = {
49
- 'description' => "Nvidia GPU Temperature sensor",
50
- 'key_' => "nv-gputemp",
51
- 'hostid' => t_id.to_i,
52
- 'applications' => [ a_id.to_i ],
53
- 'history' => 7,
54
- 'trends' => 30,
55
- 'delay' => 60,
56
- 'value_type' => '3',
57
- 'units' => 'C'
58
- }
59
- p " ** Add 'nv-gputemp' to #{template_name}."
60
- sensor_item_id = zbx.add_or_get_item(t_id, options)
61
-
62
- # TRIGGER
63
- # nv-gputemp disaster (high threshold)
64
- options = {
65
- 'description' => "Nvidia GPU Temperature sensor warning",
66
- 'expression' => "{#{template_name}:nv-gputemp.last(0)}>#{high_temperature}",
67
- 'priority' => 2, # warning
68
- 'templateid' => 0,
69
- 'comments' => "Nvidia GPU temperature sensor (Warning)",
70
- 'type' => 0,
71
- 'status' => '0'
72
- }
73
- p " ** Add 'nv-gputemp sensor warning' trigger"
74
- tr_id = zbx.add_or_get_trigger(t_id, options)
75
-
76
- # TRIGGER
77
- # cputemp disaster (high threshold)
78
- options = {
79
- 'description' => "Nvidia GPU temperature sensor disaster",
80
- 'expression' => "{#{template_name}:nv-gputemp.last(0)}>#{crit_temperature}",
81
- 'priority' => 5, # disaster
82
- 'templateid' => 0,
83
- 'comments' => "Nvidia GPU temperature sensor (Disaster)",
84
- 'type' => 0,
85
- 'status' => '0'
86
- }
87
- p " ** Add 'cputemp sensor disaster' trigger"
88
- tr_id = zbx.add_or_get_trigger(t_id, options)
89
-
90
- # GRAPH
91
- options = {
92
- 'gitems' => [
93
- {
94
- "itemid" => sensor_item_id,
95
- "drawtype" => "0",
96
- "sortorder" => "0",
97
- "color" => "AA0000",
98
- "yaxisside" => "0",
99
- "calc_fnc" => "2",
100
- "type" => "0",
101
- "periods_cnt" => "5"
102
- }
103
- ],
104
- "show_triggers" => "1",
105
- "name" => "Nvidia GPU Temperature from nvidia-smi",
106
- "width" => "900",
107
- "height" => "200",
108
- "templateid" => "0"
109
- }
110
-
111
- g_id = zbx.add_or_get_graph(t_id, options)
@@ -1,125 +0,0 @@
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:i:E:")
9
-
10
- group_name = opt["g"]
11
- zabbix_env = opt["E"]
12
-
13
- template_name = "TMPL_pgsql"
14
- app_name = "PostgreSQL"
15
-
16
- # read config
17
- config = YAML::load(open('./config.yml'))
18
-
19
- api_url = config[zabbix_env]["api_url"]
20
- api_login = config[zabbix_env]["api_login"]
21
- api_password = config[zabbix_env]["api_password"]
22
-
23
- # Esablish new connection
24
- zbx = Zabbix::ZabbixApi.new(api_url, api_login, api_password)
25
-
26
- # Create new template
27
- p " * Creating template #{template_name}."
28
- g_id = zbx.add_or_get_group(group_name)
29
-
30
- options = {
31
- 'groups' => [ g_id.to_i ],
32
- 'host' => template_name
33
- }
34
-
35
- t_id = zbx.add_or_get_template(options)
36
-
37
- # Create application #{app_name}
38
- p " ** Create application #{app_name}."
39
- application = {
40
- 'hostid' => t_id.to_i,
41
- 'name' => app_name
42
- }
43
- a_id = zbx.add_or_get_application(t_id, application)
44
-
45
- # 'postgres process exists'
46
- options = {
47
- 'description' => "postgres process exists",
48
- 'key_' => "proc.num[postgres]",
49
- 'hostid' => t_id.to_i,
50
- 'applications' => [ a_id.to_i ],
51
- 'history' => 7,
52
- 'trends' => 30,
53
- 'delay' => 120,
54
- 'value_type' => 0
55
- }
56
- p " ** Add 'postgres process exists' to #{template_name}."
57
- item_id = zbx.add_or_get_item(t_id, options)
58
-
59
- # 'active connections count'
60
- options = {
61
- 'description' => "postgres active connections count",
62
- 'key_' => "pgsql.connection_count[]",
63
- 'hostid' => t_id.to_i,
64
- 'applications' => [ a_id.to_i ],
65
- 'history' => 7,
66
- 'trends' => 30,
67
- 'delay' => 120,
68
- 'value_type' => 0
69
- }
70
- p " ** Add 'postgres active connections count' to #{template_name}."
71
- item_id = zbx.add_or_get_item(t_id, options)
72
-
73
- # 'test connect'
74
- options = {
75
- 'description' => "postgres test connect",
76
- 'key_' => "pgsql.test_connect[]",
77
- 'hostid' => t_id.to_i,
78
- 'applications' => [ a_id.to_i ],
79
- 'history' => 7,
80
- 'trends' => 30,
81
- 'delay' => 120,
82
- 'value_type' => 0
83
- }
84
- p " ** Add 'postgres test connect' to #{template_name}."
85
- item_id = zbx.add_or_get_item(t_id, options)
86
-
87
- # TRIGGERS
88
- options = {
89
- 'description' => "postgres process exists",
90
- 'expression' => "{#{template_name}:proc.num[postgres].last(0)}<1",
91
- 'priority' => 5, # disaster
92
- 'templateid' => 0,
93
- 'comments' => "postgres process exists (disaster)",
94
- 'type' => 0,
95
- 'status' => '0'
96
- }
97
-
98
- p " ** Add 'postgres process exists' trigger"
99
- tr_id = zbx.add_or_get_trigger(t_id, options)
100
-
101
- options = {
102
- 'description' => "postgres test connect",
103
- 'expression' => "{#{template_name}:pgsql.test_connect[].last(0)}#0",
104
- 'priority' => 5, # disaster
105
- 'templateid' => 0,
106
- 'comments' => "postgres test connect (disaster)",
107
- 'type' => 0,
108
- 'status' => '0'
109
- }
110
-
111
- p " ** Add 'postgres test connect' trigger"
112
- tr_id = zbx.add_or_get_trigger(t_id, options)
113
-
114
- options = {
115
- 'description' => "postgres connection count",
116
- 'expression' => "{#{template_name}:pgsql.connection_count[].last(0)}>700",
117
- 'priority' => 5, # disaster
118
- 'templateid' => 0,
119
- 'comments' => "postgres connection count (disaster)",
120
- 'type' => 0,
121
- 'status' => '0'
122
- }
123
-
124
- p " ** Add 'postgres connection count' trigger"
125
- tr_id = zbx.add_or_get_trigger(t_id, options)
@@ -1,71 +0,0 @@
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:i:E:")
9
-
10
- group_name = opt["g"]
11
- zabbix_env = opt["E"]
12
-
13
- template_name = "TMPL_zabbix_server"
14
- app_name = "zabbix_server"
15
-
16
- # read config
17
- config = YAML::load(open('./config.yml'))
18
-
19
- api_url = config[zabbix_env]["api_url"]
20
- api_login = config[zabbix_env]["api_login"]
21
- api_password = config[zabbix_env]["api_password"]
22
-
23
- # Esablish new connection
24
- zbx = Zabbix::ZabbixApi.new(api_url, api_login, api_password)
25
-
26
- # Create new template
27
- p " * Creating template #{template_name}."
28
- g_id = zbx.add_or_get_group(group_name)
29
-
30
- options = {
31
- 'groups' => [ g_id.to_i ],
32
- 'host' => template_name
33
- }
34
-
35
- t_id = zbx.add_or_get_template(options)
36
-
37
- # Create application #{app_name}
38
- p " ** Create application #{app_name}."
39
- application = {
40
- 'hostid' => t_id.to_i,
41
- 'name' => app_name
42
- }
43
- a_id = zbx.add_or_get_application(t_id, application)
44
-
45
- # 'zabbix_server process exists'
46
- options = {
47
- 'description' => "zabbix_server process exists",
48
- 'key_' => "proc.num[zabbix_server]",
49
- 'hostid' => t_id.to_i,
50
- 'applications' => [ a_id.to_i ],
51
- 'history' => 7,
52
- 'trends' => 30,
53
- 'delay' => 120,
54
- 'value_type' => 0
55
- }
56
- p " ** Add 'zabbix_server process exists' to #{template_name}."
57
- item_id = zbx.add_or_get_item(t_id, options)
58
-
59
- # TRIGGERS
60
- options = {
61
- 'description' => "zabbix_server process exists",
62
- 'expression' => "{#{template_name}:proc.num[zabbix_server].last(0)}<1",
63
- 'priority' => 5, # disaster
64
- 'templateid' => 0,
65
- 'comments' => "zabbix_server process exists (disaster)",
66
- 'type' => 0,
67
- 'status' => '0'
68
- }
69
-
70
- p " ** Add 'zabbix_server process exists' trigger"
71
- tr_id = zbx.add_or_get_trigger(t_id, options)