Recursive Service definitions

Syd Alsobrook syd at ittagteam.com
Wed Aug 22 21:28:34 CEST 2007


Here's on for crowd. I am using and loving the custom variables and have run 
into an interesting idea. I have a host, a firewall, that has multiple 
interfaces and multiple address per interface. I also have a hostgroup that 
contains basic host checks for the os type. In the host group object file I 
have a check for the first interface using a custom variable. What I would 
like to do is have the hostgroup definition check all enumerated interface on 
that host. I figure it can currently be done two ways:

1) Write a wrapper to grab all the environment vars for the interfaces and 
loop through them. This would be a single service definition.
2) Define a service for each interface. ( Currently being done in the host 
object file )

What I an wondering is would there be a way to dynamically generate the 
service definitions for each interface?

Below are sanitized versions of my object files.

## begin host file billy.cfg
define host {
        use                            all-hosts
        host_name                      billy
        alias                          Core Firewall
        address                        10.2.2.1
        check_command                  check-host-alive
        parents                        sw3548u1
        _IF0            eth0
        _IF0_MAC        00:00:00:00:00:00
        _IF0_IP         24.0.0.2
        _IF0_IP1        24.0.0.3
        _IF0_IP2        24.0.0.4
        _IF0_IP3        24.0.0.5
        _IF0_IP4        24.0.0.6
        _IF0_CONN       Public
        _IF1            eth1
        _IF1_MAC        00:00:00:00:00:00
        _IF1_IP         10.2.0.1
        _IF1_CONN       Private
        _IF2            eth2
        _IF2_MAC        00:00:00:00:00:00
        _IF2_IP         10.2.1.1
        _IF2_CONN       WLAN
        _IF3            eth3
        _IF3_MAC        00:00:00:00:00:00
        _IF3_IP         10.2.2.1
        _IF3_CONN       Server
        }

define service {
        use                            crit-service
        host_name          billy
        service_description            Interface - IF1
        check_command                  check_ifopstat!$_HOSTIF1$
        }

define service {
        use                            crit-service
        host_name          billy
        service_description            Interface - IF2
        check_command                  check_ifopstat!$_HOSTIF2$
        }

define service {
        use                            crit-service
        host_name          billy
        service_description            Interface - IF3
        check_command                  check_ifopstat!$_HOSTIF3$
        }
## End host object file

## Begin Host group object file hg-osDebian.cfg
define hostgroup{
        hostgroup_name  debian-servers
        alias           All Debian Servers
        members        billy
        }
define service {
        use                            crit-service
        hostgroup_name          debian-servers
        service_description            Interface - IF0
        servicegroups           baseos
        check_command                  check_ifopstat!$_HOSTIF0$
        }
## End Host group object file


-- 
Syd Alsobrook
IT Tag Team, Inc.
518-598-6025
http://www.ittagteam.com

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/




More information about the Developers mailing list