sensu-plugins-disk-checks 5.0.1 → 5.1.4
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -1
- data/README.md +1 -0
- data/bin/check-disk-usage.rb +45 -9
- data/bin/check-fstab-mounts.rb +12 -9
- data/bin/check-smart-status.rb +4 -0
- data/bin/check-smart-tests.rb +3 -1
- data/bin/check-smart.rb +2 -0
- data/bin/metrics-disk-capacity.rb +3 -1
- data/bin/metrics-disk-usage.rb +4 -1
- data/bin/metrics-disk.rb +3 -1
- data/lib/sensu-plugins-disk-checks.rb +2 -0
- data/lib/sensu-plugins-disk-checks/version.rb +4 -2
- metadata +9 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f2c5f3e7cb7dc768ff1903d561a3aaedcd2d2298ca3e7d6ba7782f504fa8d31c
|
4
|
+
data.tar.gz: b728133e6f2082c0a5454f730caa9dee13248f3104ffd8ee1610913f81f7aff5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12f3b53ded7a8a036573176976e5e9dceeda4a9886ace306dd88b46bf2dfd54c5bf36523cb6c2976024cd6c2b176a19cdac284c49f8ec57115599055215bfbf8
|
7
|
+
data.tar.gz: 7e17b7dd33bfebf3d6ebd7253036e3982cb17b3a92241dc13248cc72c1f6ec030e1d4d9ca3067d9974614f56402711a065e130237204bba1165ef3491bacc564
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,30 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
|
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
7
|
|
8
|
+
## [5.1.4] - 2020-11-05
|
9
|
+
### Fixed
|
10
|
+
- change Sensu asset build definition to match ruby-runtime build collection. No change to underlying plugin functionality
|
11
|
+
|
12
|
+
## [5.1.3] - 2020-06-02
|
13
|
+
### Fixed
|
14
|
+
- fix for incorrect Ruby literal string freeze in binaries
|
15
|
+
|
16
|
+
## [5.1.2] - 2020-05-20
|
17
|
+
### Fixed
|
18
|
+
- check-disk-usage.rb: More accurate disk percent usage ignoring privileged bytes (@SaviourSelf)
|
19
|
+
|
20
|
+
## [5.1.1] - 2020-04-22
|
21
|
+
### Changed
|
22
|
+
- Removed centos from .bonsai.yml to make Bonsai happy again
|
23
|
+
|
24
|
+
## [5.1.0] - 2020-04-22
|
25
|
+
### Changed
|
26
|
+
- Updated bundler dependancy to '~> 2.1'
|
27
|
+
- Added option to ignore privileged bytes
|
28
|
+
- Updated rubocop dependency to '~> 0.81.0'
|
29
|
+
- Remediated rubocop issues
|
30
|
+
- Updated sys-filesystem gem dependency from 1.3.2 to 1.3.4
|
31
|
+
|
8
32
|
## [5.0.1] - 2019-12-10
|
9
33
|
### Changed
|
10
34
|
- Updated readme for compliance with proposed plugins style guide
|
@@ -212,7 +236,11 @@ https://mathias-kettner.de/checkmk_filesystems.html
|
|
212
236
|
### Added
|
213
237
|
- initial release
|
214
238
|
|
215
|
-
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-disk-checks/compare/5.
|
239
|
+
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-disk-checks/compare/5.1.3...HEAD
|
240
|
+
[5.1.3]: https://github.com/sensu-plugins/sensu-plugins-disk-checks/compare/5.1.2...5.1.3
|
241
|
+
[5.1.2]: https://github.com/sensu-plugins/sensu-plugins-disk-checks/compare/5.1.1...5.1.2
|
242
|
+
[5.1.1]: https://github.com/sensu-plugins/sensu-plugins-disk-checks/compare/5.1.0...5.1.1
|
243
|
+
[5.1.0]: https://github.com/sensu-plugins/sensu-plugins-disk-checks/compare/5.0.1...5.1.0
|
216
244
|
[5.0.1]: https://github.com/sensu-plugins/sensu-plugins-disk-checks/compare/5.0.0...5.0.1
|
217
245
|
[5.0.0]: https://github.com/sensu-plugins/sensu-plugins-disk-checks/compare/4.0.1...5.0.0
|
218
246
|
[4.0.1]: https://github.com/sensu-plugins/sensu-plugins-disk-checks/compare/4.0.0...4.0.1
|
data/README.md
CHANGED
@@ -50,6 +50,7 @@ Usage: check-disk-usage.rb (options)
|
|
50
50
|
-p PATHRE Ignore mount point(s) matching regular expression
|
51
51
|
-x TYPE[,TYPE] Ignore fs type(s)
|
52
52
|
-I MNT[,MNT] Include only mount point(s)
|
53
|
+
-r Ignore bytes reserved for privileged processes only
|
53
54
|
-W PERCENT Warn if PERCENT or more of inodes used
|
54
55
|
-m MAGIC Magic factor to adjust warn/crit thresholds. Example: .9
|
55
56
|
-l MINIMUM Minimum size to adjust (in GB)
|
data/bin/check-disk-usage.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
|
+
# frozen_string_literal: false
|
3
|
+
|
2
4
|
#
|
3
5
|
# check-disk
|
4
6
|
#
|
@@ -27,12 +29,12 @@
|
|
27
29
|
|
28
30
|
require 'sensu-plugin/check/cli'
|
29
31
|
require 'sys/filesystem'
|
30
|
-
include Sys
|
31
32
|
|
32
33
|
#
|
33
34
|
# Check Disk
|
34
35
|
#
|
35
36
|
class CheckDisk < Sensu::Plugin::Check::CLI
|
37
|
+
include Sys
|
36
38
|
option :fstype,
|
37
39
|
short: '-t TYPE[,TYPE]',
|
38
40
|
description: 'Only check fs type(s)',
|
@@ -63,6 +65,19 @@ class CheckDisk < Sensu::Plugin::Check::CLI
|
|
63
65
|
description: 'Ignore option(s)',
|
64
66
|
proc: proc { |a| a.split('.') }
|
65
67
|
|
68
|
+
option :ignorereadonly,
|
69
|
+
long: '--ignore-readonly',
|
70
|
+
description: 'Ignore read-only filesystems',
|
71
|
+
boolean: true,
|
72
|
+
default: false
|
73
|
+
|
74
|
+
option :ignore_reserved,
|
75
|
+
description: 'Ignore bytes reserved for privileged processes',
|
76
|
+
short: '-r',
|
77
|
+
long: '--ignore-reserved',
|
78
|
+
boolean: true,
|
79
|
+
default: false
|
80
|
+
|
66
81
|
option :bwarn,
|
67
82
|
short: '-w PERCENT',
|
68
83
|
description: 'Warn if PERCENT or more of disk full',
|
@@ -126,10 +141,11 @@ class CheckDisk < Sensu::Plugin::Check::CLI
|
|
126
141
|
mounts.each do |line|
|
127
142
|
begin
|
128
143
|
next if config[:fstype] && !config[:fstype].include?(line.mount_type)
|
129
|
-
next if config[:ignoretype]
|
130
|
-
next if config[:ignoremnt]
|
131
|
-
next if config[:ignorepathre]
|
132
|
-
next if config[:ignoreopt]
|
144
|
+
next if config[:ignoretype]&.include?(line.mount_type)
|
145
|
+
next if config[:ignoremnt]&.include?(line.mount_point)
|
146
|
+
next if config[:ignorepathre]&.match(line.mount_point)
|
147
|
+
next if config[:ignoreopt]&.include?(line.options)
|
148
|
+
next if config[:ignorereadonly] && line.options.split(',').include?('ro')
|
133
149
|
next if config[:includemnt] && !config[:includemnt].include?(line.mount_point)
|
134
150
|
rescue StandardError
|
135
151
|
unknown 'An error occured getting the mount info'
|
@@ -157,6 +173,7 @@ class CheckDisk < Sensu::Plugin::Check::CLI
|
|
157
173
|
if line.mount_type == 'devfs'
|
158
174
|
return
|
159
175
|
end
|
176
|
+
|
160
177
|
if fs_info.respond_to?(:inodes) && !fs_info.inodes.nil? # needed for windows
|
161
178
|
percent_i = percent_inodes(fs_info)
|
162
179
|
if percent_i >= config[:icrit]
|
@@ -185,9 +202,18 @@ class CheckDisk < Sensu::Plugin::Check::CLI
|
|
185
202
|
end
|
186
203
|
end
|
187
204
|
|
188
|
-
def to_human(
|
189
|
-
unit = [
|
190
|
-
|
205
|
+
def to_human(size)
|
206
|
+
unit = [
|
207
|
+
[1_099_511_627_776, 'TiB'],
|
208
|
+
[1_073_741_824, 'GiB'],
|
209
|
+
[1_048_576, 'MiB'],
|
210
|
+
[1024, 'KiB'],
|
211
|
+
[0, 'B']
|
212
|
+
].detect { |u| size >= u[0] }
|
213
|
+
format(
|
214
|
+
"%.2f #{unit[1]}",
|
215
|
+
(size >= 1024 ? size.to_f / unit[0] : size)
|
216
|
+
)
|
191
217
|
end
|
192
218
|
|
193
219
|
# Determine the percent inode usage
|
@@ -199,7 +225,17 @@ class CheckDisk < Sensu::Plugin::Check::CLI
|
|
199
225
|
# Determine the percent byte usage
|
200
226
|
#
|
201
227
|
def percent_bytes(fs_info)
|
202
|
-
|
228
|
+
if config[:ignore_reserved]
|
229
|
+
u100 = fs_info.bytes_used * 100.0
|
230
|
+
nonroot_total = fs_info.bytes_used + fs_info.bytes_available
|
231
|
+
if nonroot_total.zero?
|
232
|
+
0
|
233
|
+
else
|
234
|
+
(u100 / nonroot_total + (u100 % nonroot_total != 0 ? 1 : 0)).round(2)
|
235
|
+
end
|
236
|
+
else
|
237
|
+
(100.0 - (100.0 * fs_info.bytes_free / fs_info.bytes_total)).round(2)
|
238
|
+
end
|
203
239
|
end
|
204
240
|
|
205
241
|
# Generate output
|
data/bin/check-fstab-mounts.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
|
+
# frozen_string_literal: false
|
3
|
+
|
2
4
|
#
|
3
5
|
# check-fstab-mounts
|
4
6
|
#
|
@@ -51,30 +53,30 @@ class CheckFstabMounts < Sensu::Plugin::Check::CLI
|
|
51
53
|
@missing_mounts = []
|
52
54
|
end
|
53
55
|
|
54
|
-
def resolve_device(
|
55
|
-
if
|
56
|
-
uuid =
|
56
|
+
def resolve_device(device)
|
57
|
+
if device.start_with?('UUID=')
|
58
|
+
uuid = device.split('=')[1]
|
57
59
|
path = File.join('/', 'dev', 'disk', 'by-uuid', uuid)
|
58
60
|
if File.exist?(path) && File.symlink?(path)
|
59
61
|
return File.realpath(path)
|
60
62
|
end
|
61
63
|
end
|
62
64
|
|
63
|
-
if
|
64
|
-
label =
|
65
|
+
if device.start_with?('LABEL=')
|
66
|
+
label = device.split('=')[1]
|
65
67
|
path = File.join('/', 'dev', 'disk', 'by-label', label)
|
66
68
|
if File.exist?(path) && File.symlink?(path)
|
67
69
|
return File.realpath(path)
|
68
70
|
end
|
69
71
|
end
|
70
72
|
|
71
|
-
if
|
72
|
-
if File.symlink?(
|
73
|
-
|
73
|
+
if device.start_with?('/dev/mapper')
|
74
|
+
if File.symlink?(device)
|
75
|
+
device = File.realpath(device, '/')
|
74
76
|
end
|
75
77
|
end
|
76
78
|
|
77
|
-
|
79
|
+
device
|
78
80
|
end
|
79
81
|
|
80
82
|
# Check by mount destination (col 2 in fstab and proc/mounts)
|
@@ -83,6 +85,7 @@ class CheckFstabMounts < Sensu::Plugin::Check::CLI
|
|
83
85
|
@fstab.each do |line|
|
84
86
|
next if line =~ /^\s*#/
|
85
87
|
next if line =~ /^\s*$/
|
88
|
+
|
86
89
|
fields = line.split(/\s+/)
|
87
90
|
next if fields[1] == 'none' || (fields[3].include? 'noauto')
|
88
91
|
next if config[:fstypes] && !config[:fstypes].include?(fields[2])
|
data/bin/check-smart-status.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
|
+
# frozen_string_literal: false
|
3
|
+
|
2
4
|
#
|
3
5
|
# check-smart
|
4
6
|
#
|
@@ -82,6 +84,7 @@ class Disk
|
|
82
84
|
|
83
85
|
def smart_ignore?(num)
|
84
86
|
return if @att_ignore.nil?
|
87
|
+
|
85
88
|
@att_ignore.include? num
|
86
89
|
end
|
87
90
|
|
@@ -163,6 +166,7 @@ class SmartCheckStatus < Sensu::Plugin::Check::CLI
|
|
163
166
|
# Set default threshold
|
164
167
|
default_threshold = config[:defaults].split(',')
|
165
168
|
raise 'Invalid default threshold parameter count' unless default_threshold.size == 4
|
169
|
+
|
166
170
|
@smart_attributes.each do |att|
|
167
171
|
att[:crit_min] = default_threshold[0].to_i if att[:crit_min].nil?
|
168
172
|
att[:warn_min] = default_threshold[1].to_i if att[:warn_min].nil?
|
data/bin/check-smart-tests.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
|
+
# frozen_string_literal: false
|
3
|
+
|
2
4
|
#
|
3
5
|
# check-smart-tests.rb
|
4
6
|
#
|
@@ -78,7 +80,7 @@ end
|
|
78
80
|
|
79
81
|
class CheckSMARTTests < Sensu::Plugin::Check::CLI
|
80
82
|
option :executable,
|
81
|
-
long:
|
83
|
+
long: '--executable EXECUTABLE',
|
82
84
|
short: '-e EXECUTABLE',
|
83
85
|
default: '/usr/sbin/smartctl',
|
84
86
|
description: 'Path to smartctl executable'
|
data/bin/check-smart.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
|
+
# frozen_string_literal: false
|
3
|
+
|
2
4
|
#
|
3
5
|
# disk-capacity-metrics
|
4
6
|
#
|
@@ -47,7 +49,7 @@ class DiskCapacity < Sensu::Plugin::Metric::CLI::Graphite
|
|
47
49
|
begin
|
48
50
|
converted = Integer(value)
|
49
51
|
values[index] = converted
|
50
|
-
rescue ArgumentError # rubocop:disable
|
52
|
+
rescue ArgumentError # rubocop:disable Lint/SuppressedException
|
51
53
|
end
|
52
54
|
end
|
53
55
|
values
|
data/bin/metrics-disk-usage.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
|
+
# frozen_string_literal: false
|
3
|
+
|
2
4
|
#
|
3
5
|
# disk-usage-metrics
|
4
6
|
#
|
@@ -105,8 +107,9 @@ class DiskUsageMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
105
107
|
_, _, used, avail, used_p, mnt = line.split
|
106
108
|
|
107
109
|
unless %r{/sys[/|$]|/dev[/|$]|/run[/|$]} =~ mnt
|
108
|
-
next if config[:ignore_mnt]
|
110
|
+
next if config[:ignore_mnt]&.find { |x| mnt.match(x) }
|
109
111
|
next if config[:include_mnt] && !config[:include_mnt].find { |x| mnt.match(x) }
|
112
|
+
|
110
113
|
mnt = if config[:flatten]
|
111
114
|
mnt.eql?('/') ? 'root' : mnt.gsub(/^\//, '')
|
112
115
|
else
|
data/bin/metrics-disk.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
|
+
# frozen_string_literal: false
|
3
|
+
|
2
4
|
#
|
3
5
|
# disk-metrics
|
4
6
|
#
|
@@ -75,7 +77,7 @@ class DiskGraphite < Sensu::Plugin::Metric::CLI::Graphite
|
|
75
77
|
end
|
76
78
|
next if stats == ['0'].cycle.take(stats.size)
|
77
79
|
|
78
|
-
next if config[:ignore_device]
|
80
|
+
next if config[:ignore_device]&.find { |x| dev.match(x) }
|
79
81
|
next if config[:include_device] && !config[:include_device].find { |x| dev.match(x) }
|
80
82
|
|
81
83
|
metrics.size.times { |i| output "#{config[:scheme]}.#{dev}.#{metrics[i]}", stats[i] }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-disk-checks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sensu-Plugins and contributors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sensu-plugin
|
@@ -30,28 +30,28 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.3.
|
33
|
+
version: 1.3.4
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.3.
|
40
|
+
version: 1.3.4
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '1
|
47
|
+
version: '2.1'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '1
|
54
|
+
version: '2.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: codeclimate-test-reporter
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,14 +142,14 @@ dependencies:
|
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.
|
145
|
+
version: 0.81.0
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.
|
152
|
+
version: 0.81.0
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: yard
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -219,8 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
219
219
|
- !ruby/object:Gem::Version
|
220
220
|
version: '0'
|
221
221
|
requirements: []
|
222
|
-
|
223
|
-
rubygems_version: 2.7.7
|
222
|
+
rubygems_version: 3.0.8
|
224
223
|
signing_key:
|
225
224
|
specification_version: 4
|
226
225
|
summary: Sensu plugins for disk checks
|