Benjamin Renard commited on 2012-10-09 11:25:13
              Showing 3 changed files, with 157 additions and 0 deletions.
            
| ... | ... | @@ -0,0 +1 @@ | 
| 1 | +*~ | 
| ... | ... | @@ -0,0 +1,35 @@ | 
| 1 | +#!/bin/bash | |
| 2 | +# Verifie la latence d'une connexion SIP Asterisk | |
| 3 | + | |
| 4 | +PEER=$1 | |
| 5 | + | |
| 6 | +[ ! -n "$PEER" ] && echo "Usage : $0 [peer]" && exit 1 | |
| 7 | + | |
| 8 | +CRITICAL=100 | |
| 9 | +WARNING=40 | |
| 10 | + | |
| 11 | +latency=`/usr/bin/sudo -u root /usr/sbin/rasterisk -rnx "sip show peer $PEER"|grep Status|sed 's/.*(\([0-9]*\) ms.*/\1/g'` | |
| 12 | + | |
| 13 | +if [ ! -n "$latency" ] | |
| 14 | +then | |
| 15 | + /bin/echo "SIP Latency UNKNOWN" | |
| 16 | + exit 3 | |
| 17 | +fi | |
| 18 | + | |
| 19 | +details="Latency : $latency ms" | |
| 20 | + | |
| 21 | +if [ $latency -gt $CRITICAL ] | |
| 22 | +then | |
| 23 | + nstatus="CRITICAL" | |
| 24 | + exitcode=2 | |
| 25 | +elif [ $latency -gt $WARNING ] | |
| 26 | +then | |
| 27 | + nstatus="WARNING" | |
| 28 | + exitcode=1 | |
| 29 | +else | |
| 30 | + nstatus="OK" | |
| 31 | + exitcode=0 | |
| 32 | +fi | |
| 33 | + | |
| 34 | +/bin/echo "SIP Latency ${nstatus} : $details | latency=${latency}ms" | |
| 35 | +exit $exitcode | 
| ... | ... | @@ -0,0 +1,121 @@ | 
| 1 | +#!/bin/bash | |
| 2 | + | |
| 3 | +[ ! -n "$1" ] && echo "Usage : $0 [-cX] [-wX] [-d] [peer1] [peer2]" && exit 1 | |
| 4 | + | |
| 5 | +CRITICAL_LATENCY=100 | |
| 6 | +WARNING_LATENCY=70 | |
| 7 | + | |
| 8 | +CRITICAL_PEER_NUMBER=1 | |
| 9 | +WARNING_PEER_NUMBER=2 | |
| 10 | + | |
| 11 | + | |
| 12 | +function checkPeer() { | |
| 13 | + PEER=$1 | |
| 14 | + state=$( /usr/bin/sudo -u root /usr/sbin/rasterisk -rnx "sip show peer $PEER"|grep "Status"|cut -d ":" -f 2 ) | |
| 15 | + if [ ! -n "$state" ] | |
| 16 | + then | |
| 17 | + export MSG="$PEER : not found" | |
| 18 | + return 3 | |
| 19 | + fi | |
| 20 | + | |
| 21 | + ok=$( echo $state|grep -c OK ) | |
| 22 | + | |
| 23 | + | |
| 24 | + if [ $ok -eq 0 ] | |
| 25 | + then | |
| 26 | + export MSG="$PEER :$state" | |
| 27 | + return 3 | |
| 28 | + else | |
| 29 | + latency=$( echo "$state"|sed 's/.*(\([0-9]*\) ms.*/\1/g' ) | |
| 30 | + [ $DEBUG -eq 1 ] && echo "Peer $PEER latency : $latency ms" | |
| 31 | + if [ $latency -gt $CRITICAL_LATENCY ] | |
| 32 | + then | |
| 33 | + st='CRITICAL LATENCY' | |
| 34 | + ec=2 | |
| 35 | + elif [ $latency -gt $WARNING_LATENCY ] | |
| 36 | + then | |
| 37 | + st='WARNING LATENCY' | |
| 38 | + ec=1 | |
| 39 | + else | |
| 40 | + st=OK | |
| 41 | + ec=0 | |
| 42 | + fi | |
| 43 | + MSG="$PEER : $st (Latency : $latency ms)" | |
| 44 | + return $ec | |
| 45 | + fi | |
| 46 | +} | |
| 47 | + | |
| 48 | +states="" | |
| 49 | +peers="" | |
| 50 | +nbok=0 | |
| 51 | +nbcrit=0 | |
| 52 | +nbwarn=0 | |
| 53 | +nbunk=0 | |
| 54 | +nbpeers=O | |
| 55 | +PEERS="" | |
| 56 | +DEBUG=0 | |
| 57 | + | |
| 58 | +for arg in $@ | |
| 59 | +do | |
| 60 | + if [ $( echo $arg|egrep -c '^-[cwCWd][0-9]*$' ) -gt 0 ] | |
| 61 | + then | |
| 62 | + a=$( echo $arg|sed 's/^-\([cwCWd]\).*$/\1/' ) | |
| 63 | + v=$( echo $arg|sed 's/^-[cwCWd]//' ) | |
| 64 | + case $a in | |
| 65 | + c) | |
| 66 | + CRITICAL_PEER_NUMBER=$v | |
| 67 | + ;; | |
| 68 | + w) | |
| 69 | + WARNING_PEER_NUMBER=$v | |
| 70 | + ;; | |
| 71 | + C) | |
| 72 | + CRITICAL_LATENCY=$v | |
| 73 | + ;; | |
| 74 | + W) | |
| 75 | + WARNING_LATENCY=$v | |
| 76 | + ;; | |
| 77 | + d) | |
| 78 | + DEBUG=1 | |
| 79 | + ;; | |
| 80 | + esac | |
| 81 | + else | |
| 82 | + PEERS="$PEERS $arg" | |
| 83 | + fi | |
| 84 | +done | |
| 85 | + | |
| 86 | +for PEER in $PEERS | |
| 87 | +do | |
| 88 | + let nbpeers=nbpeers+1 | |
| 89 | + checkPeer "$PEER" | |
| 90 | + res=$? | |
| 91 | + states="$states - $MSG" | |
| 92 | + case $res in | |
| 93 | + 0) | |
| 94 | + let nbok=nbok+1 | |
| 95 | + ;; | |
| 96 | + 1) | |
| 97 | + let nbwarn=nbwarn+1 | |
| 98 | + ;; | |
| 99 | + 2) | |
| 100 | + let nbcrit=nbcrit+1 | |
| 101 | + ;; | |
| 102 | + 3) | |
| 103 | + let nbunk=nbunk+1 | |
| 104 | + ;; | |
| 105 | + esac | |
| 106 | + peers="$peers $PEER" | |
| 107 | +done | |
| 108 | +STATE=OK | |
| 109 | +MSG="$nbok peer(s) OK of $nbpeers peers $states|'available peers':$nbok;$WARNING_PEER_NUMBER;$CRITICAL_PEER_NUMBER;0;$nbpeers 'critical peers':$nbcrit;$WARNING_PEER_NUMBER;$CRITICAL_PEER_NUMBER;0;$nbpeers 'unknown peers':$nbunk;$WARNING_PEER_NUMBER;$CRITICAL_PEER_NUMBER;0;$nbpeers 'warning peers':$nbwarn;$WARNING_PEER_NUMBER;$CRITICAL_PEER_NUMBER;0;$nbpeers" | |
| 110 | +EXITC=0 | |
| 111 | +if [ $nbok -le $CRITICAL_PEER_NUMBER ] | |
| 112 | +then | |
| 113 | + STATE=CRITICAL | |
| 114 | + EXITC=2 | |
| 115 | +elif [ $nbok -le $WARNING_PEER_NUMBER ] | |
| 116 | +then | |
| 117 | + STATE=WARNING | |
| 118 | + EXITC=1 | |
| 119 | +fi | |
| 120 | +echo "$STATE - $MSG" | |
| 121 | +exit $EXITC | |
| 0 | 122 |