一連のリバースsshトンネルの仲介者として使用されるサーバーがあります。そのサーバーでnagiosを使用して、これらのsshトンネルがすべて稼働していることを監視したいと思います。
基本的に、私は次と同等のnagiosを実行したいと思います。
ssh -p 12344 localhost
ssh -p 12415 localhost
ssh -p 12544 localhost
私は次の定義を持っています:
define Host{
use generic-Host
Host_name paniqui
address localhost
_PORT 12345
}
define hostgroup {
hostgroup_name chits-servers
alias CHITS servers
members paniqui
}
define service {
hostgroup_name chits-servers
service_description SSHTUNNEL
check_command check_ssh!-p $_HOSTPORT$ $HOSTADDRESS$
use generic-service
notification_interval 0 ; set > 0 if you want to be renotified
}
しかし、Nagios Webインターフェイスでサービスを確認すると、次のように表示されます。
Status Information: UNKNOWN (for 0d 2h 7m 50s)
Usage:check_ssh [-46] [-t <timeout>] [-r <remote version>] [-p <port>] <Host>
助言がありますか?
コマンドのパラメーターは、コマンド定義で構成する必要があります。何かのようなもの:
define command {
command_name check_tunneled_ssh
command_line /usr/lib/nagios/plugins/check_ssh -p $ARG1$ $HOSTADDRESS$
}
次に、
check_command check_tunneled_ssh!12344
あなたのサービスで。
これが私のnagios/etc/objects /commands.cfgです。これは標準だと思います。
# 'check_ssh' command definition
define command{
command_name check_ssh
command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
}
これは、checkコマンドで$ HOSTADDRESS $を指定することで、間違っていると思います。代わりに、サービス定義でこれを試してください。
check_command check_ssh!-p 12345
「実際の」質問とは関係のない別のコメント...すべてのリモートサーバーに対して個別のホスト定義を作成するのではなく、ローカルホストの「ホスト」で新しいサービスを作成するだけです(これが提供しているものとして表示されます)サービス)各トンネル用。