From 5db80a24a94e4361f80d591db2bb4a2e74c8d4cf Mon Sep 17 00:00:00 2001 From: Petter Reinholdtsen Date: Sat, 31 May 2008 23:22:05 +0000 Subject: [ Petter Reinholdtsen ] * Updated sitesummary-nodes: - Use IP address as hostname if the provided hostname is bogus or missing in DNS. - Ignore filesystem types autofs, binfmt_misc, iso9660, nfsd and usbfs when generating nagios checks. --- SiteSummary.pm | 23 +++++++++++++++++++++++ debian/changelog | 11 +++++++++++ sitesummary-nodes | 17 ++++++++++++++++- 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/SiteSummary.pm b/SiteSummary.pm index b6b449a..c37871a 100644 --- a/SiteSummary.pm +++ b/SiteSummary.pm @@ -82,6 +82,29 @@ sub get_hostname { return get_file_string($hostid, "/system/hostname"); } +# +# Return the IP address on the primary network interface +# +sub get_primary_ip_address { + my $hostid = shift; + my $path = get_filepath_current($hostid, "/system/ifconfig-a"); + # XXX Not implemented + my $ip; + if (open (FILE, $path)) { + while() { + chomp; + if (m/inet addr:(\S+)\s+/) { + $ip = $1; + last; + } + } + close(FILE); + return $ip; + } else { + return undef; + } +} + # # Return Linux kernel version for the machines using Linux. # diff --git a/debian/changelog b/debian/changelog index c2ffd9e..3c45a3a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,14 @@ +sitesummary (0.0.38) UNRELEASED; urgency=low + + [ Petter Reinholdtsen ] + * Updated sitesummary-nodes: + - Use IP address as hostname if the provided hostname is bogus + or missing in DNS. + - Ignore filesystem types autofs, binfmt_misc, iso9660, nfsd and usbfs + when generating nagios checks. + + -- Petter Reinholdtsen Sun, 1 Jun 2008 01:19:50 +0200 + sitesummary (0.0.37) unstable; urgency=low [ Morten Werner Forsbring ] diff --git a/sitesummary-nodes b/sitesummary-nodes index 2d235c7..013be62 100755 --- a/sitesummary-nodes +++ b/sitesummary-nodes @@ -24,9 +24,19 @@ if ($opts{'m'}) { print_list(); } +sub in_dns { + my $hostname = shift; + my $packed_ip = gethostbyname($hostname); + return defined $packed_ip; +} + sub handle_host { my $hostid = shift; my $hostname = get_hostname($hostid); + # Use IP address as hostname if the provided hostname is bogus or + # missing in DNS. + $hostname = get_primary_ip_address($hostid) + if (! in_dns($hostname) || "localhost" eq $hostname); $hostnames{$hostname} = $hostid; } @@ -155,11 +165,16 @@ EOF my ($dev, $partition, $fs, $opts) = split; next if (exists $checked{$partition}); next if ($fs eq "devpts" || + $fs eq "autofs" || + $fs eq "binfmt_misc" || + $fs eq "iso9660" || + $fs eq "nfsd" || $fs eq "proc" || $fs eq "rootfs" || $fs eq "rpc_pipefs" || $fs eq "sysfs" || - $fs eq "tmpfs"); + $fs eq "tmpfs" || + $fs eq "usbfs"); $checked{$partition} = 1; my $warn = 10; -- cgit v1.2.3