Nagios

序論


このドキュメントは、どうテンプレート・ベースのオブジェクト定義iで(何か)隠された特徴を利用してどの様に健全性を保つかの説明です。 そうなら、どのように尋ねますか? 幾つかのタイプのオブジェクトは、定義で複数のホスト名、そして/または、ホストグループ名を指定できます、そして複数のホストやサービスにオブジェクト定義を「コピーすること」を許可します。 私はこれらの特徴をサポートするそれぞれのタイプのオブジェクトをそれぞれカバーします。 手初めに、この時間を節約をサポートするオブジェクトタイプは以下の通りです:

上で挙げられていないオブジェクト・タイプ(すなわち、時間範囲、コマンドなど)は、私が説明しようとしている特徴をサポートしません。

正規表現マッチング


私が以下に出す例はオブジェクト名の「標準」のマッチングを使用します。 もし、希望すれば、正規表現のマッチングを use_regexp_matching コンフィギュレーション・オプションを使うことでオブジェクト名に使えます。 デフォルトで、正規表現一致は、オブジェクト名に *, ?, +, or \. を含んだ場合だけ使うことができます。.. 正規表現がすべてのオブジェクト名で使って欲しいなら、use_true_regexp_matching 設定オプションを許可します。 以下の例に使われた任意のフィールドで正規表現を使えます。(ホスト名、ホストグループ名、サービス名、およびサービスグループ名)

注意: 正規表現マッチングを可能にするときの注意点--あなたの設定ファイルを変えなければならないかもしれません、正規表現として解釈されたくないかもしれな幾つかの指示が、まさにそれです! いったんあなたの設定を確かめると、どんな問題も明白になります。

サービス定義


複数のホスト: 複数のホストに割り当てられる同じサービスを作成したいなら、host_name 指示で複数のホストを指定できます。 以下の定義はHOST1 から HOSTNSOMESERVICE と呼ばれるサービスを作成します。 SOMESERVICEサービスの全インスタンスは同じでしょう(すなわち、同じチェック・コマンド、最大チェック試行、通知の期間などがあります)。

define service{
    host_name            HOST1,HOST2,HOST3,...,HOSTN
    service_description  SOMESERVICE
    other service directives ...
}

複数のHostgroupsの全ホスト: 1つかそれ以上のhostgroupsの全ホストに割り当てる同じサービスを作りたいなら、ただ一つのサービス定義を作成することによって、そうすることができます。 どのように? hostgroup_name指示では、サービスが作成されるべき1つかそれ以上のホストグループ名を指定できます。 以下の定義はホストグループである HOSTGROUP1からHOSTGROUPNの全ホストにSOMESERVICEと呼ばれるサービスを作ります。 SOMESERVICEサービスの全インスタンスは同じでしょう(すなわち、同じチェック・コマンド、最大チェック試行、通知の期間などがあります)。

define service{
    hostgroup_name		HOSTGROUP1,HOSTGROUP2,...,HOSTGROUPN
    service_description	SOMESERVICE
    other service directives ...
}

すべてのホスト: あなたの設定ファイルで定義される全ホストに割り当てられる同じサービスを作りたいなら、host_name指示にワイルドカードを使用できます。 以下の定義は設定ファイルで定義された全ホストにSOMESERVICEiと呼ばれるサービスを作成します。 SOMESERVICEサービスの全インスタンスは同じでしょう(すなわち、同じチェック・コマンド、最大チェック試行、通知の期間などがあります)。

define service{
    host_name		   *
    service_description  SOMESERVICE
    other service directives ...
}

ホストを除いて: 多数のホストやhostgroupsに同じサービスを作成したいが、幾つかのホストを定義に入れないようにしたいなら、ホストやホストグループの前に ! シンボルを置くことでこれが実現できます。

define service{
    host_name           HOST1,HOST2,!HOST3,!HOST4,...,HOSTN
    hostgroup_name      HOSTGROUP1,HOSTGROUP2,!HOSTGROUP3,!HOSTGROUP4,...,HOSTGROUPN
    service_description   SOMESERVICE
    other service directives ...
}

サービス・エスカレーション定義


複数のホスト: If you want to create service escalations for services of the same name/description that are assigned to multiple hosts, you can specify multiple hosts in the host_name directive. 複数のホストに割り当てられる同じ名前/記述のサービスのためにサービス・エスカレーションを作りたいなら、host_name指示で複数のホストを指定できます。 以下の定義はHOST1 から HOSTN までのホストの SOMESERVICEと呼ばれるサービスにサービス・エスカレーションを作成します。 サービスエスカレーションのすべてのインスタンスが同じでしょう(すなわち、同じ連絡グループ、通知間隔などがあります)。

define serviceescalation{
    host_name        HOST1,HOST2,HOST3,...,HOSTN
    service_description    SOMESERVICE
    other escalation directives ...
}

複数のHostgroupsの全ホスト: 1つかそれ以上のホストグループ中の全てのホストに割り当てられた同じ名前/記述のサービスについてサービス・エスカレーションを作りたいなら、hostgroup_name 指示が使えます。 The definition below would create a service escalation for services called SOMESERVICE on all hosts that are members of hostgroups HOSTGROUP1 through HOSTGROUPN. 以下の定義はSOMESERVICEと呼ばれるサービスにサービス・エスカレーションをhostgroups HOSTGROUP1からHOSTGROUPNのメンバーの全ホストに作成します。 サービスエスカレーションのすべてのインスタンスが同じでしょう(すなわち、同じ連絡グループ、通知間隔などがあります)。

define serviceescalation{
    hostgroup_name       HOSTGROUP1,HOSTGROUP2,...,HOSTGROUPN
    service_description  SOMESERVICE
    other escalation directives ...
}

全ホスト: あなたの設定ファイルで定義される全ホストに割り当てられる同じ名前/記述のサービスに同じサービス・エスカレーションを作りたいなら、host_name 指示にワイルドカードを使用できます。 以下の定義は、設定ファイルで定義された全ホストについてSOMESERVICEと呼ばれる全サービスにサービス・エスカレーションを設定作成します。 サービスエスカレーションのすべてのインスタンスが同じでしょう(すなわち、同じ連絡グループ、通知間隔などがあります)。

define serviceescalation{
    host_name            *
    service_description  SOMESERVICE
    other escalation directives ...		
}

ホストを除いて: サービスのための同じサービス・エスカレーションを多数のホストやhostgroupsに作りたいが、幾つかのホストを定義に入れないようにしたいなら、ホストやホストグループの前に ! シンボルを付けることでこれができます。

define serviceescalation{
     host_name            HOST1,HOST2,!HOST3,!HOST4,...,HOSTN
     hostgroup_name       HOSTGROUP1,HOSTGROUP2,!HOSTGROUP3,!HOSTGROUP4,...,HOSTGROUPN
     service_description  SOMESERVICE
     other escalation directives ...       
}

同じホストにおける全サービス: 特定のホストに割り当てられたすべてのサービスのためにサービス・エスカレーションを作りたいなら、service_description指示にワイルドカードを使用できます。 以下の定義はホストHOST1の全サービスにサービス・エスカレーションを作成します。 サービスエスカレーションのすべてのインスタンスが同じでしょう(すなわち、同じ連絡グループ、通知間隔などがあります)。

特に大胆でありたいと思うなら、host_nameとservice_description 指示の両方でワイルドカードを指定できます。 そうすると、設定ファイルで定義したすべてのサービスのサービス・エスカレーションを作るでしょう。

define serviceescalation{
    host_name            HOST1
    service_description  *
    other escalation directives ...
}

同じホストにおける多重サービス: If you want to create service escalations for all multiple services assigned to a particular host, you can use a specify more than one service description in the service_description directive. 特定のホストに割り当てられたすべての多重サービスためにサービス・エスカレーションを作りたいなら、service_description指示で1つ以上のサービス記述を指定します。 The definition below would create a service escalation for services SERVICE1 through SERVICEN on host HOST1. 以下の定義はホストの SERVICE1 から SERVICEN のサービスにサービス・エスカレーションを作成します。 All the instances of the service escalation would be identical (i.e. have the same contact groups, notification interval, etc.). サービスエスカレーションのすべてのインスタンスが同じでしょう(すなわち、同じ連絡グループ、通知間隔などがあります)。

define serviceescalation{
    host_name		   HOST1
    service_description  SERVICE1,SERVICE2,...,SERVICEN
    other escalation directives ...
}

複数のServicegroupsでの全サービス: 1つかそれ以上のservicegroupsに属する全てサービスのためサービス・エスカレーションを作りたいいなら、servicegroup_name指示を使って出来ます。を使用できます。 以下の定義はサービスグループのメンバーである SERVICEGROUP1 から SERVICEGROUPN の全サービスにサービス・エスカレーションを作成します。 サービスエスカレーションのすべてのインスタンスが同じでしょう(すなわち、同じ連絡グループ、通知間隔などがあります)。

define serviceescalation{
    servicegroup_name  SERVICEGROUP1,SERVICEGROUP2,...,SERVICEGROUPN
    other escalation directives ...
}

サービス依存定義


複数のホスト: そして、複数のホストに割り当てられる同じ名前/記述のサービスのためのサービスの依存を作りたいなら、host_name や dependent_host_name 指示で複数のホストを指定できます。 以下の例では、ホストのHOST3とHOST4の上のサービスSERVICE2はホストのHOST1とHOST2の上のサービスSERVICE1に依存しているでしょう。 ホスト名を除いて、サービス依存の全インスタンスが同じでしょう(すなわち、同じ通知失敗評価基準などがあります)。

define servicedependency{
    host_name                      HOST1,HOST2
    service_description            SERVICE1
    dependent_host_name            HOST3,HOST4
    dependent_service_description  SERVICE2
    other dependency directives ...
}

複数のHostgroupsのすべてのホスト: 1つかそれ以上のホストグループに属する全てのホストに割り当てられた同じ名前/記述のサービスについてサービス依存を作りたいなら、hostgroup_name そして/また dependent_hostgroup_name 指示を使って出来ます。 以下の例では、hostgroups HOSTGROUP3とHOSTGROUP4の全てのホストの上のサービスSERVICE2はhostgroups HOSTGROUP1とHOSTGROUP2の全てのホストの上のサービスSERVICE1に依存しているでしょう。 hostgroupsのそれぞれ5つのホストがあるとすると、この定義は100の単一サービス依存定義を作るのと同じです! ホスト名を除いて、サービス依存の全インスタンスが同じでしょう(すなわち、同じ通知失敗評価基準などがあります)。

define servicedependency{
    hostgroup_name                 HOSTGROUP1,HOSTGROUP2
    service_description            SERVICE1
    dependent_hostgroup_name       HOSTGROUP3,HOSTGROUP4
    dependent_service_description  SERVICE2
    other dependency directives ...
}

ホストにおける全サービス: 特定のホストに割り当てられた全てのサービスにサービスの依存を作りたいなら、service_description そして/または、deependent_service_description 指示にワイルドカードを使用できます。 以下の例では、ホストHOST2の全てのサービスがホストHOST1の全てのサービスに依存しているでしょう。 サービス依存の全インスタンスが同じでしょう(すなわち、同じ通知失敗評価基準などがあります)。

define servicedependency{
    host_name                      HOST1
    service_description            *
    dependent_host_name            HOST2
    dependent_service_description  *
    other dependency directives ...
}

ホストにおける多重サービス: 特定のホストに割り当てられた多重サービスにサービスの依存を作りたいなら、以下のservice_description、そして/または dependent_service_description 指示の1つ以上のサービス記述を指定することで出来ます。

define servicedependency{
    host_name                      HOST1
    service_description            SERVICE1,SERVICE2,...,SERVICEN
    dependent_host_name            HOST2
    dependent_service_description  SERVICE1,SERVICE2,...,SERVICEN
    other dependency directives ...
}

複数のServicegroupsでの全サービス: 1つかそれ以上のservicegroupsにはある全てのサービスにサービスの依存を作りたいなら、次の様に servicegroup_name そして/または dependent_servicegroup_name 指示で使ってできます。

define servicedependency{
    servicegroup_name		SERVICEGROUP1,SERVICEGROUP2,...,SERVICEGROUPN
    dependent_servicegroup_name	SERVICEGROUP3,SERVICEGROUP4,...SERVICEGROUPN
    other dependency directives ...
}

同じホスト依存: サービスに依存する多重サービスにサービスの依存を作りたいなら、independent_host_name とdependent_hostgroup_name を空の状態でおきます。 以下の例は、ホストのHOST1とHOST2には少なくともそれらに関連している以下の指示があると仮定します: SERVICE1, SERVICE2, SERVICE3, and SERVICE4. SERVICE1、SERVICE2、SERVICE3、およびSERVICE4。 この例では、HOST1の上のSERVICE3とSERVICE4はHOST1のSERVICE1とSERVICE2の両方に依存するようになります。 HOST2の上のSERVICE3およびSERVICE4はHOST2のSERVICE1とSERVICE2の両方に依存しているのに似ています。

define servicedependency{
     host_name                      HOST1,HOST2
     service_description            SERVICE1,SERVICE2
     dependent_service_description  SERVICE3,SERVICE4
     other dependency directives ...
}

ホスト・エスカレーション定義


複数のホスト: 複数のホストのホスト・エスカレーションを作りたいなら、host_name 指示で複数のホストを指定できます。 以下の定義はHOST1からHOSTNについてホスト・エスカレーションを作るでしょう。 ホスト増大の全インスタンスが同じでしょう(すなわち、同じ連絡グループ、通知間隔などがあります)。

define hostescalation{
    host_name      HOST1,HOST2,HOST3,...,HOSTN
    other escalation directives ...		
}

複数のHostgroupsの全ホスト: 1つかそれ以上のhostgroups中の全ホストにホスト・エスカレーションを作りたいなら、hostgroup_name 指示を使ってできます。 以下の定義はhostgroups HOSTGROUP1からHOSTGROUPNのメンバーであるすべてのホストにホスト・エスカレーションを作成するでしょう。 ホスト増大の全インスタンスが同じでしょう(すなわち、同じ連絡グループ、通知間隔などがあります)。

define hostescalation{
    hostgroup_name		HOSTGROUP1,HOSTGROUP2,...,HOSTGROUPN
    other escalation directives ...
}

すべてのホスト: あなたの設定ファイルで定義される全ホストに同じホスト・エスカレーションを作りたいなら、host_name 指示にワイルドカードを使用できます。 以下で定義はホストの設定ファイルで定義された全てのホストのためホスト・エスカレーションを作成するでしょう。 ホスト増大の全インスタンスが同じでしょう(すなわち、同じ連絡グループ、通知間隔などがあります)。

define hostescalation{
    host_name        *
    other escalation directives ...
}

ホストを除いて: 同じホスト・エスカレーションを多数のホストやhostgroupsに作りたいが、幾つかのホストを定義に入れないようにしたいなら、ホストやホストグループの前に ! マークを置くことでこれを実現できます。

define hostescalation{
    host_name          HOST1,HOST2,!HOST3,!HOST4,...,HOSTN
    hostgroup_name     HOSTGROUP1,HOSTGROUP2,!HOSTGROUP3,!HOSTGROUP4,...,HOSTGROUPN
    other escalation directives ...
}

ホスト依存定義


複数のホスト: 複数のホストに ホスト依存を作りたいなら、複数のホストを host_name そして/また dependent_host_name 指示で指定する事ができます。 以下の定義は6つの異なったホストの依存を作るのと同じでしょう。 上の例では、ホスト HOST3、HOST4、およびHOST5はHOST1とHOST2の両方に依存しているでしょう。 ホスト名を除いて、ホストの依存の全インスタンスが同じでしょう(すなわち、同じ通知失敗評価基準などがあります)。

define hostdependency{
    host_name            HOST1,HOST2
    dependent_host_name  HOST3,HOST4,HOST5
    other dependency directives ...
}

複数のHostgroupsの全ホスト: If you want to create host escalations for all hosts in in one or more hostgroups, you can do use the hostgroup_name and /or dependent_hostgroup_name directives. 1つかそれ以上のhostgroups中の全ホストにホスト・エスカレーションを作りたいなら、hostgroup_name と/または dependent_hostgroup_name 指示を使ってできます。 In the example below, all hosts in hostgroups HOSTGROUP3 and HOSTGROUP4 would be dependent on all hosts in hostgroups HOSTGROUP1 and HOSTGROUP2. 以下の例では、hostgroups HOSTGROUP3とHOSTGROUP4の全てのホストがhostgroups HOSTGROUP1とHOSTGROUP2のすべてのホストに依存しているでしょう。 ホスト名を除いて、ホスト依存の全インスタンスが同じでしょう(すなわち、同じ通知失敗評価基準などがあります)。

define hostdependency{
    hostgroup_name            HOSTGROUP1,HOSTGROUP2
    dependent_hostgroup_name  HOSTGROUP3,HOSTGROUP4
    other dependency directives ...
}


全ホスト: あなたの設定ファイルでメンバーとして定義されるすべてのホストのhostgroupを作りたいなら、メンバー指示にワイルドカードを使用できます。 以下の定義はあなたの設定ファイルのメンバーとして定義される全てのホストが含まれるHOSTGROUP1と呼ばれるhostgroupを作成するでしょう。

define hostgroup{
    hostgroup_name        HOSTGROUP1
    members            *
    other hostgroup directives ...
}

参照 参照: オブジェクトの設定, オブジェクトの継承

English Deutsch 日本語

目次