私は現在、ホストグループ内のすべてのホストに一連のサービスを定義する実験を行っていますが、これは問題なく機能しています。
私の問題は、ホストに含まれているこれらのサービス定義をホストグループから上書きできるようにすることです。たとえば、特定の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%
}
私はそれが古い投稿であることを知っていますが、私が何か他のものを探している間にこの質問に出くわしました。私は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%の警告が表示されます。ただし、変更値を含むチェックを追加したホストは除きます。
このように配置すると、カスタムサービスと、ホスト定義の標準ではないサービスチェックのみを追加できます。
これが一般的な用途であるかどうかはわかりませんが、- この記事 は、構成ファイルの設定に関しては頭を悩ませました。私はすでにこれらの膨大なテキストファイルを編集するのにうんざりしていて、これでとても簡単になりました。
とにかく、それが役に立てば幸いです。
「カスタム変数マクロ」を使用できます( 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
明示的に。