Enhanced version of "Nagios monitoring script" for Oxidized
Written by Arnaud no commentsAs presented in the readme file of Oxidized project :
"Oxidized is a network device configuration backup tool. It's a RANCID replacement! Light and extensible, Oxidized supports more than 120 operating system types."
But, there was some oversights in the version I found, so here is my (small) contribution :
#!/usr/bin/env ruby
## contrib via https://github.com/ytti/oxidized/issues/67
require 'open-uri'
require 'json'
critical = false
pending = false
critical_nodes = []
pending_nodes = []
begin
json = JSON.parse(open("http://localhost:8888/nodes.json").read)
rescue
puts '[CRIT] Unable to connect'
exit 2
end
json.each do |node|
if not node['last'].nil?
if node['last']['status'] != 'success'
critical_nodes << node['name']
critical = true
end
else
pending_nodes << node['name']
pending = true
end
end
if critical
puts '[CRIT] Unable to backup: ' + critical_nodes.join(',')
exit 2
elsif pending
puts '[WARN] Pending backup: ' + pending_nodes.join(',')
exit 1
else
puts '[OK] Backup of all nodes completed successfully.'
exit 0
end