Error: Service has no hosts and/or service_description

今天配置nagios的时候,遇到一个报错,颇为头疼了一段时间,特此记录。

环境:centos6.5  nagiso 4.0.8

故障现象:

# /usr/local/nagios/bin/nagios -v  /usr/local/nagios/etc/nagios.cfg

Nagios Core 4.0.8

Copyright (c) 2009-present Nagios Core Development Team and Community Contributors

Copyright (c) 1999-2009 Ethan Galstad

Last Modified: 08-12-2014

License: GPL

Website: http://www.nagios.org

Reading configuration data...

   Read main config file okay...

Error: Service has no hosts and/or service_description (config file '/usr/local/nagios/etc/objects/templates.cfg', starting on line 188)

   Error processing object config files!

***> One or more problems was encountered while processing the config files...

     Check your configuration file(s) to ensure that they contain valid

     directives and data defintions.  If you are upgrading from a previous

     version of Nagios, you should be aware that some variables/definitions

     may have been removed or modified in this version.  Make sure to read

     the HTML documentation regarding the config files, as well as the

     'Whats New' section to find out what has changed.

问题原因:

# vim templates.cfg

# Local service definition template - This is NOT a real service, just a template!

define service{

        name                            local-service           ; The name of this service template

        use                             generic-service         ; Inherit default values from the generic-service definition

        max_check_attempts              4                       ; Re-check the service up to 4 times in order to determine its final (hard) state

        normal_check_interval           5                       ; Check the service every 5 minutes under normal conditions

        retry_check_interval            1                       ; Re-check the service every minute until a hard state can be determined

        register                        0                       ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!

        }

define service{

        name                            dkdh-service

        check_interval                  5

        retry_interval                  1

        max_check_attempts              4

        check_command                   check-host-alive        ; Default command to check if routers are "alive"

        check_period                    24x7

        process_perf_data               0

        retain_nonstatus_information    0

        contact_groups                  dkdhadmins

        notification_interval           5

        notification_period             24x7

        notification_options            w,u,c,r

        register                        0

        }

上面红色字体的配置项,一开始没有写,添加之后解决。

故障分析:

该配置项的含义 DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!可以看出该配置项主要是判断是否该服务是模板,一般在该配置文件我们都建为模板,不作为实际使用的服务。由其他地方调用。如果不配置默认值可能是1(待验证)会认为这个是要启动的服务,但是找不到关联的主机,所以报错。

如有错误请斧正。