cloudstack-nagios 0.3.0 → 0.3.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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cloudstack-nagios (0.2.0)
4
+ cloudstack-nagios (0.3.1)
5
5
  erubis (~> 2.7.0)
6
6
  highline (~> 1.6.20)
7
7
  sshkit (~> 1.1.0)
@@ -8,8 +8,7 @@ module CloudstackNagios
8
8
  map %w(-v --version) => :version
9
9
 
10
10
  class_option :config,
11
- default: File.join(Dir.home, '.cloudstack-nagios.yml'),
12
- aliases: '-c',
11
+ default: ENV['HOME'] ? File.join(Dir.home, '.cloudstack-nagios.yml') : '',
13
12
  desc: 'location of your cloudstack-nagios configuration file'
14
13
 
15
14
  class_option :environment,
@@ -40,7 +40,7 @@ class Check < CloudstackNagios::Base
40
40
  free = values[2].to_i
41
41
  free_b = values[7].to_i
42
42
  data = check_data(total, free_b, options[:warning], options[:critical])
43
- puts "MEMORY #{RETURN_CODES[data[0]]} - usage = #{data[1]}% | usage=#{data[1]}% total=#{total}, free=#{free}, free_wo_buffers=#{free_b}"
43
+ puts "MEMORY #{RETURN_CODES[data[0]]} - usage = #{data[1]}% | usage=#{data[1]}% total=#{total}M, free=#{free}M, free_wo_buffers=#{free_b}M"
44
44
  exit data[0]
45
45
  end
46
46
 
@@ -52,11 +52,13 @@ class Check < CloudstackNagios::Base
52
52
  option :warning,
53
53
  desc: 'warning level',
54
54
  type: :numeric,
55
- default: 90
55
+ default: 90,
56
+ aliases: '-w'
56
57
  option :critical,
57
58
  desc: 'critical level',
58
59
  type: :numeric,
59
- default: 95
60
+ default: 95,
61
+ aliases: '-c'
60
62
  option :ssh_key,
61
63
  desc: 'ssh private key to use',
62
64
  default: '/var/lib/cloud/management/.ssh/id_rsa'
@@ -65,7 +67,7 @@ class Check < CloudstackNagios::Base
65
67
  type: :numeric,
66
68
  default: 3922,
67
69
  aliases: '-p'
68
- def cpu(host)
70
+ def cpu
69
71
  host = SSHKit::Host.new("root@#{options[:host]}")
70
72
  host.ssh_options = sshoptions(options[:ssh_key])
71
73
  host.port = options[:port]
@@ -76,7 +78,7 @@ class Check < CloudstackNagios::Base
76
78
  values = mpstat_output.scan(/\d+/)
77
79
  usage = 100 - values[-1].to_f
78
80
  data = check_data(100, usage, options[:warning], options[:critical])
79
- puts "CPU #{RETURN_CODES[data[0]]} - usage = #{data[1]}% | usage=#{usage}"
81
+ puts "CPU #{RETURN_CODES[data[0]]} - usage = #{data[1]}% | usage=#{data[1]}%"
80
82
  exit data[0]
81
83
  end
82
84
 
@@ -152,17 +154,17 @@ class Check < CloudstackNagios::Base
152
154
  r2 = capture(:cat, '/sys/class/net/eth0/statistics/rx_bytes').to_f
153
155
  t2 = capture(:cat, '/sys/class/net/eth0/statistics/tx_bytes').to_f
154
156
  end
155
- rbps = (r2 - r1) / 1024
156
- tbps = (t2 - t1) / 1024
157
- data = check_data(1048576, tbps, options[:warning], options[:critical])
158
- puts "NETWORK #{RETURN_CODES[data[0]]} - usage = #{data[1]}% | rxbps=#{rbps.round(0)}, txbps=#{tbps.round(0)}"
157
+ rbps = (r2 - r1)
158
+ tbps = (t2 - t1)
159
+ data = check_data(1073741824, (1073741824 - rbps), options[:warning], options[:critical])
160
+ puts "NETWORK #{RETURN_CODES[data[0]]} - usage = #{data[1]}% | rxbps=#{rbps.round(0)}B, txbps=#{tbps.round(0)}B"
159
161
  exit data[0]
160
162
  end
161
163
 
162
164
  no_commands do
163
165
 
164
166
  def check_data(total, usage, warning, critical)
165
- usage_percent = 100.0 / total * usage
167
+ usage_percent = 100 - 100.0 / total.to_f * usage.to_f
166
168
  code = 3
167
169
  if usage_percent < warning
168
170
  code = 0
@@ -3,22 +3,30 @@
3
3
  # Host configuration file
4
4
  #
5
5
  # Created by:
6
- # Date: <%= Date.new -%>
6
+ # Date: <%= Time.new.strftime("%d.%m.%Y %H:%M:%S") -%>
7
7
  # Version: Nagios 3.x config file
8
8
  #
9
9
  # --- DO NOT EDIT THIS FILE BY HAND ---
10
10
  # cloudstack-cli will overwite all manual settings during the next update
11
11
  #
12
12
  ###############################################################################
13
+
14
+ define hostgroup {
15
+ hostgroup_name Cloudstack-SystemVM
16
+ alias Cloudstack-SystemVM
17
+ register 1
18
+ }
19
+
13
20
  <% routers.each do |router| -%>
14
21
  <% if router['linklocalip'] -%>
15
22
  define host {
16
- host_name <%= router['name'] %>
17
- display_name <%= router['name'] %> <%= " - #{router['project']}" if router['project'] %>
18
- address <%= router['linklocalip'] %>
19
- hostgroups Cloudstack-SystemVM
20
- check_command check-host-alive
21
- register 1
23
+ host_name <%= router['name'] %>
24
+ display_name <%= router['name'] %> (<%= <%= router['linklocalip'] %>)<%= " - #{router['project']}" if router['project'] %><%= " - #{router['zonename'] %>
25
+ address <%= router['linklocalip'] %>
26
+ use Linux-Host,host-pnp
27
+ hostgroups Cloudstack-SystemVM
28
+ check_command check-host-alive
29
+ register 1
22
30
  }
23
31
  <% end -%>
24
32
  <% end -%>
@@ -4,7 +4,7 @@
4
4
  # Host configuration file
5
5
  #
6
6
  # Created by:
7
- # Date: <%= Date.new %>
7
+ # Date: <%= Time.new.strftime("%d.%m.%Y %H:%M:%S") -%>
8
8
  # Version: Nagios 3.x config file
9
9
  #
10
10
  # --- DO NOT EDIT THIS FILE BY HAND ---
@@ -14,7 +14,25 @@
14
14
 
15
15
  define command {
16
16
  command_name cs-nagios_check-memory
17
- command_line cs-nagios check memory -H $HOSTADDRESS$ -w $ARG1$ -c $ARG$
17
+ command_line /usr/local/bin/cs-nagios check memory -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ --config /var/icinga/.cloudstack-nagios.yml
18
+ register 1
19
+ }
20
+
21
+ define command {
22
+ command_name cs-nagios_check-cpu
23
+ command_line /usr/local/bin/cs-nagios check cpu -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ --config /var/icinga/.cloudstack-nagios.yml
24
+ register 1
25
+ }
26
+
27
+ define command {
28
+ command_name cs-nagios_check-network
29
+ command_line /usr/local/bin/cs-nagios check network -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ --config /var/icinga/.cloudstack-nagios.yml
30
+ register 1
31
+ }
32
+
33
+ define command {
34
+ command_name cs-nagios_check-rootfsrw
35
+ command_line /usr/local/bin/cs-nagios check rootfs_rw -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ --config /var/icinga/.cloudstack-nagios.yml
18
36
  register 1
19
37
  }
20
38
 
@@ -22,12 +40,38 @@ define service {
22
40
  hostgroup_name Cloudstack-SystemVM
23
41
  service_description Memory
24
42
  display_name Memory
25
- servicegroups Cloudstack-SystemVM
26
43
  use Generic-Service,service-pnp
27
44
  check_command cs-nagios_check-memory!80!90
28
45
  register 1
29
46
  }
30
47
 
48
+ define service {
49
+ hostgroup_name Cloudstack-SystemVM
50
+ service_description CPU
51
+ display_name CPU
52
+ use Generic-Service,service-pnp
53
+ check_command cs-nagios_check-cpu!80!90
54
+ register 1
55
+ }
56
+
57
+ define service {
58
+ hostgroup_name Cloudstack-SystemVM
59
+ service_description Network
60
+ display_name Network
61
+ use Generic-Service,service-pnp
62
+ check_command cs-nagios_check-network!80!90
63
+ register 1
64
+ }
65
+
66
+ define service {
67
+ hostgroup_name Cloudstack-SystemVM
68
+ service_description RootFS rw
69
+ display_name RootFS rw
70
+ use Generic-Service,service-pnp
71
+ check_command cs-nagios_check-rootfsrw!80!90
72
+ register 1
73
+ }
74
+
31
75
  ###############################################################################
32
76
  #
33
77
  # Host configuration file
@@ -35,4 +79,3 @@ define service {
35
79
  # END OF FILE
36
80
  #
37
81
  ###############################################################################
38
-
@@ -1,3 +1,3 @@
1
1
  module CloudstackNagios
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudstack-nagios
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: