Skip to content

Instantly share code, notes, and snippets.

@jhrcz
Last active December 18, 2015 18:18
Show Gist options
  • Save jhrcz/5824327 to your computer and use it in GitHub Desktop.
Save jhrcz/5824327 to your computer and use it in GitHub Desktop.

teplate for check_cluster nagios check

scripted in bash for easy reusing

sample output

$ cat my-hostprefix-clu-host-GEN.cfg my-hostprefix--clu-services-GEN.cfg my-hostprefix-clu-deps-GEN.cfg 

define host {
        host_name	my-hostprefix-X-clu
        alias		my-hostprefix-X-clu
        address		127.0.0.1
	use		generic-host
}


define service {
        use                             SYSMON-MIT-HA
	host_name 			my-hostprefix-X-clu
	service_description 		CLU:sys:cluster

	check_command			check_service_cluster!"sys:cluster"!0!7!$SERVICESTATEID:my-hostprefix-1.domain.xxx:sys:cluster$,$SERVICESTATEID:my-hostprefix-2.domain.xxx:sys:cluster$,$SERVICESTATEID:my-hostprefix-3.domain.xxx:sys:cluster$,$SERVICESTATEID:my-hostprefix-4.domain.xxx:sys:cluster$,$SERVICESTATEID:my-hostprefix-5.domain.xxx:sys:cluster$,$SERVICESTATEID:my-hostprefix-6.domain.xxx:sys:cluster$,$SERVICESTATEID:my-hostprefix-7.domain.xxx:sys:cluster$,$SERVICESTATEID:my-hostprefix-8.domain.xxx:sys:cluster$

	max_check_attempts              1
}


define service {
        use                             SYSMON-MIT-HA
	host_name 			my-hostprefix-X-clu
	service_description 		CLU:sys:libvirt-cross

	check_command			check_service_cluster!"sys:libvirt-cross"!0!7!$SERVICESTATEID:my-hostprefix-1.domain.xxx:sys:libvirt-cross$,$SERVICESTATEID:my-hostprefix-2.domain.xxx:sys:libvirt-cross$,$SERVICESTATEID:my-hostprefix-3.domain.xxx:sys:libvirt-cross$,$SERVICESTATEID:my-hostprefix-4.domain.xxx:sys:libvirt-cross$,$SERVICESTATEID:my-hostprefix-5.domain.xxx:sys:libvirt-cross$,$SERVICESTATEID:my-hostprefix-6.domain.xxx:sys:libvirt-cross$,$SERVICESTATEID:my-hostprefix-7.domain.xxx:sys:libvirt-cross$,$SERVICESTATEID:my-hostprefix-8.domain.xxx:sys:libvirt-cross$

	max_check_attempts              1
}


define servicedependency{
        host_name                       my-hostprefix-X-clu
        service_description             CLU:sys:cluster
        dependent_host_name             my-hostprefix-1.domain.xxx
        dependent_service_description   sys:cluster
        execution_failure_criteria      c
        notification_failure_criteria   c
}


define servicedependency{
        host_name                       my-hostprefix-X-clu
        service_description             CLU:sys:cluster
        dependent_host_name             my-hostprefix-2.domain.xxx
        dependent_service_description   sys:cluster
        execution_failure_criteria      c
        notification_failure_criteria   c
}

...

define servicedependency{
        host_name                       my-hostprefix-X-clu
        service_description             CLU:sys:libvirt-cross
        dependent_host_name             my-hostprefix-8.domain.xxx
        dependent_service_description   sys:libvirt-cross
        execution_failure_criteria      c
        notification_failure_criteria   c
}

#!/bin/bash
NODES=8
NODE_PREFIX=my-hostprefix-
NODE_SUFFIX=.domain.xxx
SERVICES="sys:cluster sys:libvirt-cross"
exec > ${NODE_PREFIX}clu-deps-GEN.cfg
for SERVICE in $SERVICES
do
for i in `seq 1 $NODES`
do
echo "
define servicedependency{
host_name ${NODE_PREFIX}X-clu
service_description CLU:$SERVICE
dependent_host_name ${NODE_PREFIX}$i${NODE_SUFFIX}
dependent_service_description $SERVICE
execution_failure_criteria c
notification_failure_criteria c
}
"
done
done
#!/bin/bash
NODES=8
NODE_PREFIX=my-hostprefix-
NODE_SUFFIX=.domain.xxx
HOST_TEMPLATE=generic-host
exec > ${NODE_PREFIX}clu-host-GEN.cfg
echo "
define host {
host_name ${NODE_PREFIX}X-clu
alias ${NODE_PREFIX}X-clu
address 127.0.0.1
use ${HOST_TEMPLATE}
}
"
#!/bin/bash
NODES=8
NODE_PREFIX=my-hostprefix-
NODE_SUFFIX=.domain.xxx
SERVICES="sys:cluster sys:libvirt-cross"
exec > ${NODE_PREFIX}-clu-services-GEN.cfg
for SERVICE in $SERVICES
do
echo "
define service {
use SYSMON-MIT-HA
host_name ${NODE_PREFIX}X-clu
service_description CLU:$SERVICE
"
echo -n ' check_command check_service_cluster!"'"$SERVICE"'"!0!'"$(($NODES - 1))"'!'
for i in `seq 1 $NODES` ; do echo -n '$SERVICESTATEID:'"${NODE_PREFIX}$i${NODE_SUFFIX}:$SERVICE"'$,' ; done | sed -e 's/,$//' ; echo
echo '
max_check_attempts 1
}
'
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment