2017-07-18 7 views
0

nagiosプラグインnagios-http-json https://github.com/drewkerrigan/nagios-http-jsonを使用してjsonレスポンスを確認します。Nagiosプラグイン:nagios-http-jsonキーのワイルドカード

例(私はわずかに変更された)があります:ring_members位置0かどうかを確認するには

plugins/check_http_json.py .... -w ring_members(0).numberToCheck,@20: 

:私は書くことができます応答の配列の最初の要素を確認したい場合は

Data for keys ring_members(0).numberToCheck, ring_members(1).numberToCheck, ring_members(2).numberToCheck: 
{ 
    "ring_members": [ 
     {"numberToCheck": "10"}, 
     {"numberToCheck": "20"}, 
     {"numberToCheck": "30"} 
    ] 
} 

は、 key numberToChecksの値が20以上で、trueの場合は警告を表示します。

すべての値を確認するには、-w ring_members(0).numberToCheck,@20: ring_members(1).numberToCheck,@20: ...を繰り返します。

ring_membersの長さが不明な場合、ring_メンバーの各位置を確認することは可能ですか?

答えて

1

私はプラグインcheck_http_json.pyを修正することになった、と "すべて%" のカスタムチェックを追加する代わりに、インデックス位置の:

def gte(self, key, value): 
    if '(%all)' in key: 
     array_key = key.split('(%all)')[0] 
     array_full = self.get(array_key) 
     for item in array_full: 
      if float(item['numberToCheck']) >= float(value): 
       return True 
     return False 
    return self.exists(key) and float(self.get(key)) >= float(value) 

その後、20 @plugins/check_http_json.py ... -w ring_members(%all),@20:

を次のように合格:GTEです - >より大きいか等しい。

この結果、ring_members(0 - ring_members.length-1).numberToCheck> = 20を確認した結果、

関連する問題