서비스 정의의 Nagios 변수 $HOSTNAME$

서비스 정의의 Nagios 변수 $HOSTNAME$

다음 오류가 발생합니다.

Error: Could not find any host matching '$HOSTNAME$' (config file '/usr/local/nagios/etc/servers/example.com.cfg', starting on line 136)
Error: Failed to expand host list '$HOSTNAME$' for service 'HTTP' (/usr/local/nagios/etc/servers/example.com.cfg:136)

내 호스트/서비스 정의:

define host{
        use                     linux-server            ; Name of host template to use
                                                        ; This host definition will inherit all variables that are defined
                                                        ; in (or inherited by) the linux-server host template definition.
        host_name               example.com
        alias                   example.com
        address                 127.0.0.1
        }



###############################################################################
###############################################################################
#
# HOST GROUP DEFINITION
#
###############################################################################
###############################################################################

# Define an optional hostgroup for Linux machines

define hostgroup{
        hostgroup_name  linux-servers ; The name of the hostgroup
        alias           Linux Servers ; Long name of the group
        members         example.com     ; Comma separated list of hosts that belong to this group
        }

내 템플릿:

    # 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
            check_interval           5                      ; Check the service every 5 minutes under normal conditions
            retry_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 http
            check_command                   check_http
            notifications_enabled           0
            service_description             HTTP
            host_name                       $HOSTNAME$
            register                        0
            }

define service{
        use                             local-service,http         ; Name of service template to use
#        host_name                       example.com
        }

이것은 특별한 일을 하지 않는 꽤 기본 Nagios입니다. $HOSTNAME$을(를) 잘못 사용하고 있는 걸까요? 복사-붙여넣기 등은 물론이고 호스트 이름에 대한 변수를 얻을 수 있다면 좋을 것 같습니다. :)

감사합니다!

답변1

당신이 정의했기 때문에템플릿( register 0), 실행되는 호스트 또는 호스트 그룹을 지정해서는 안 됩니다. use나중에 템플릿을 사용하여 호스트 또는 호스트 그룹에 대한 검사를 지정할 때 이 작업을 수행하게 됩니다. 귀하의 예에서 확장된 최소한의 예는 다음과 같습니다.

define service{
        name                            http-template
        check_command                   check_http
        notifications_enabled           0
        service_description             HTTP
        register                        0
}

define service{
        use                              http-template
        host                             example.com
}

관련 정보