Nagios で奇妙な問題が発生しています。paramiko、httplib、re を使用するスクリプトを Python で作成しました。paramiko を使用するように記述されたコードをコメント アウトすると、スクリプトは Nagios で OK を返します。スクリプトのコメントを外すと、ステータスは単に (null) を返します。
これが私たちのコードです
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#ssh.connect(self.get('hostname'),int(self.get('port')),self.get('username'),allow_agent=True)
ssh.connect('192.168.56.102' , 22 , 'oracle' ,allow_agent=True)
link = '127.0.0.1:4848'
stdin,stdout,stderr = ssh.exec_command('wget --no-proxy ' + link + ' 2>&1 | grep -i "failed\|error"')
result = stdout.readlines()
result = " ".join(result)
if result == "":
return MonitoringResult(MonitoringResult.OK,'Webservice up')
else:
return MonitoringResult(MonitoringResult.CRITICAL,'Webservice down %s' % result)
したがって、上記の部分をコメントアウトすると
if result =="":
if の上に result="" を追加すると、Nagios で 'Webservice up' が返されます。上記のコードを有効にすると、(null) が返されます。paramikoとの競合か何かですか?
ターミナルでコードを実行すると、正しいステータスが返されますが、Nagios に実装されている場合は表示されません。