Open vadim6 opened 6 years ago
Can you please include an exmaple of what smart.json
should look like so I can do some testing?
Sounds good can you create a PR to fix it?
I am getting the same error on three of my servers. The workaround of vadim6 does not seem to work anymore.
Check failed to run: undefined method name' for #<Disk:0x0000564789ecbcc0>, ["/usr/lib/nagios/plugins/check-smart-status.rb:220:in
block in run'", "/usr/lib/nagios/plugins/check-smart-status.rb:207:in each'", "/usr/lib/nagios/plugins/check-smart-status.rb:207:in
run'", "/var/lib/gems/2.5.0/gems/sensu-plugin-4.0.0/lib/sensu-plugin/cli.rb:59:in `block in
smart.json is attached smart.json.txt
The servers are all HP ProLiant SE316M1 all using an LSI Logic / Symbios Logic SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] Raid Controller (all Disks in JBOD Mode).
I can run smartctl -a on all disks configured in smart.json without a problem. The Poblem also exists if i write only one disk into the json (of course the disk-id changes).
Attached is also the whole output of a smartctl -a on /dev/sda: smartctl-sda.txt
If I can provide any more information that could help to solve the problem, just let me know.
I'm using v2.5.1 of check-smart-status.rb, when running it with the example json it's failing in line 219.
sudo ./check-smart-status.rb -j ~/smart.json Check failed to run: undefined method
name' for #block in run'", "/opt/sensu/embedded/lib/ruby/gems/2.3.0/gems/sensu-plugins-disk-checks-2.5.1/bin/check-smart-status.rb:206:in
each'", "/opt/sensu/embedded/lib/ruby/gems/2.3.0/gems/sensu-plugins-disk-checks-2.5.1/bin/check-smart-status.rb:206:inrun'", "/opt/sensu/embedded/lib/ruby/gems/2.3.0/gems/sensu-plugin-1.3.0/lib/sensu-plugin/cli.rb:57:in
block inI've found that changing #{dev.name} to #{dev.device_path} does the trick in line 219:
criticals << "Overall health check failed on #{dev.name}"
Not sure if it's only something on my system or not though...