The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
################################################################################
# Generic host definition template
define host {
	name				generic-host	; The name of this host template
	notifications_enabled	    	1	; Host notifications are enabled
	event_handler_enabled		    1	; Host event handler is enabled
	flap_detection_enabled		    1	; Flap detection is enabled
	process_perf_data		        0	; Process performance data
	retain_status_information	    1	; Retain status information
	retain_nonstatus_information	1	; Retain non-status information
	register			            0	; it's just a template
    max_check_attempts              10
    alias                           HOST
	check_command	    	        check-host-alive
}
# ---------------------------------------------------------------------------- #
# generic/global service definition template
define service {
	name			            	generic-service	
	max_check_attempts		        3   ; check at least 3 times
	normal_check_interval	        5   ; check every 5 minutes
	retry_check_interval	        5   ; retry every minute
	active_checks_enabled	    	1	; Active service checks are enabled
	passive_checks_enabled	    	1	; Passive service checks are enabled
	parallelize_check		        1	; parallelize service checks
	obsess_over_service		        1	; obsess over this service
	check_freshness			        0	; check service 'freshness' default 0
	notifications_enabled		    1	; Service notifications are enabled
	event_handler_enabled		    1	; Service event handler is enabled
	flap_detection_enabled		    1	; Flap detection is enabled
	process_perf_data		        1	; Process performance data
	retain_status_information	    1	; Retain status information
	retain_nonstatus_information	1	; Retain non-status information
    max_check_attempts              3   ; check up to 3 times
	is_volatile			            0
	notification_interval	        120 ; renotify every 2 hours
	notification_period		        24x7; notify 24x7
	check_period			        24x7; monitor 24x7
	register			            0	; this is only a template
}
# ---------------------------------------------------------------------------- #
# THE contact template
define contact {
    name                            generic-contact
    service_notification_period     24x7
    host_notification_period        24x7
    service_notification_options    w,c,r ; only "r" for SMW, w,c,r otherwise
    host_notification_options       d,u,r ; only "r" for SMW, d,u,r otherwise
    service_notification_commands   notify-by-email
    host_notification_commands      host-notify-by-email
    register                        0
}

# ---------------------------------------------------------------------------- #
# ---------------------------------------------------------------------------- #
define host {
    use                     generic-host
    name                    generic-production-host
    notification_interval   60
    notification_period     24x7
    notification_options    d,u,r
    register                0
}
define host {
    use                     generic-host
    name                    generic-development-host
    notification_interval   360
    notification_period     24x7
    notification_options    d,u,r
    register                0
}
define host {
    use                     generic-production-host
    name                    dmz-host
    parents                 firewall
    register                0
}
define host {
    use                     generic-production-host
    name                    unix-host
    register                0
}
define host {
    use                     generic-production-host
    name                    linux-host
    register                0
}
define host {
    use                     generic-production-host
    name                    firewall-host
    register                0
}
define host {
    use                     generic-production-host
    name                    san-host
    register                0
}
define host {
    use                     generic-production-host
    name                    env-mon-device
    register                0
}
define host {
    use                     generic-development-host
    name                    development-host
    register                0
}
define host {
    use                     generic-production-host
    name                    security-host
    register                0
}
define host {
    use                     generic-production-host
    name                    lan-host
    register                0
}

# ---------------------------------------------------------------------------- #
# ---------------------------------------------------------------------------- #
define service {
    use                     generic-service
    name                    generic-prod-service
	contact_groups			admins          ; tell the admins
	notification_options	w,c,r           ; Warnings,Critical,Recoverd,Unknown
    register                0
}
define service {
    use                     generic-service
    name                    generic-dev-service
	max_check_attempts		5               ; check at least 3 times
	normal_check_interval	10              ; check every 10 minutes
	is_volatile			    0               ; service should not be volatile
	contact_groups			admins          ; tell the admins
	notification_interval	240             ; only notify every 4 hours
	notification_period		wakinghours     ; I only care when I'm awake
	check_period			24x7            ; monitor service 24x7
	notification_options	n               ; Warnings,Critical,Recoverd,Unknown,None
    register                0
}
define service {
    use                     generic-service
    name                    passive-prod-service
	contact_groups			admins          ; tell the admins
    active_checks_enabled   1
    check_period            none
    passive_checks_enabled  1
    check_freshness         1
    freshness_threshold     600
	notification_interval	120             ; renotify every 2 hours
	notification_period		24x7            ; notify 24x7
	notification_options	w,c,r           ; Warnings,Critical,Recoverd,Unknown
    register                0
}
define service {
    use                     generic-prod-service
    name                    insensitive-prod-service
	max_check_attempts		6 ; retry at least 5 times
    register                0
}
define service {
    use                     generic-prod-service
    name                    waking-prod-service
    notification_period     wakinghours     ; I only care when I'm awake
    register                0
}
define service {
    use                     generic-prod-service
    name                    do-not-disturb-service
	normal_check_interval	60               ; check once an hour
    notification_period     donotdisturb     ; Never send a notification
    register                0
}
define service {
    use                             generic-dev-service
    name                            perfdata-only
    max_check_attempts              5
	event_handler_enabled		    0
	retain_status_information	    0
	retain_nonstatus_information	0
	flap_detection_enabled		    0
	obsess_over_service		        0
	notification_options            n
    register                        0
}
# ---------------------------------------------------------------------------- #
# Define DBA groups
# ---------------------------------------------------------------------------- #
define service {
    use                     generic-service
    name                    dba-prod-service
	contact_groups			dba
	notification_options		w,c,r
    register                0
}
define service {
    use                     generic-service
    name                    dba-dev-service
	max_check_attempts		5
	normal_check_interval		10
	is_volatile			0
	contact_groups			dba
	notification_interval		240
	notification_period		wakinghours
	check_period			24x7
	notification_options		w,c,r
    register                0
}
# ---------------------------------------------------------------------------- #
# Define DBA groups
# ---------------------------------------------------------------------------- #
define service {
    use                     generic-service
    name                    web-prod-service
	contact_groups			webmasters
	notification_options		w,c,r
    register                0
}
define service {
    use                     generic-service
    name                    web-dev-service
	max_check_attempts		5
	normal_check_interval		10
	is_volatile			0
	contact_groups			webmasters
	notification_interval		240
	notification_period		wakinghours
	check_period			24x7
	notification_options		w,c,r
    register                0
}