cloudstack-nagios 0.14.2 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 1.9.3-p392
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cloudstack-nagios (0.14.2)
5
- cloudstack_client (~> 0.5, >= 0.5.0)
4
+ cloudstack-nagios (0.15.0)
5
+ cloudstack_client (~> 0.7, >= 0.7.1)
6
6
  erubis (~> 2.7.0)
7
7
  highline (~> 1.6.20)
8
8
  sshkit (~> 1.3.0)
@@ -11,7 +11,7 @@ PATH
11
11
  GEM
12
12
  remote: https://rubygems.org/
13
13
  specs:
14
- cloudstack_client (0.6.4)
14
+ cloudstack_client (0.7.1)
15
15
  erubis (2.7.0)
16
16
  highline (1.6.21)
17
17
  json (1.8.1)
@@ -19,7 +19,7 @@ GEM
19
19
  net-ssh (>= 2.6.5)
20
20
  net-ssh (2.9.1)
21
21
  rake (10.3.2)
22
- rdoc (4.1.1)
22
+ rdoc (4.1.2)
23
23
  json (~> 1.4)
24
24
  sshkit (1.3.0)
25
25
  net-scp (>= 1.1.2)
@@ -28,7 +28,7 @@ GEM
28
28
  term-ansicolor (1.3.0)
29
29
  tins (~> 1.0)
30
30
  thor (0.19.1)
31
- tins (1.3.2)
31
+ tins (1.3.3)
32
32
 
33
33
  PLATFORMS
34
34
  ruby
data/README.md CHANGED
@@ -76,6 +76,8 @@ hostgroups
76
76
  zone_hosts
77
77
  router_hosts
78
78
  router_services
79
+ system_vm_hosts
80
+ system_vm_services
79
81
  capacities
80
82
  async_jobs
81
83
  storage_pools
@@ -85,22 +87,33 @@ storage_pools
85
87
 
86
88
  For all vm checks access to the cloudstack management network is required in order to run the ckecks via ssh or snmp.
87
89
 
88
- #### Check system vms over ssh
90
+ #### Types
91
+
92
+ cloudstack-nagios differentiates between 2 different types of system vm's:
93
+ * routers: `cs-nagios check router`
94
+ * secondary storage vms and console proxies: `cs-nagios check system_vm`
95
+
96
+ #### Checks
89
97
 
90
98
  The following checks are available:
91
99
 
100
+ General Checks
92
101
  * memory - measure memory usage in percents
93
102
  * cpu - measure cpu usage in percent
94
103
  * network - measure network usage
95
- * rootfs_rw - check if the root file system is writeable
104
+ * fs_rw - check if the root file system is writeable
105
+ * rootfs_rw - check if the root file system is writeable (wrapper for fs_rw with mount point /)
96
106
  * disk_usage - check the diks space usage of the root volume
107
+
108
+ Checks for routers
97
109
  * conntrack_connections, check the number of conntrack connections and set proper limits if needed
98
110
  * active_ftp - make sure conntrack_ftp and nf_nat_ftp modules are loaded and enable it if needed
99
111
 
100
- Example:
112
+ Examples:
101
113
 
102
114
  ```sh
103
115
  $ cs-nagios check system_vm network --host 10.100.9.161
116
+ $ cs-nagios check router active_ftp --host 10.100.9.177
104
117
  ```
105
118
 
106
119
  #### Enabling snmpd checks for system vms
@@ -22,10 +22,10 @@ Gem::Specification.new do |gem|
22
22
 
23
23
  gem.add_development_dependency('rdoc')
24
24
  gem.add_development_dependency('rake', '~> 10.3.1')
25
-
26
- gem.add_dependency('cloudstack_client', '~> 0.5', '>= 0.5.0')
25
+
26
+ gem.add_dependency('cloudstack_client', '~> 0.7', '>= 0.7.1')
27
27
  gem.add_dependency('thor', '~> 0.19.1')
28
28
  gem.add_dependency('erubis', '~> 2.7.0')
29
29
  gem.add_dependency('sshkit', '~> 1.3.0')
30
30
  gem.add_dependency('highline', '~> 1.6.20')
31
- end
31
+ end
@@ -1,3 +1,4 @@
1
+ require "cloudstack-nagios/commands/system_vm"
1
2
  require "cloudstack-nagios/commands/router"
2
3
  require "cloudstack-nagios/commands/capacity"
3
4
 
@@ -33,13 +34,13 @@ class Check < CloudstackNagios::Base
33
34
  desc "router SUBCOMMAND ...ARGS", "router checks"
34
35
  subcommand :router, Router
35
36
 
36
- desc "capacity SUBCOMMAND ...ARGS", "capacity checks"
37
- subcommand :capacity, Capacity
37
+ desc "system_vm SUBCOMMAND ...ARGS", "system vm checks"
38
+ subcommand :system_vm, SystemVm
38
39
 
39
- desc "storage_pool SUBCOMMAND ...ARGS", "storage_pool checks"
40
+ desc "capacity SUBCOMMAND ...ARGS", "capacity checks"
40
41
  subcommand :capacity, Capacity
41
42
 
42
- desc "capacity", "check capacity of storage_pool"
43
+ desc "storage_pool", "check capacity of storage_pool"
43
44
  option :pool_name, required: true
44
45
  option :zone
45
46
  option :over_provisioning, type: :numeric, default: 1.0,
@@ -81,9 +82,9 @@ class Check < CloudstackNagios::Base
81
82
  code = 0
82
83
  elsif outstanding_jobs.size < options[:critical]
83
84
  code = 1
84
- else
85
+ else
85
86
  code = 2
86
- end
87
+ end
87
88
  puts "async_jobs #{RETURN_CODES[code]} - jobs = #{outstanding_jobs.size} | jobs=#{outstanding_jobs.size}"
88
89
  end
89
- end
90
+ end
@@ -31,6 +31,7 @@ class NagiosConfig < CloudstackNagios::Base
31
31
  end
32
32
 
33
33
  routers = configs.include?("router_hosts") ? cs_routers : nil
34
+ system_vms = configs.include?("system_vm_hosts") ? cs_system_vms : nil
34
35
  pools = configs.include?("storage_pools") ? storage_pools : nil
35
36
  zones = client.list_zones
36
37
  config_name = configs.size == 1 ?
@@ -51,6 +52,7 @@ class NagiosConfig < CloudstackNagios::Base
51
52
  template = load_template(tmpl_file)
52
53
  output += template.result(
53
54
  routers: routers,
55
+ system_vms: system_vms,
54
56
  bin_path: bin_path,
55
57
  if_speed: options[:if_speed],
56
58
  config_file: options[:config],
@@ -78,7 +80,7 @@ class NagiosConfig < CloudstackNagios::Base
78
80
  no_commands do
79
81
 
80
82
  def get_configs(configs = [])
81
- all_configs = %w(hostgroups zone_hosts router_hosts router_services capacities async_jobs storage_pools)
83
+ all_configs = %w(hostgroups zone_hosts router_hosts router_services system_vm_hosts system_vm_services capacities async_jobs storage_pools)
82
84
  if configs.size == 0
83
85
  return all_configs
84
86
  else
@@ -102,4 +104,4 @@ class NagiosConfig < CloudstackNagios::Base
102
104
  end
103
105
  end
104
106
 
105
- end
107
+ end
@@ -1,117 +1,10 @@
1
- require 'sshkit/dsl'
1
+ require "cloudstack-nagios/commands/system_vm"
2
2
 
3
- class Router < CloudstackNagios::Base
4
-
5
- desc "memory HOST", "check memory on host"
6
- def memory
7
- begin
8
- host = systemvm_host
9
- free_output = ""
10
- on host do |h|
11
- free_output = capture(:free)
12
- end
13
- values = free_output.scan(/\d+/)
14
- total = values[0].to_i
15
- free = values[2].to_i
16
- free_b = values[7].to_i
17
- data = check_data(total, total - free_b, options[:warning], options[:critical])
18
- puts "MEMORY #{RETURN_CODES[data[0]]} - usage = #{data[1]}% (#{((total - free_b)/1024.0).round(0)}/#{(total/1024.0).round(0)}MB) | \
19
- usage=#{data[1]}% total=#{total}M free=#{free}M free_wo_buffers=#{free_b}M".gsub(/\s+/, " ")
20
- exit data[0]
21
- rescue => e
22
- exit_with_failure(e)
23
- end
24
- end
25
-
26
- desc "cpu", "check memory on host"
27
- def cpu
28
- begin
29
- host = systemvm_host
30
- mpstat_output = ""
31
- on host do |h|
32
- mpstat_output = capture(:mpstat)
33
- end
34
- values = mpstat_output.scan(/\d+\.\d+/)
35
- usage = 100 - values[-1].to_f
36
- data = check_data(100, usage, options[:warning], options[:critical])
37
- puts "CPU #{RETURN_CODES[data[0]]} - usage = #{data[1]}% | usage=#{data[1]}%"
38
- exit data[0]
39
- rescue => e
40
- exit_with_failure(e)
41
- end
42
- end
3
+ class Router < SystemVm
43
4
 
44
5
  desc "rootfs_rw", "check if the rootfs is read/writeable on host"
45
6
  def rootfs_rw
46
- begin
47
- host = systemvm_host
48
- test_file = '/rootdiskcheck.txt'
49
- rootfs_rw = false
50
- on host do |h|
51
- rootfs_rw = execute(:touch, test_file)
52
- execute(:rm, '-f', test_file)
53
- end
54
- rescue SSHKit::Command::Failed
55
- rootfs_rw = false
56
- rescue => e
57
- exit_with_failure(e)
58
- end
59
- status = rootfs_rw ? 0 : 2
60
- puts "ROOTFS_RW #{rootfs_rw ? 'OK - rootfs writeable' : 'CRITICAL - rootfs NOT writeable'}"
61
- exit status
62
- end
63
-
64
- desc "disk_usage", "check the disk space usage of the root volume"
65
- option :partition, desc: "The partition to check", default: '/', aliases: '-P'
66
- def disk_usage
67
- begin
68
- host = systemvm_host
69
- partition = options[:partition]
70
- proc_out = ""
71
- on host do |h|
72
- proc_out = capture(:df, '-l', partition)
73
- end
74
- match = proc_out.match(/.*\s(\d+)%\s.*/)
75
- if match
76
- usage = match[1]
77
- data = check_data(100, usage, options[:warning], options[:critical])
78
- puts "DISK_USAGE #{RETURN_CODES[data[0]]} (Partition #{options[:partition]}) - usage = #{data[1]}% | usage=#{data[1]}%"
79
- exit data[0]
80
- else
81
- puts "DISK_USAGE UNKNOWN"
82
- end
83
- rescue => e
84
- exit_with_failure(e)
85
- end
86
- end
87
-
88
- desc "network", "check network usage on host"
89
- option :interface,
90
- desc: 'network interface to probe',
91
- default: 'eth0',
92
- aliases: '-i'
93
- option :if_speed,
94
- desc: 'network interface speed in bits per second',
95
- type: :numeric,
96
- default: 1000000,
97
- aliases: '-s'
98
- def network
99
- begin
100
- host = systemvm_host
101
- stats_path = "/sys/class/net/#{options[:interface]}/statistics"
102
- rx_bytes, tx_bytes = ""
103
- on host do |h|
104
- rx_bytes = capture("cat #{stats_path}/rx_bytes;sleep 1;cat #{stats_path}/rx_bytes").lines.to_a
105
- tx_bytes = capture("cat #{stats_path}/tx_bytes;sleep 1;cat #{stats_path}/tx_bytes").lines.to_a
106
- end
107
- rbps = (rx_bytes[1].to_i - rx_bytes[0].to_i) * 8
108
- tbps = (tx_bytes[1].to_i - tx_bytes[0].to_i) * 8
109
- data = check_data(options[:if_speed], rbps, options[:warning], options[:critical])
110
- puts "NETWORK #{RETURN_CODES[data[0]]} - usage = #{data[1]}% | usage=#{data[1]}% rxbps=#{rbps.round(0)} txbps=#{tbps.round(0)}"
111
- exit data[0]
112
- rescue => e
113
- exit_with_failure(e)
114
- end
7
+ invoke :fs_rw
115
8
  end
116
9
 
117
10
  desc "conntrack_connections", "check the number of conntrack connections"
@@ -168,21 +61,4 @@ class Router < CloudstackNagios::Base
168
61
  exit status
169
62
  end
170
63
 
171
- no_commands do
172
-
173
- def systemvm_host
174
- unless options[:host]
175
- say "Error: --host/-H option is required for this check.", :red
176
- exit 1
177
- end
178
- # suppress sshkit output to stdout
179
- SSHKit.config.output_verbosity = Logger::FATAL
180
- host = SSHKit::Host.new("root@#{options[:host]}")
181
- host.ssh_options = sshoptions(options[:ssh_key])
182
- host.port = options[:ssh_port]
183
- host
184
- end
185
-
186
- end
187
-
188
64
  end
@@ -0,0 +1,191 @@
1
+ require 'sshkit/dsl'
2
+
3
+ class SystemVm < CloudstackNagios::Base
4
+
5
+ desc "memory HOST", "check memory on host"
6
+ def memory
7
+ begin
8
+ host = systemvm_host
9
+ free_output = ""
10
+ on host do |h|
11
+ free_output = capture(:free)
12
+ end
13
+ values = free_output.scan(/\d+/)
14
+ total = values[0].to_i
15
+ free = values[2].to_i
16
+ free_b = values[7].to_i
17
+ data = check_data(total, total - free_b, options[:warning], options[:critical])
18
+ puts "MEMORY #{RETURN_CODES[data[0]]} - usage = #{data[1]}% (#{((total - free_b)/1024.0).round(0)}/#{(total/1024.0).round(0)}MB) | \
19
+ usage=#{data[1]}% total=#{total}M free=#{free}M free_wo_buffers=#{free_b}M".gsub(/\s+/, " ")
20
+ exit data[0]
21
+ rescue => e
22
+ exit_with_failure(e)
23
+ end
24
+ end
25
+
26
+ desc "cpu", "check memory on host"
27
+ def cpu
28
+ begin
29
+ host = systemvm_host
30
+ mpstat_output = ""
31
+ on host do |h|
32
+ mpstat_output = capture(:mpstat)
33
+ end
34
+ values = mpstat_output.scan(/\d+\.\d+/)
35
+ usage = 100 - values[-1].to_f
36
+ data = check_data(100, usage, options[:warning], options[:critical])
37
+ puts "CPU #{RETURN_CODES[data[0]]} - usage = #{data[1]}% | usage=#{data[1]}%"
38
+ exit data[0]
39
+ rescue => e
40
+ exit_with_failure(e)
41
+ end
42
+ end
43
+
44
+ desc "fs_rw", "check if the rootfs is read/writeable on host"
45
+ option :mount_point, desc: "The mount point to check", default: '/', aliases: '-m'
46
+ def fs_rw
47
+ begin
48
+ host = systemvm_host
49
+ test_file = File.join(options[:mount_point], 'rootdiskcheck.txt')
50
+ fs_rw = false
51
+ on host do |h|
52
+ fs_rw = execute(:touch, test_file)
53
+ execute(:rm, '-f', test_file)
54
+ end
55
+ rescue SSHKit::Command::Failed
56
+ fs_rw = false
57
+ rescue => e
58
+ exit_with_failure(e)
59
+ end
60
+ status = fs_rw ? 0 : 2
61
+ puts "FS_RW #{fs_rw ?
62
+ "OK - file system (#{options[:mount_point]}) writeable" :
63
+ "CRITICAL - file system (#{options[:mount_point]}) NOT writeable"}"
64
+ exit status
65
+ end
66
+
67
+ desc "disk_usage", "check the disk space usage of the root volume"
68
+ option :partition, desc: "The partition to check", default: '/', aliases: '-P'
69
+ def disk_usage
70
+ begin
71
+ host = systemvm_host
72
+ partition = options[:partition]
73
+ proc_out = ""
74
+ on host do |h|
75
+ proc_out = capture(:df, '-l', partition)
76
+ end
77
+ match = proc_out.match(/.*\s(\d+)%\s.*/)
78
+ if match
79
+ usage = match[1]
80
+ data = check_data(100, usage, options[:warning], options[:critical])
81
+ puts "DISK_USAGE #{RETURN_CODES[data[0]]} (Partition #{options[:partition]}) - usage = #{data[1]}% | usage=#{data[1]}%"
82
+ exit data[0]
83
+ else
84
+ puts "DISK_USAGE UNKNOWN"
85
+ end
86
+ rescue => e
87
+ exit_with_failure(e)
88
+ end
89
+ end
90
+
91
+ desc "network", "check network usage on host"
92
+ option :interface,
93
+ desc: 'network interface to probe',
94
+ default: 'eth0',
95
+ aliases: '-i'
96
+ option :if_speed,
97
+ desc: 'network interface speed in bits per second',
98
+ type: :numeric,
99
+ default: 1000000,
100
+ aliases: '-s'
101
+ def network
102
+ begin
103
+ host = systemvm_host
104
+ stats_path = "/sys/class/net/#{options[:interface]}/statistics"
105
+ rx_bytes, tx_bytes = ""
106
+ on host do |h|
107
+ rx_bytes = capture("cat #{stats_path}/rx_bytes;sleep 1;cat #{stats_path}/rx_bytes").lines.to_a
108
+ tx_bytes = capture("cat #{stats_path}/tx_bytes;sleep 1;cat #{stats_path}/tx_bytes").lines.to_a
109
+ end
110
+ rbps = (rx_bytes[1].to_i - rx_bytes[0].to_i) * 8
111
+ tbps = (tx_bytes[1].to_i - tx_bytes[0].to_i) * 8
112
+ data = check_data(options[:if_speed], rbps, options[:warning], options[:critical])
113
+ puts "NETWORK #{RETURN_CODES[data[0]]} - usage = #{data[1]}% | usage=#{data[1]}% rxbps=#{rbps.round(0)} txbps=#{tbps.round(0)}"
114
+ exit data[0]
115
+ rescue => e
116
+ exit_with_failure(e)
117
+ end
118
+ end
119
+
120
+ desc "conntrack_connections", "check the number of conntrack connections"
121
+ def conntrack_connections
122
+ begin
123
+ host = systemvm_host
124
+ default_max = 1000000
125
+ netfilter_path = "/proc/sys/net/netfilter/"
126
+ current, max = 0
127
+ on host do |h|
128
+ max = capture("cat #{netfilter_path}nf_conntrack_max").to_i
129
+ current = capture("cat #{netfilter_path}nf_conntrack_count").to_i
130
+ end
131
+ if max < default_max
132
+ on host do |h|
133
+ execute :echo, "#{default_max} > #{netfilter_path}nf_conntrack_max"
134
+ end
135
+ end
136
+ data = check_data(max, current, options[:warning], options[:critical])
137
+ puts "CONNTRACK_CONNECTIONS #{RETURN_CODES[data[0]]} - usage = #{data[1]}% (#{current.round(0)}/#{max.round(0)}) | usage=#{data[1]}% current=#{current.round(0)} max=#{max.round(0)}"
138
+ exit data[0]
139
+ rescue => e
140
+ exit_with_failure(e)
141
+ end
142
+ end
143
+
144
+ desc "active_ftp", "make sure conntrack_ftp and nf_nat_ftp modules are loaded"
145
+ def active_ftp
146
+ begin
147
+ host = systemvm_host
148
+ active_ftp_enabled = false
149
+ modules = %w(nf_conntrack_ftp, nf_nat_ftp)
150
+ on host do |h|
151
+ lsmod = capture(:lsmod)
152
+ active_ftp_enabled = lsmod.include?('nf_conntrack_ftp') &&
153
+ lsmod.include?('nf_nat_ftp')
154
+ unless active_ftp_enabled
155
+ # load the modules in the kernel
156
+ execute(:modprobe, 'nf_conntrack_ftp')
157
+ execute(:modprobe, 'nf_nat_ftp')
158
+ # load the modules at next server boot
159
+ execute(:echo, '"nf_conntrack_ftp" >> /etc/modules')
160
+ execute(:echo, '"nf_nat_ftp" >> /etc/modules')
161
+ active_ftp_enabled = true
162
+ end
163
+ end
164
+ rescue SSHKit::Command::Failed
165
+ active_ftp_enabled = false
166
+ rescue => e
167
+ exit_with_failure(e)
168
+ end
169
+ status = active_ftp_enabled ? 0 : 2
170
+ puts "ACTIVE_FTP #{active_ftp_enabled ? 'OK - active_ftp enabled' : 'CRITICAL - active_ftp NOT enabled'}"
171
+ exit status
172
+ end
173
+
174
+ no_commands do
175
+
176
+ def systemvm_host
177
+ unless options[:host]
178
+ say "Error: --host/-H option is required for this check.", :red
179
+ exit 1
180
+ end
181
+ # suppress sshkit output to stdout
182
+ SSHKit.config.output_verbosity = Logger::FATAL
183
+ host = SSHKit::Host.new("root@#{options[:host]}")
184
+ host.ssh_options = sshoptions(options[:ssh_key])
185
+ host.port = options[:ssh_port]
186
+ host
187
+ end
188
+
189
+ end
190
+
191
+ end
@@ -18,6 +18,10 @@ module CloudstackNagios
18
18
  routers += client.list_routers(projectid: -1, status: 'Running')
19
19
  end
20
20
 
21
+ def cs_system_vms
22
+ vms = client.list_system_vms
23
+ end
24
+
21
25
  def storage_pools
22
26
  storage_pools = client.list_storage_pools.select do |pool|
23
27
  pool['state'].downcase == 'up'
@@ -0,0 +1,15 @@
1
+
2
+ <% system_vms.each do |vm| -%>
3
+ <% if vm['privateip'] -%>
4
+ define host {
5
+ host_name <%= vm['name'] %>
6
+ display_name <%= vm['name'] %> (<%= vm['privateip'] %>) - <%= vm['zonename'] %>
7
+ address <%= vm['privateip'] %>
8
+ use Linux-Host,host-pnp
9
+ hostgroups CloudstackSystemVm
10
+ check_command check-host-alive
11
+ register 1
12
+ }
13
+
14
+ <% end -%>
15
+ <% end -%>
@@ -0,0 +1,84 @@
1
+
2
+ define command {
3
+ command_name cs-nagios_check_systemvm-memory
4
+ command_line <%= bin_path -%>cs-nagios check system_vm memory -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ --ssh-key <%= ssh_key %> --ssh-port <%= ssh_port %> --config <%= config_file %>
5
+ register 1
6
+ }
7
+
8
+ define command {
9
+ command_name cs-nagios_check_systemvm-cpu
10
+ command_line <%= bin_path -%>cs-nagios check system_vm cpu -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ --ssh-key <%= ssh_key %> --ssh-port <%= ssh_port %> --config <%= config_file %>
11
+ register 1
12
+ }
13
+
14
+ define command {
15
+ command_name cs-nagios_check_systemvm-network
16
+ command_line <%= bin_path -%>cs-nagios check system_vm network -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ --if-speed <%= if_speed %> --ssh-key <%= ssh_key %> --ssh-port <%= ssh_port %> --config <%= config_file %>
17
+ register 1
18
+ }
19
+
20
+ define command {
21
+ command_name cs-nagios_check_systemvm-fsrw
22
+ command_line <%= bin_path -%>cs-nagios check system_vm fs_rw -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ --ssh-key <%= ssh_key %> --ssh-port <%= ssh_port %> --config <%= config_file %>
23
+ register 1
24
+ }
25
+
26
+ define command {
27
+ command_name cs-nagios_check_systemvm-diskusage
28
+ command_line <%= bin_path -%>cs-nagios check system_vm disk_usage -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -P $ARG3$ --ssh-key <%= ssh_key %> --ssh-port <%= ssh_port %> --config <%= config_file %>
29
+ register 1
30
+ }
31
+
32
+ define service {
33
+ hostgroup_name CloudstackSystemVm
34
+ service_description Cloudstack Virtual System VM Memory
35
+ display_name Cloudstack Virtual System VM Memory
36
+ use Generic-Service,service-pnp
37
+ check_command cs-nagios_check_systemvm-memory!80!90
38
+ register 1
39
+ }
40
+
41
+ define service {
42
+ hostgroup_name CloudstackSystemVm
43
+ service_description Cloudstack Virtual System VM CPU
44
+ display_name Cloudstack Virtual System VM CPU
45
+ use Generic-Service,service-pnp
46
+ check_command cs-nagios_check_systemvm-cpu!80!90
47
+ register 1
48
+ }
49
+
50
+ define service {
51
+ hostgroup_name CloudstackSystemVm
52
+ service_description Cloudstack Virtual System VM Network
53
+ display_name Cloudstack Virtual System VM Network
54
+ use Generic-Service,service-pnp
55
+ check_command cs-nagios_check_systemvm-network!80!90
56
+ register 1
57
+ }
58
+
59
+ define service {
60
+ hostgroup_name CloudstackSystemVm
61
+ service_description Cloudstack Virtual System VM RootFS rw
62
+ display_name Cloudstack Virtual System VM RootFS rw
63
+ use Generic-Service,service-pnp
64
+ check_command cs-nagios_check_systemvm-rootfsrw!80!90
65
+ register 1
66
+ }
67
+
68
+ define service {
69
+ hostgroup_name CloudstackSystemVm
70
+ service_description Cloudstack Virtual System VM DiskUsageRoot
71
+ display_name Cloudstack Virtual System VM DiskUsage Root
72
+ use Generic-Service,service-pnp
73
+ check_command cs-nagios_check_systemvm-diskusage!80!90!/
74
+ register 1
75
+ }
76
+
77
+ define service {
78
+ hostgroup_name CloudstackSystemVm
79
+ service_description Cloudstack Virtual System VMDiskUsageVar
80
+ display_name Cloudstack Virtual System VM DiskUsage Var
81
+ use Generic-Service,service-pnp
82
+ check_command cs-nagios_check_systemvm-diskusage!80!90!/var
83
+ register 1
84
+ }
@@ -1,3 +1,3 @@
1
1
  module CloudstackNagios
2
- VERSION = "0.14.2"
2
+ VERSION = "0.15.0"
3
3
  end
metadata CHANGED
@@ -1,117 +1,132 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudstack-nagios
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.2
4
+ version: 0.15.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Nik Wolfgramm
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-09-05 00:00:00.000000000 Z
12
+ date: 2014-09-19 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rdoc
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - ">="
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: '0'
20
22
  type: :development
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - ">="
27
+ - - ! '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: '0'
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: rake
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - "~>"
35
+ - - ~>
32
36
  - !ruby/object:Gem::Version
33
37
  version: 10.3.1
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - "~>"
43
+ - - ~>
39
44
  - !ruby/object:Gem::Version
40
45
  version: 10.3.1
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: cloudstack_client
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - "~>"
51
+ - - ~>
46
52
  - !ruby/object:Gem::Version
47
- version: '0.5'
48
- - - ">="
53
+ version: '0.7'
54
+ - - ! '>='
49
55
  - !ruby/object:Gem::Version
50
- version: 0.5.0
56
+ version: 0.7.1
51
57
  type: :runtime
52
58
  prerelease: false
53
59
  version_requirements: !ruby/object:Gem::Requirement
60
+ none: false
54
61
  requirements:
55
- - - "~>"
62
+ - - ~>
56
63
  - !ruby/object:Gem::Version
57
- version: '0.5'
58
- - - ">="
64
+ version: '0.7'
65
+ - - ! '>='
59
66
  - !ruby/object:Gem::Version
60
- version: 0.5.0
67
+ version: 0.7.1
61
68
  - !ruby/object:Gem::Dependency
62
69
  name: thor
63
70
  requirement: !ruby/object:Gem::Requirement
71
+ none: false
64
72
  requirements:
65
- - - "~>"
73
+ - - ~>
66
74
  - !ruby/object:Gem::Version
67
75
  version: 0.19.1
68
76
  type: :runtime
69
77
  prerelease: false
70
78
  version_requirements: !ruby/object:Gem::Requirement
79
+ none: false
71
80
  requirements:
72
- - - "~>"
81
+ - - ~>
73
82
  - !ruby/object:Gem::Version
74
83
  version: 0.19.1
75
84
  - !ruby/object:Gem::Dependency
76
85
  name: erubis
77
86
  requirement: !ruby/object:Gem::Requirement
87
+ none: false
78
88
  requirements:
79
- - - "~>"
89
+ - - ~>
80
90
  - !ruby/object:Gem::Version
81
91
  version: 2.7.0
82
92
  type: :runtime
83
93
  prerelease: false
84
94
  version_requirements: !ruby/object:Gem::Requirement
95
+ none: false
85
96
  requirements:
86
- - - "~>"
97
+ - - ~>
87
98
  - !ruby/object:Gem::Version
88
99
  version: 2.7.0
89
100
  - !ruby/object:Gem::Dependency
90
101
  name: sshkit
91
102
  requirement: !ruby/object:Gem::Requirement
103
+ none: false
92
104
  requirements:
93
- - - "~>"
105
+ - - ~>
94
106
  - !ruby/object:Gem::Version
95
107
  version: 1.3.0
96
108
  type: :runtime
97
109
  prerelease: false
98
110
  version_requirements: !ruby/object:Gem::Requirement
111
+ none: false
99
112
  requirements:
100
- - - "~>"
113
+ - - ~>
101
114
  - !ruby/object:Gem::Version
102
115
  version: 1.3.0
103
116
  - !ruby/object:Gem::Dependency
104
117
  name: highline
105
118
  requirement: !ruby/object:Gem::Requirement
119
+ none: false
106
120
  requirements:
107
- - - "~>"
121
+ - - ~>
108
122
  - !ruby/object:Gem::Version
109
123
  version: 1.6.20
110
124
  type: :runtime
111
125
  prerelease: false
112
126
  version_requirements: !ruby/object:Gem::Requirement
127
+ none: false
113
128
  requirements:
114
- - - "~>"
129
+ - - ~>
115
130
  - !ruby/object:Gem::Version
116
131
  version: 1.6.20
117
132
  description: cloudstack-nagios generates nagios configuration and checks for monitoring
@@ -123,7 +138,8 @@ executables:
123
138
  extensions: []
124
139
  extra_rdoc_files: []
125
140
  files:
126
- - ".gitignore"
141
+ - .gitignore
142
+ - .ruby-version
127
143
  - Gemfile
128
144
  - Gemfile.lock
129
145
  - LICENSE.txt
@@ -138,6 +154,7 @@ files:
138
154
  - lib/cloudstack-nagios/commands/nagios_config.rb
139
155
  - lib/cloudstack-nagios/commands/router.rb
140
156
  - lib/cloudstack-nagios/commands/snmpd_config.rb
157
+ - lib/cloudstack-nagios/commands/system_vm.rb
141
158
  - lib/cloudstack-nagios/files/create_cs_router_config.sh
142
159
  - lib/cloudstack-nagios/files/snmpd.conf
143
160
  - lib/cloudstack-nagios/helper.rb
@@ -147,6 +164,8 @@ files:
147
164
  - lib/cloudstack-nagios/templates/cloudstack_router_hosts.cfg.erb
148
165
  - lib/cloudstack-nagios/templates/cloudstack_router_services.cfg.erb
149
166
  - lib/cloudstack-nagios/templates/cloudstack_storage_pools.cfg.erb
167
+ - lib/cloudstack-nagios/templates/cloudstack_system_vm_hosts.cfg.erb
168
+ - lib/cloudstack-nagios/templates/cloudstack_system_vm_services.cfg.erb
150
169
  - lib/cloudstack-nagios/templates/cloudstack_zone_hosts.cfg.erb
151
170
  - lib/cloudstack-nagios/templates/footer.cfg.erb
152
171
  - lib/cloudstack-nagios/templates/header.cfg.erb
@@ -155,27 +174,28 @@ files:
155
174
  homepage: https://github.com/swisstxt/cloudstack-nagios
156
175
  licenses:
157
176
  - MIT
158
- metadata: {}
159
177
  post_install_message:
160
178
  rdoc_options:
161
- - "--line-numbers"
162
- - "--inline-source"
179
+ - --line-numbers
180
+ - --inline-source
163
181
  require_paths:
164
182
  - lib
165
183
  required_ruby_version: !ruby/object:Gem::Requirement
184
+ none: false
166
185
  requirements:
167
- - - ">="
186
+ - - ! '>='
168
187
  - !ruby/object:Gem::Version
169
188
  version: 1.9.3
170
189
  required_rubygems_version: !ruby/object:Gem::Requirement
190
+ none: false
171
191
  requirements:
172
- - - ">="
192
+ - - ! '>='
173
193
  - !ruby/object:Gem::Version
174
194
  version: '0'
175
195
  requirements: []
176
196
  rubyforge_project:
177
- rubygems_version: 2.0.3
197
+ rubygems_version: 1.8.23
178
198
  signing_key:
179
- specification_version: 4
199
+ specification_version: 3
180
200
  summary: cloudstack-nagios CloudStack monitoring tools for nagios
181
201
  test_files: []
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 944d22aba5a8a1b41bcfdd7d6ae63ca86af3d082
4
- data.tar.gz: cfc0d40ecc78b6ab5cf50de2a8be47f3160a9a94
5
- SHA512:
6
- metadata.gz: 37869a07b4fb19e67a8f8f24ae58bafda2230260f0f7383fae1762d850ebf8ac8e533649b70dac74704d4222262bd2fd47e2757d9a38808d4b7e4039d8b9c79d
7
- data.tar.gz: 12b065a279fdee3e75e7cd5c3cbd461665bf4fd2760fb43d3bd2078db15183f636384fdd385718128e87ba873919f10b002629903857d7a1cf2bae48d3fdfe5a