On Jun 29, 2007, at 8:48 AM, Caylan Van Larson wrote:

Howdy,

I think I've found a bug with the "Object Definition Tricks" found at http://nagios.sourceforge.net/docs/2_0/templatetricks.html#service.

Here is my configuration using the tricks above, which works...

define host {
        use                     production-host
        host_name               myhost
        alias                   My Host
        address                 x.x.x.x
        hostgroups              dell-servers
}

define hostgroup{
        hostgroup_name                   dell-servers
        alias                            Dell Servers
}

define service{
                 name                    dell-hardware
                 service_description     Dell Hardware
                 hostgroup_name          dell-servers
                 contact_groups          sysadmins
                 check_command           check_nrpe!check_dell
}

Right up until I add back in a legacy host/service definition...

define host {
        use                     production-host
        host_name               newhost
        alias                   New Host
        address                 y.y.y.y
}

define service {
                 use                     dell-hardware
                 host                                            newhost
}

Error: Service 'Dell Hardware' on host 'myhost' has already been defined Error: Could not register service (config file .... newhost.cfg on line XX)

Question: Why does "using" dell-hardware in a normal syntax (remember, my goal is to migrate the old style in red to the new hostgroups trick style above), is not compatible when the service has a hostgroup_name defined? This looks to me like a bug, where it's trying to redefine the service instead of just using it.

Thoughts?

My thought is that you need a unique "name" directive in the second service that uses dell-hardware. Otherwise the service with the use directive has the same name as the service it is using, causing exactly what the error says- the service dell hardware has already been defined, and yes, you are trying to re-define it. Basically, when you insert the use directive, it copies everything from the service (or whatever) you tell it to use into the new one, except for any directives that are explicitly set in the new on. And since you can't have two service definitions with the same name, you get that error.

-----------------------------------------------
Israel Brewster
Computer Support Technician
Frontier Flying Service Inc.
5245 Airport Industrial Rd
Fairbanks, AK 99709
(907) 450-7250 x293
-----------------------------------------------
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Nagios-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting 
any issue. 
::: Messages without supporting info will risk being sent to /dev/null

Reply via email to