aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--debian/changelog5
-rwxr-xr-xsitesummary-nodes33
2 files changed, 32 insertions, 6 deletions
diff --git a/debian/changelog b/debian/changelog
index 445d76f..d3cdbb0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,11 @@ sitesummary (0.0.57~svn61900) UNRELEASED; urgency=low
* Add Vcs-Browser and Vcs-Svn entries in control file.
* Use switch information collected using cdpr to specify Nagios
host parent relationships.
+ * Allow numbers in Nagios host class names.
+ * Create Nagios host groups for Debian Edu profile and version
+ settings.
+ * Mention ignored laptops in generated Nagios config to make it
+ easier to figure out why a machine is not monitored.
-- Petter Reinholdtsen <pere@debian.org> Thu, 21 Jan 2010 20:21:50 +0100
diff --git a/sitesummary-nodes b/sitesummary-nodes
index 0b5b673..385359e 100755
--- a/sitesummary-nodes
+++ b/sitesummary-nodes
@@ -187,7 +187,7 @@ EOF
sub nagios_hostgroup_namewash {
my $name = shift;
- $name =~ s/[^a-zA-Z_-]+/-/g; # Avoid illegal characteres
+ $name =~ s/[^0-9a-zA-Z_-]+/-/g; # Avoid illegal characteres
return $name;
}
@@ -233,12 +233,31 @@ sub generate_nagios_config {
my $remote = is_remote_nagios_client($hostid);
my $nrpestatus = is_remote_nrpe_config_active($hostid);
+ # Only check laptops that have the nagios tools installed
+ if (is_laptop($hostid) && ! $remote && ! $nagiosclient) {
+ print "# Skipping laptop $hostname\n";
+ next;
+ }
+
my $site = get_site($hostid) || "none";
my $sitegroup = get_sitegroup($hostid);
+ my $eduprofile = get_debian_edu_profile($hostid);
+ my $eduversion = get_debian_edu_ver($hostid);
push(@groups, nagios_hostgroup_namewash("site-$site"));
if ($sitegroup) {
push(@groups, nagios_hostgroup_namewash("site-$site-$sitegroup"));
}
+ if ($eduprofile) {
+ $eduprofile =~ s/^"|"$//g; # Remove "" around the values
+ for my $profile (split(/,\s*/, $eduprofile)) {
+ push(@groups,
+ nagios_hostgroup_namewash("edu-profile-$profile"));
+ }
+ }
+ if ($eduversion) {
+ $eduversion =~ s/^"|"$//g; # Remove "" around the values
+ push(@groups, nagios_hostgroup_namewash("edu-version-$eduversion"));
+ }
my $hostclass = get_hostclass($hostid) || "none";
push(@groups, nagios_hostgroup_namewash("hostclass-$hostclass"));
@@ -247,9 +266,6 @@ sub generate_nagios_config {
$hostgroup{$group} = 1;
}
- # Only check laptops that have the nagios tools installed
- next if is_laptop($hostid) && ! $remote && ! $nagiosclient;
-
my $defaultroute = get_dnsnameorip(get_default_route($hostid));
# Also check default route host
@@ -426,7 +442,12 @@ sub generate_nagios_config {
if (is_pkg_installed($hostid, "cron"));
}
- for my $name (sort keys %hostgroup) {
- print_nagios_hostgroup($name)
+ if (%hostgroup) {
+ print <<EOF;
+##################### host groups #######################
+EOF
+ for my $name (sort keys %hostgroup) {
+ print_nagios_hostgroup($name);
+ }
}
}