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,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)