Fix at least some of the pg nagios mess
[mirror/dsa-nagios.git] / config / build-nagios
index 545e4fd..50a182a 100755 (executable)
@@ -46,6 +46,7 @@ HOST_TEMPLATE_NAME='generic-host'          # host templates that all our host de
 SERVICE_TEMPLATE_NAME='generic-service'    # host templates that all our host definitions use
 HOST_ALIVE_CHECK='check-host-alive'        # host alive check if server is pingable
 NRPE_PROCESS_SERVICE='process - nrpe'      # nrpe checks will depend on this one
+NRPE_LOAD_CHECK='load'
 
 
 def warn (msg)
@@ -127,11 +128,13 @@ $nrpe = Nrpe.new()
 # host/service/etc definitions
 #
 # It skips over such keys as are listed in exclude_keys
-# and also skips private keys (those starting with an underscre)
+# and also skips private keys (those starting with an underscore)
 def print_block(fd, kind, hash, exclude_keys)
        fd.puts "define #{kind} {"
        hash.each_pair{ |key, value|
-               next if key[0,1] == '_'
+               next if key == '_extinfo'
+               next if key == '_hostgroups'
+               next if key == '_memberlist'
                next if exclude_keys.include? key
                fd.puts "       #{key}          #{value}"
        }
@@ -166,7 +169,12 @@ def addService(hosts, service, files, servers)
                service['check_command'] = "#{ NRPE_CHECKNAME }!#{ check }"
 
                service['depends'] = ensure_array( service['depends'] )
-               service['depends'] << NRPE_PROCESS_SERVICE unless service['service_description'] == NRPE_PROCESS_SERVICE  # Depend on NRPE unless we are it
+               unless service['service_description'] == NRPE_PROCESS_SERVICE
+                       # Depend on the load check to reduce noise
+                       service['depends'] << NRPE_LOAD_CHECK unless service['service_description'] == NRPE_LOAD_CHECK
+                       # Depend on NRPE unless we are it
+                       service['depends'] << NRPE_PROCESS_SERVICE
+               end
        end
 
        hosts.each{ |host|
@@ -241,7 +249,7 @@ def find_hosts(service, servers, hostgroups)
 
        excludehosts.uniq.each{ |host|
                if hosts.delete(host) == nil
-                       throw "Cannot remove host #{host} from service #{service['service_description']}: it's not included anyway."
+                       puts "info: [service #{service['service_description']}] not excluding host #{host} - it's not included anyway."
                end
        }