File check_mk_templates.cfg of Package check_mk
# +------------------------------------------------------------------+
# | ____ _ _ __ __ _ __ |
# | / ___| |__ ___ ___| | __ | \/ | |/ / |
# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
# | | |___| | | | __/ (__| < | | | | . \ |
# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
# | |
# | Copyright Mathias Kettner 2014 mk@mathias-kettner.de |
# +------------------------------------------------------------------+
#
# This file is part of Check_MK.
# The official homepage is at http://mathias-kettner.de/check_mk.
#
# check_mk is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation in version 2. check_mk is distributed
# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more de-
# tails. You should have received a copy of the GNU General Public
# License along with GNU Make; see the file COPYING. If not, write
# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301 USA.
# These file contains templates for monitoring objects. The
# configuration that Check_MK creates uses these templates.
# You *can* modify this file, but if you want to change parameters
# for hosts and services a better idea is using extra_host_conf
# and extra_service_conf.
#
# OMD users: your modifications to this file are handled
# by 'omd update' so no problems should arise during an
# update as long as your modifications to not collide
# with modifications due to new versions of the file. OMD
# will let you interactively resolve such a conflict.
#
# Non-OMD users: Usually this file is created as a symlink
# in nagios/etc/conf.d (or objects or whatever directory
# you are using) pointing to the shipped file. If you want
# to modify this file, then replace the symlink with a true
# copy of the file. Note, however, that a software update
# of Check_MK will not update your check_mk_templates.cfg
# anymore and you might get incompatible as time goes by.
# ------------------------------------------------------------------
# ____ _ _
# / ___|___ _ __ | |_ __ _ ___| |_ ___
# | | / _ \| '_ \| __/ _` |/ __| __/ __|
# | |__| (_) | | | | || (_| | (__| |_\__ \
# \____\___/|_| |_|\__\__,_|\___|\__|___/
#
# This contact is only needed while you have not configured contacts
# for your hosts and services with the variables
# service_contactgroups and host_contactgroups. This is, because
# Nagios does not allow a host or service to not have a contact.
# And we want this default configuration file to be complete
# and work.
define contact {
contact_name check_mk
alias check_mk dummy contact
host_notification_commands check-mk-dummy
service_notification_commands check-mk-dummy
host_notification_options n
service_notification_options n
host_notification_period 24X7
service_notification_period 24X7
}
define contactgroup {
contactgroup_name check_mk
alias check_mk dummy contact group
members check_mk
}
# _ _ _
# | | | | ___ ___| |_ ___
# | |_| |/ _ \/ __| __/ __|
# | _ | (_) \__ \ |_\__ \
# |_| |_|\___/|___/\__|___/
#
# Base template for all hosts that are monitored
# with check_mk
define host {
name check_mk_default
register 0
notifications_enabled 1
event_handler_enabled 0
flap_detection_enabled 1
failure_prediction_enabled 1
retain_status_information 1
retain_nonstatus_information 1
process_perf_data 0
check_command check-mk-host-ping
check_interval 1
check_period 24X7
max_check_attempts 1
notification_interval 0
notification_period 24X7
notification_options d,u,r,f,s
contact_groups check_mk
}
# This template is used for normal hosts
define host {
name check_mk_host
use check_mk_default
register 0
process_perf_data 1
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
}
# If you use service aggregation than this template
# is used for your summary hosts. The notes url
# links to the detailed host belonging to this summary
# host. You might need to adopt the URL.
define host {
name check_mk_host-summary
use check_mk_default
register 0
notes_url /nagios/cgi-bin/status.cgi?host=$_HOST_REALNAME$
}
# Used for cluster hosts (i.e. the logical hosts, not
# the cluster's nodes)
define host {
name check_mk_cluster
use check_mk_default
check_command check-mk-host-ping-cluster
register 0
}
# Used for aggregation host of clusters.
define host {
name check_mk_cluster-summary
use check_mk_cluster,check_mk_host-summary
register 0
}
# ____ _
# / ___| ___ _ ____ _(_) ___ ___ ___
# \___ \ / _ \ '__\ \ / / |/ __/ _ \/ __|
# ___) | __/ | \ V /| | (_| __/\__ \
# |____/ \___|_| \_/ |_|\___\___||___/
#
# Template used by all other check_mk templates
define service {
name check_mk_default
register 0
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
notifications_enabled 1
event_handler_enabled 0
flap_detection_enabled 1
failure_prediction_enabled 1
process_perf_data 0
retain_status_information 1
retain_nonstatus_information 1
notification_interval 0
is_volatile 0
normal_check_interval 1
retry_check_interval 1
max_check_attempts 1
notification_options u,c,w,r,f,s
notification_period 24X7
check_period 24X7
}
# Sub-Template used for checks using performance data
define service {
name check_mk_perf
register 0
process_perf_data 1
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
}
# This template is used by the service that actively
# calls check_mk. Each host has exactly one service
# using this template. Here you can configure, how often
# each host should be checked.
define service {
name check_mk_active
use check_mk_perf,check_mk_default
register 0
check_command check-mk
active_checks_enabled 1
}
# This template is used for inventory checks. They
# are generated if you set inventory_check_interval
# to a number > 0 in main.mk
define service {
name check_mk_inventory
use check_mk_default
register 0
check_command check-mk-inventory
active_checks_enabled 1
}
# Check_mk knows, which checks have performance data
# and assigns this template to these. You might need
# to adapt the action_url.
define service {
name check_mk_passive_perf
use check_mk_perf,check_mk_default
register 0
active_checks_enabled 0
}
# This is used for checks without performance data.
define service {
name check_mk_passive
use check_mk_default
register 0
active_checks_enabled 0
}
# This template is used for aggregated services (on the
# summary hosts). The never have performance data. A
# check command must be defined - even if never called.
# Notifications for aggregated services are disabled.
# Otherwise you would get them twice.
define service {
name check_mk_summarized
use check_mk_passive
check_command check-mk-dummy ; never called
register 0
notifications_enabled 0
}
# Hosts with no configured or autodetected service will
# get one service that is derived from the following
# template. This is needed, because Nagios does not
# allow a host without any service.
define service {
name check_mk_pingonly
use check_mk_default
register 0
check_command check-mk-ping
service_description PING
process_perf_data 0
active_checks_enabled 1
}
# ____ _ _
# / ___| ___ _ ____ _(_) ___ ___ __| | ___ _ __ ___
# \___ \ / _ \ '__\ \ / / |/ __/ _ \ / _` |/ _ \ '_ \/ __|
# ___) | __/ | \ V /| | (_| __/ | (_| | __/ |_) \__ \
# |____/ \___|_| \_/ |_|\___\___| \__,_|\___| .__/|___/
# |_|
# This template is used by service dependencies created via
# the configuration variable service_dependencies. Since we
# only deal with passive checks the dependencies are not
# used to suppress service checks. But they are very useful
# for suppressing notifications. If you set inherits_parent
# to 1, then if A depends on B and B depends on C, A will
# automatically depend on C. This is usually what you want.
# If A depends on B and B is in WARNING state, the notification
# will *not* be suppressed. Check_mk generally uses WARNING state
# if the service is still working.
define servicedependency {
name check_mk
register 0
notification_failure_criteria u,c ; do not suppress in case of WARNING
inherits_parent 1
}
# ____ _
# / ___|___ _ __ ___ _ __ ___ __ _ _ __ __| |___
# | | / _ \| '_ ` _ \| '_ ` _ \ / _` | '_ \ / _` / __|
# | |__| (_) | | | | | | | | | | | (_| | | | | (_| \__ \
# \____\___/|_| |_| |_|_| |_| |_|\__,_|_| |_|\__,_|___/
#
# Calling check_mk with precompiled checks
define command {
command_name check-mk
command_line /usr/bin/python $USER4$/var/check_mk/precompiled/"$HOSTNAME$"
}
# Use this variant of if you are working without precompiled
# checks (which is not recommended):
# define command {
# command_name check-mk
# command_line check_mk $HOSTNAME$ $HOSTADDRESS$
#}
# Inventory check
define command {
command_name check-mk-inventory
command_line check_mk --cache --check-discovery "$HOSTNAME$"
}
define command {
command_name check-mk-dummy
command_line echo "DUMMY - Always OK"
}
# Commands for services of PING-only hosts
define command {
command_name check-mk-ping
command_line $USER4$/lib/nagios/plugins/check_icmp $ARG1$
}
# Host check commands
define command {
command_name check-mk-host-ping
command_line $USER4$/lib/nagios/plugins/check_icmp $ARG1$ $HOSTADDRESS$
}
define command {
command_name check-mk-host-ping-cluster
command_line $USER4$/lib/nagios/plugins/check_icmp -m 1 $ARG1$ $_HOSTNODEIPS$
}
define command {
command_name check-mk-host-ok
command_line echo "OK - Host is always assumed to be up"
}
define command {
command_name check-mk-host-tcp
command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$
}
# General notification script. Details can be configured
# in main.mk via notification_... options
define command {
command_name check-mk-notify
command_line \
NOTIFY_CONTACTNAME='$CONTACTNAME$' \
NOTIFY_CONTACTEMAIL='$CONTACTEMAIL$' \
NOTIFY_CONTACTPAGER='$CONTACTPAGER$' \
NOTIFY_NOTIFICATIONTYPE='$NOTIFICATIONTYPE$' \
NOTIFY_HOSTNOTIFICATIONNUMBER='$HOSTNOTIFICATIONNUMBER$' \
NOTIFY_SERVICENOTIFICATIONNUMBER='$SERVICENOTIFICATIONNUMBER$' \
NOTIFY_HOSTPROBLEMID='$HOSTPROBLEMID$' \
NOTIFY_SERVICEPROBLEMID='$SERVICEPROBLEMID$' \
NOTIFY_HOSTNAME='$HOSTNAME$' \
NOTIFY_HOSTALIAS='$HOSTALIAS$' \
NOTIFY_HOSTADDRESS='$HOSTADDRESS$' \
NOTIFY_HOSTATTEMPT='$HOSTATTEMPT$' \
NOTIFY_LASTHOSTSTATE='$LASTHOSTSTATE$' \
NOTIFY_LASTHOSTSTATEID='$LASTHOSTSTATEID$' \
NOTIFY_LASTHOSTSTATECHANGE='$LASTHOSTSTATECHANGE$' \
NOTIFY_LASTHOSTUP='$LASTHOSTUP$' \
NOTIFY_HOSTSTATE='$HOSTSTATE$' \
NOTIFY_HOSTSTATEID='$HOSTSTATEID$' \
NOTIFY_HOSTCHECKCOMMAND="$HOSTCHECKCOMMAND$" \
NOTIFY_HOSTOUTPUT='$HOSTOUTPUT$' \
NOTIFY_HOSTPERFDATA='$HOSTPERFDATA$' \
NOTIFY_LONGHOSTOUTPUT='$LONGHOSTOUTPUT$' \
NOTIFY_SERVICEDESC='$SERVICEDESC$' \
NOTIFY_LASTSERVICESTATE='$LASTSERVICESTATE$' \
NOTIFY_LASTSERVICESTATEID='$LASTSERVICESTATEID$' \
NOTIFY_LASTSERVICESTATECHANGE='$LASTSERVICESTATECHANGE$' \
NOTIFY_LASTSERVICEOK='$LASTSERVICEOK$' \
NOTIFY_SERVICEATTEMPT='$SERVICEATTEMPT$' \
NOTIFY_SERVICESTATE='$SERVICESTATE$' \
NOTIFY_SERVICESTATEID='$SERVICESTATEID$' \
NOTIFY_SERVICEOUTPUT='$SERVICEOUTPUT$' \
NOTIFY_LONGSERVICEOUTPUT='$LONGSERVICEOUTPUT$' \
NOTIFY_SERVICEPERFDATA='$SERVICEPERFDATA$' \
NOTIFY_SERVICECHECKCOMMAND="$SERVICECHECKCOMMAND$" \
NOTIFY_DATE='$DATE$' \
NOTIFY_SHORTDATETIME='$SHORTDATETIME$' \
NOTIFY_LONGDATETIME='$LONGDATETIME$' \
NOTIFY_HOSTDOWNTIME='$HOSTDOWNTIME$' \
NOTIFY_NOTIFICATIONCOMMENT='$NOTIFICATIONCOMMENT$' \
NOTIFY_NOTIFICATIONAUTHOR='$NOTIFICATIONAUTHOR$' \
NOTIFY_NOTIFICATIONAUTHORNAME='$NOTIFICATIONAUTHORNAME$' \
NOTIFY_NOTIFICATIONAUTHORALIAS='$NOTIFICATIONAUTHORALIAS$' \
NOTIFY_SERVICEACKAUTHOR='$SERVICEACKAUTHOR$' \
NOTIFY_SERVICEACKCOMMENT='$SERVICEACKCOMMENT$' \
NOTIFY_SERVICEGROUPNAMES='$SERVICEGROUPNAMES$' \
NOTIFY_HOSTACKAUTHOR='$HOSTACKAUTHOR$' \
NOTIFY_HOSTACKCOMMENT='$HOSTACKCOMMENT$' \
NOTIFY_HOSTGROUPNAMES='$HOSTGROUPNAMES$' \
NOTIFY_HOSTTAGS='$_HOSTTAGS$' \
NOTIFY_HOST_SL='$_HOSTEC_SL$' \
NOTIFY_SVC_SL='$_SERVICEEC_SL$' \
NOTIFY_SERVICE_SL='$_SERVICEEC_SL$' \
NOTIFY_HOST_EC_CONTACT='$_HOSTEC_CONTACT$' \
NOTIFY_SERVICE_EC_CONTACT='$_SERVICEEC_CONTACT$' \
NOTIFY_HOST_ADDRESS_4='$_HOSTADDRESS_4$' \
NOTIFY_HOST_ADDRESS_6='$_HOSTADDRESS_6$' \
NOTIFY_HOST_ADDRESS_FAMILY='$_HOSTADDRESS_FAMILY$' \
check_mk --notify
}
# _____ _ _ _
# |_ _(_)_ __ ___ ___ _ __ ___ _ __(_) ___ __| |___
# | | | | '_ ` _ \ / _ \ '_ \ / _ \ '__| |/ _ \ / _` / __|
# | | | | | | | | | __/ |_) | __/ | | | (_) | (_| \__ \
# |_| |_|_| |_| |_|\___| .__/ \___|_| |_|\___/ \__,_|___/
# |_|
#
# Make sure, timeperiod used in default template is available
define timeperiod {
timeperiod_name 24X7
alias Dummy time period for check_mk
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
}