1 | #!/bin/bash |
---|
2 | #(C) 2009 DatuX HR Meertens |
---|
3 | #This script monitores system values and generates snmptraps |
---|
4 | |
---|
5 | source /etc/asterisk_guard_peers.conf |
---|
6 | |
---|
7 | function retrieveData { |
---|
8 | OUTPUT=`asterisk -r -x "sip show peers" | grep "sip peers"`; |
---|
9 | VALUE1=`echo $OUTPUT | cut -d ' ' -f 5`; |
---|
10 | VALUE2=`echo $OUTPUT | cut -d ' ' -f 10`; |
---|
11 | return `echo "$VALUE1 + $VALUE2" | bc` ; |
---|
12 | |
---|
13 | #return `asterisk -r -x "show channels" | grep "active call" | cut -d ' ' -f 1` |
---|
14 | #return `asterisk -r -x "sip show peers" | grep "active call" | cut -d ' ' -f 1` |
---|
15 | |
---|
16 | } |
---|
17 | function sendSnmpTrap { |
---|
18 | #`snmptrap -e $EngineID -v 3 -u $Username -a MD5 -A $Password -l authNoPriv $Hostname "" snmpTrap .1.3.6.1.4.1.22736.1.2.5 i $1` |
---|
19 | `snmptrap -v 2c -c public $Hostname "" snmpTrap .1.3.6.1.4.1.22736.1.2.5 i $1` |
---|
20 | } |
---|
21 | function retrieveUptime() |
---|
22 | { |
---|
23 | return `asterisk -r -x "core show uptime seconds" | grep uptime | cut -d ' ' -f 3`; |
---|
24 | } |
---|
25 | function sendDeviateSyn3State { |
---|
26 | |
---|
27 | if [ "$1" == "OK" ]; then |
---|
28 | syn3-state "Asterisk_active_peers" "OK" "Er is geen abnormale afwijking in het aantal actieve peers"; |
---|
29 | else |
---|
30 | syn3-state "Asterisk_active_peers" "ALERT" "Er is een TE grote afwijking in het aantal actieve peers - vorige meting: $2 huidige meting: $3"; |
---|
31 | fi |
---|
32 | } |
---|
33 | |
---|
34 | |
---|
35 | #initial check |
---|
36 | retrieveData |
---|
37 | PreviousActiveCalls=$? |
---|
38 | timer=0 |
---|
39 | sleep 2; |
---|
40 | |
---|
41 | while(true); |
---|
42 | do |
---|
43 | |
---|
44 | |
---|
45 | |
---|
46 | retrieveData |
---|
47 | activeCalls=$? |
---|
48 | if [ $activeCalls -ge `echo "$PreviousActiveCalls+$CallDeviateValue" | bc` ]; then |
---|
49 | deviatedStatus=1; |
---|
50 | else |
---|
51 | deviatedStatus=0; |
---|
52 | fi |
---|
53 | if [ $activeCalls -le `echo "$PreviousActiveCalls-$CallDeviateValue" | bc ` ]; then |
---|
54 | deviatedStatus=1; |
---|
55 | else |
---|
56 | deviatedStatus=0; |
---|
57 | fi |
---|
58 | retrieveUptime |
---|
59 | uptime=$? |
---|
60 | if [ $FreezeTimeAfterRestart -le $uptime ]; then |
---|
61 | if [ "$deviatedStatus" == "1" ]; then |
---|
62 | echo "ALERT"; |
---|
63 | sendDeviateSyn3State "ALERT" $PreviousActiveCalls $activeCalls; |
---|
64 | else |
---|
65 | echo "OK"; |
---|
66 | sendDeviateSyn3State "OK" $PreviousActiveCalls $activeCalls; |
---|
67 | fi |
---|
68 | fi |
---|
69 | #if [ $timer -ge $SendActiveCallsStatusInterval ]; then |
---|
70 | # #Retrieve active calls |
---|
71 | # retrieveActiveCalls |
---|
72 | # activeCalls=$? |
---|
73 | # #verstuur snmp trap. |
---|
74 | # #sendSnmpTrap $activeCalls |
---|
75 | # #reset timer |
---|
76 | # timer=0 |
---|
77 | #fi |
---|
78 | PreviousActiveCalls=$activeCalls |
---|
79 | sleep $CallDeviateCheckInterval |
---|
80 | #timer=`echo "$CallDeviateCheckInterval+$timer" |bc` |
---|
81 | done |
---|