source: npl/phone/custom_scripts/asterisk_guardian_peers/asterisk_guard_peers.sh

Last change on this file was c5c522c, checked in by Edwin Eefting <edwin@datux.nl>, 8 years ago

initial commit, transferred from cleaned syn3 svn tree

  • Property mode set to 100755
File size: 2.2 KB
Line 
1#!/bin/bash
2#(C) 2009 DatuX HR Meertens
3#This script monitores system values and generates snmptraps
4
5source /etc/asterisk_guard_peers.conf
6
7function 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}
17function 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}
21function retrieveUptime()
22{
23        return `asterisk -r -x "core show uptime seconds" | grep uptime | cut -d ' ' -f 3`;
24}
25function 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
36retrieveData
37PreviousActiveCalls=$?
38timer=0
39sleep 2;
40
41while(true);
42do
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`
81done
Note: See TracBrowser for help on using the repository browser.