zabbixapi 0.3.0 → 0.4.1

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.
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,110 +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_ipmi"
14
- app_name = "ipmi"
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
- store = Hash.new()
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
- # 'System temp'
48
- options = {
49
- 'description' => "sys-temp",
50
- 'key_' => "ipmi.sys-temp",
51
- 'hostid' => t_id.to_i,
52
- 'applications' => [ a_id.to_i ],
53
- 'history' => 7,
54
- 'trends' => 30,
55
- 'delay' => 60,
56
- 'value_type' => 0
57
- }
58
- p " ** Add 'System temp' to #{template_name}."
59
- item_id = zbx.add_or_get_item(t_id, options)
60
-
61
- store["sys-temp"] = item_id
62
-
63
- # TRIGGERS
64
- options = {
65
- 'description' => "System temp",
66
- 'expression' => "{#{template_name}:ipmi.sys-temp.last(0)}>55",
67
- 'priority' => 5, # disaster
68
- 'templateid' => 0,
69
- 'comments' => "System temp (disaster)",
70
- 'type' => 0,
71
- 'status' => '0'
72
- }
73
-
74
- p " ** Add 'System temp status' trigger"
75
- tr_id = zbx.add_or_get_trigger(t_id, options)
76
-
77
- options = {
78
- 'description' => "System temp",
79
- 'expression' => "{#{template_name}:ipmi.sys-temp.last(0)}>50",
80
- 'priority' => 3, # warning
81
- 'templateid' => 0,
82
- 'comments' => "System temp (warning)",
83
- 'type' => 0,
84
- 'status' => '0'
85
- }
86
-
87
- p " ** Add 'System temp status' trigger"
88
- tr_id = zbx.add_or_get_trigger(t_id, options)
89
-
90
- # GRAPHS
91
- options = {
92
- 'gitems' => [
93
- {
94
- "itemid" => store["sys-temp"],
95
- "drawtype" => "0",
96
- "sortorder" => "0",
97
- "color" => "009900",
98
- "yaxisside" => "0",
99
- "calc_fnc" => "2",
100
- "type" => "0",
101
- "periods_cnt" => "5"
102
- }
103
- ],
104
- "show_triggers" => "1",
105
- "name" => "System temp",
106
- "width" => "900",
107
- "height" => "200",
108
- "templateid" => "0"
109
- }
110
- g_id = zbx.add_or_get_graph(t_id, options)
data/examples/zabbix_la DELETED
@@ -1,136 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rubygems'
4
- require 'yaml'
5
- require 'getopt/std'
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_Load_average"
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
-
25
- # Create new template
26
- p " * Creating template #{template_name}."
27
- g_id = zbx.add_or_get_group(group_name)
28
-
29
- options = {
30
- 'groups' => [ g_id.to_i ],
31
- 'host' => template_name
32
- }
33
-
34
- t_id = zbx.add_or_get_template(options)
35
-
36
- # Create application #{app_name}
37
- app_name = "Load_average"
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
- # 'Load Average 1'
46
- options = {
47
- 'description' => "Load Average 1",
48
- 'key_' => "system.cpu.load[,avg1]",
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 'Load Average 1' to #{template_name}."
57
-
58
- la_1_item_id = zbx.add_or_get_item(t_id, options)
59
-
60
- # 'Load Average 5'
61
- options = {
62
- 'description' => "Load Average 5",
63
- 'key_' => "system.cpu.load[,avg5]",
64
- 'hostid' => t_id.to_i,
65
- 'applications' => [ a_id.to_i ],
66
- 'history' => 7,
67
- 'trends' => 30,
68
- 'delay' => 300,
69
- 'value_type' => 0
70
- }
71
- p " ** Add 'Load Average 5' to #{template_name}."
72
-
73
- la_5_item_id = zbx.add_or_get_item(t_id, options)
74
-
75
- # TRIGGERS
76
-
77
- options = {
78
- 'description' => "Load Average",
79
- 'expression' => "{#{template_name}:system.cpu.load[,avg5].last(0)}>5",
80
- 'priority' => 2, # warning
81
- 'templateid' => 0,
82
- 'comments' => "Load Average (warning)",
83
- 'type' => 0,
84
- 'status' => '0'
85
- }
86
-
87
- p " ** Add 'Load Average warning trigger'"
88
- tr_id = zbx.add_or_get_trigger(t_id, options)
89
-
90
- options = {
91
- 'description' => "Load Average",
92
- 'expression' => "{#{template_name}:system.cpu.load[,avg5].last(0)}>10",
93
- 'priority' => 5, # disaster
94
- 'templateid' => 0,
95
- 'comments' => "Load Average (disaster)",
96
- 'type' => 0,
97
- 'status' => '0'
98
- }
99
-
100
- p " ** Add 'Load Average disaster trigger'"
101
- tr_id = zbx.add_or_get_trigger(t_id, options)
102
-
103
- # GRAPHS
104
-
105
- options = {
106
- 'gitems' => [
107
- {
108
- "itemid" => la_1_item_id,
109
- "drawtype" => "0",
110
- "sortorder" => "0",
111
- "color" => "AA0000",
112
- "yaxisside" => "0",
113
- "calc_fnc" => "2",
114
- "type" => "0",
115
- "periods_cnt" => "5"
116
- },
117
- {
118
- "itemid" => la_5_item_id,
119
- "drawtype" => "0",
120
- "sortorder" => "0",
121
- "color" => "009900",
122
- "yaxisside" => "0",
123
- "calc_fnc" => "2",
124
- "type" => "0",
125
- "periods_cnt" => "5"
126
- }
127
- ],
128
- "show_triggers" => "1",
129
- "name" => "Load Average",
130
- "width" => "900",
131
- "height" => "200",
132
- "templateid" => "0"
133
- }
134
-
135
- p " ** Add 'Load Average graph'"
136
- 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 'yaml'
5
- require 'getopt/std'
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_mailer"
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
-
25
- # Create new template
26
- p " * Creating template #{template_name}."
27
- g_id = zbx.add_or_get_group(group_name)
28
-
29
- options = {
30
- 'groups' => [ g_id.to_i ],
31
- 'host' => template_name
32
- }
33
-
34
- t_id = zbx.add_or_get_template(options)
35
-
36
- # Create application #{app_name}
37
- app_name = "mailer"
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
- # 'mailq_size'
46
- options = {
47
- 'description' => "mailq size",
48
- 'key_' => "mailer.mailq",
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 'mailer.mailq' to #{template_name}."
57
-
58
- mailq = zbx.add_or_get_item(t_id, options)
59
-
60
- # Exim
61
- options = {
62
- 'description' => "num of exim",
63
- 'key_' => "proc.num[exim4]",
64
- 'hostid' => t_id.to_i,
65
- 'applications' => [ a_id.to_i ],
66
- 'history' => 7,
67
- 'trends' => 30,
68
- 'delay' => 120,
69
- 'value_type' => 0
70
- }
71
- p " ** Add 'num of exim' to #{template_name}."
72
- item_id = zbx.add_or_get_item(t_id, options)
73
-
74
- # TRIGGERS
75
-
76
- options = {
77
- 'description' => "mailq size",
78
- 'expression' => "{#{template_name}:mailer.mailq.last(0)}>100",
79
- 'priority' => 2, # warning
80
- 'templateid' => 0,
81
- 'comments' => "Mailq size too big",
82
- 'type' => 0,
83
- 'status' => '0'
84
- }
85
-
86
- p " ** Add 'mailq warning trigger'"
87
- tr_id = zbx.add_or_get_trigger(t_id, options)
88
-
89
- options = {
90
- 'description' => "exim is running",
91
- 'expression' => "{#{template_name}:proc.num[exim4].last(0)}<1",
92
- 'priority' => 5, # disaster
93
- 'templateid' => 0,
94
- 'comments' => "Exim is down, call Stepan or Skipka",
95
- 'type' => 0,
96
- 'status' => '0'
97
- }
98
-
99
- p " ** Add 'Exim is down' trigger"
100
- tr_id = zbx.add_or_get_trigger(t_id, options)
101
-
102
- # GRAPHS
103
-
104
- options = {
105
- 'gitems' => [
106
- {
107
- "itemid" => mailq,
108
- "drawtype" => "0",
109
- "sortorder" => "0",
110
- "color" => "AA0000",
111
- "yaxisside" => "0",
112
- "calc_fnc" => "2",
113
- "type" => "0",
114
- "periods_cnt" => "5"
115
- },
116
- ],
117
- "show_triggers" => "1",
118
- "name" => "mailq size",
119
- "width" => "900",
120
- "height" => "200",
121
- "templateid" => "0"
122
- }
123
-
124
- p " ** Add 'mailq size graph'"
125
- g_id = zbx.add_or_get_graph(t_id, options)
@@ -1,72 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rubygems'
4
- require 'yaml'
5
- require 'getopt/std'
6
- require 'zabbixapi'
7
-
8
- opt = Getopt::Std.getopts("g:E:n:")
9
-
10
- group_name = opt["g"]
11
- zabbix_env = opt["E"]
12
- raid_name = opt["n"]
13
-
14
- template_name = "TMPL_mdadm_#{raid_name}"
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
- t_id = zbx.add_or_get_template(options)
35
-
36
- # Create application #{app_name}
37
- app_name = "mdadm_#{raid_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
- # 'state of #{raid_name}'
46
- options = {
47
- 'description' => "state of #{raid_name}",
48
- 'key_' => "mdadm.state[#{raid_name}]",
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 'mdadm.state[#{raid_name}]' to #{template_name}."
57
- item_id = zbx.add_or_get_item(t_id, options)
58
-
59
- # TRIGGERS
60
- options = {
61
- 'description' => "#{raid_name} is faulty",
62
- 'expression' => "{#{template_name}:mdadm.state[#{raid_name}].last(0)}>0",
63
- 'priority' => 5, # disaster
64
- 'templateid' => 0,
65
- 'comments' => "#{raid_name} is faulty (disaster)",
66
- 'type' => 0,
67
- 'status' => '0'
68
- }
69
-
70
- p " ** Add '#{raid_name} disaster' trigger'"
71
- zbx.debug = true
72
- 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_MegaRAID"
14
- app_name = "MegaRAID"
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
- # 'MegaRAID degraded count'
46
- options = {
47
- 'description' => "MegaRAID degraded count",
48
- 'key_' => "megaraid.degraded[]",
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 'MegaRAID degraded count' to #{template_name}."
57
- item_id = zbx.add_or_get_item(t_id, options)
58
-
59
- # TRIGGERS
60
- options = {
61
- 'description' => "MegaRAID degraded count",
62
- 'expression' => "{#{template_name}:megaraid.degraded[].last(0)}#0",
63
- 'priority' => 5, # disaster
64
- 'templateid' => 0,
65
- 'comments' => "MegaRAID degraded count (disaster)",
66
- 'type' => 0,
67
- 'status' => '0'
68
- }
69
-
70
- p " ** Add 'MegaRAID degraded count' trigger"
71
- tr_id = zbx.add_or_get_trigger(t_id, options)