From 68139555d92723c03cf46cdbc802dccf9c0115ee Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Thu, 6 Aug 2015 09:38:42 +0200 Subject: [PATCH] dsa-check-soas: on soa disagreement, list nameservers --- dsa-nagios-checks/checks/dsa-check-soas | 19 ++++++++++++++----- dsa-nagios-checks/debian/changelog | 3 ++- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/dsa-nagios-checks/checks/dsa-check-soas b/dsa-nagios-checks/checks/dsa-check-soas index 8d88915..eb28d8c 100755 --- a/dsa-nagios-checks/checks/dsa-check-soas +++ b/dsa-nagios-checks/checks/dsa-check-soas @@ -147,7 +147,7 @@ end dns = Resolv::DNS.new ARGV.each{ |domain| - serial = [] + serial = {} nameserver_addresses = {} if @check_soa_nameservers nameservers = dns.getresources(domain, Resolv::DNS::Resource::IN::NS) @@ -184,18 +184,27 @@ ARGV.each{ |domain| warnings << "Nameserver #{nameserver} for #{domain} returns #{soas.length} SOAs" if soas.length != 1 soas.each do |soa| puts " Nameserver #{nameserver} returns serial #{soa.serial} for #{domain}" if @verbose > 0 - serial << soa.serial unless serial.include? soa.serial + sn = soa.serial.to_i + if serial.has_key? sn then + serial[sn] << nameserver + else + serial[sn] = [nameserver] + end end end end end - case serial.length + case serial.keys.length when 0 warnings << "Found no serials for #{domain}" when 1 - oks << "#{domain} is at #{serial.first}" + oks << "#{domain} is at #{serial.keys.first}" else - warnings << "Nameservers disagree on serials for #{domain}: found #{serial.join(', ')}" if serial.length != 1 + text = [] + serial.keys.sort.each do |sn| + text << "#{sn} (#{serial[sn].join(', ')})" + end + warnings << "Nameservers disagree on serials for #{domain}: found #{text.join(', ')}" end } dns.close diff --git a/dsa-nagios-checks/debian/changelog b/dsa-nagios-checks/debian/changelog index c6953c4..7b42604 100644 --- a/dsa-nagios-checks/debian/changelog +++ b/dsa-nagios-checks/debian/changelog @@ -2,8 +2,9 @@ dsa-nagios-checks (108+XXXX) UNRELEASED; urgency=medium * dsa-check-dabackup: use old logfile if lockfile indicates da-backup still running. + * dsa-check-soas: on soa disagreement, list nameservers. - -- Peter Palfrader Wed, 05 Aug 2015 09:16:19 +0200 + -- Peter Palfrader Thu, 06 Aug 2015 09:37:24 +0200 dsa-nagios-checks (108) unstable; urgency=medium -- 2.20.1