class Riemann::Babbler::Plugin::Iptables
Public Instance Methods
collect()
click to toggle source
# File lib/riemann/babbler/plugins/iptables.rb, line 17 def collect current_rules = shell('iptables-save').split("\n").map do |x| x[0] == "#" ? nil : delete_counters(x) # delete counters and comments end.compact.join("\n") saved_rules = File.read(plugin.rules_file).split("\n").map do |x| x[0] == "#" ? nil : delete_counters(x) # delete counters and comments end.compact.join("\n") status = current_rules == saved_rules ? 'ok' : 'critical' { :service => "#{plugin.service} #{plugin.rules_file}", :state => status, # status 'ok' will be minimized :description => "#{plugin.service} rules different between file: #{plugin.rules_file} and iptables-save" } end
delete_counters(str)
click to toggle source
# File lib/riemann/babbler/plugins/iptables.rb, line 13 def delete_counters(str) str.gsub(/\[\d+\:\d+\]/, '').strip end
init()
click to toggle source
# File lib/riemann/babbler/plugins/iptables.rb, line 3 def init plugin.set_default(:service, 'iptables') plugin.set_default(:rules_file, '/etc/network/iptables') plugin.set_default(:interval, 60) end
run_plugin()
click to toggle source
# File lib/riemann/babbler/plugins/iptables.rb, line 9 def run_plugin File.exists? plugin.rules_file end