web-dev-qa-db-ja.com

ホストサービスによるNagiosホストグループサービスのオーバーライド

私は現在、ホストグループ内のすべてのホストに一連のサービスを定義する実験を行っていますが、これは問題なく機能しています。

私の問題は、ホストに含まれているこれらのサービス定義をホストグループから上書きできるようにすることです。たとえば、特定のLinuxサーバーでPINGチェックのしきい値をデフォルトから引き上げる必要がある場合などです。

したがって、たとえば、いくつかのサービス(SSH、ディスク、PINGなど)を継承するlinux-server Hostグループにホストを置きたいのですが、特定のサービスについては、独自の一意の値でオーバーライドしたいのですが、カスタム値を使用して、そのホストに固有のサービスを定義します。

例えば。カスタムPINGサービス定義を使用してlinux-serverにホストを定義します。

define Host {
    use             n1-Host
    Host_name       server-01
    hostgroups      linux-server
    alias           Test Linux Server
    parents         my-gateway,upstream-gateway
    address         server01.test.com
}

define service {
    use                     generic-service
    Host_name               server-01
    service_description     PING
    check_command           check_ping!100.0,5%!400.0,15%
}

残念ながら、現時点では、ホスト名とサービスの説明がグループレベルのPINGチェックと一致していますが、server-01に表示されるPINGサービスは1つだけで、これはグループレベルのPINGチェックであり、ホストレベルのPINGチェックではありません。

それは登録しているようですある程度私のNagiosログにあるように、私は見ることができます:

Jul 16 19:12:27 localhost nagios:警告:ホスト 'server-01'のサービス 'PING'に重複した定義が見つかりました

しかし、最終的には、サービスチェック結果の「パフォーマンスデータ」をチェックするようには機能しません。データに含まれるしきい値は、ホストチェックではなくグループチェックのしきい値であることがわかります。

  • ただし、ホストレベルのサービスがホストグループレベルのサービスよりも優先されるように、バージョン3.2.0に変更が加えられたと私は理解しています。私は現在3.4.1を実行しているので、これでうまくいくと思います。

  • この機能をすでに実装すべきだと私に思わせるいくつかのリンク:

  • さらに、3.4.1ソースコードからのxdata/xodtemplate.cファイルのコピーをチェックしましたが、一見すると、「スキップリスト」では、ホストレベルのチェックが優先されることを意図しているように見えますホストグループのチェック。確かに、私の分析は原始的です。

  • グループから特定のホストを除外できる可能性があることはわかっていますが、ホストグループには複数のサービスが含まれている可能性があり、これらのサービスのすべてをホストから削除したくないので、これは機能しません。

  • また、ホスト自体が実際に定義されている場所とは別に除外のリストを維持する必要があるのは直感的ではないこともわかりました。たとえば、上記のリンクの1つ(2番目のリンク)で次のことを行うようにアドバイスが提供されました。

サービス定義で、「hostgroup_name」の下に次の行を追加します。「Host_name!zlinux_hostname」

これにより、zlinuxホストがサービスチェックから除外されます。

私にとって、これは理想的な解決策ではありません。多くの例外を設ける必要があり、これは維持するのが難しいようです。

これを機能させる方法についての洞察について誰かがアドバイスがあれば、私はそれを非常に感謝します!

追加ビット

現在、グループレベルのPINGサービスを次のように定義しています。

define hostgroup {
   hostgroup_name          linux-server
   name                    Linux Servers
}

define service {
    use                     generic-service
    hostgroup_name          linux-server
    service_description     PING
    check_command           check_ping!100.0,2%!400.0,10%
}
5
Geekman

私はそれが古い投稿であることを知っていますが、私が何か他のものを探している間にこの質問に出くわしました。私はnagiosの専門家ではありませんが、大好きです。

ホストグループに配置するチェックは、そのホストグループ(すでに知っている)のホストに適用されます。 Host cfgで同じチェックを作成すると、ホストグループチェックが上書きされます。

とにかく、これを行う方法は次のとおりです。

1.チェックを含むホストグループcfgファイルを設定します。これが私の基本的なC:ドライブの容量チェックです。

define service{
    use         generic-service
    hostgroup_name      windows-servers
    service_description C: Drive Space
    notification_period     workhours
    check_command       check_nt!USEDDISKSPACE!-l c -w 80 -c 90
    }

2.ただし、1つのサーバーは、標準よりもはるかに少ない空き領域で実行されます。それでそれはホストcfgで、私は持っています:

define service{
    use         generic-service
    Host_name       ServerName
    service_description C: Drive Space
    check_command       check_nt!USEDDISKSPACE!-l c -w 95 -c 99
    notification_period     workhours
    }

これで、サービスチェックにより、ホストグループ内のすべてのホストについて80%および90%の警告が表示されます。ただし、変更値を含むチェックを追加したホストは除きます。

このように配置すると、カスタムサービスと、ホスト定義の標準ではないサービスチェックのみを追加できます。

これが一般的な用途であるかどうかはわかりませんが、- この記事 は、構成ファイルの設定に関しては頭を悩ませました。私はすでにこれらの膨大なテキストファイルを編集するのにうんざりしていて、これでとても簡単になりました。

とにかく、それが役に立てば幸いです。

4
Port16

「カスタム変数マクロ」を使用できます( http://nagios.sourceforge.net/docs/3_0/macros.html

Pingサービスの定義で、たとえば次のように使用します。

check_command  check_ping!200.0,20%!$_HOSTVAR_SERVICE_PING_CRITICAL_RTA$,40%

ホストテンプレートで、デフォルト値を設定します。

_VAR_SERVICE_PING_CRITICAL_RTA  500

ホスト定義では、差分値セットを使用する必要があります。

_VAR_SERVICE_PING_CRITICAL_RTA  1500

明示的に。

3
Marki