サービス定義の 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
}

関連情報