-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathcheck_tom_mem
executable file
·119 lines (101 loc) · 2.38 KB
/
check_tom_mem
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/bin/sh
# Original script at https://code.google.com/p/check-tomcat-sessions/source/browse/check_tomcatSessions
# Modified by Felipe Ferreira http://felipeferreira.net 12/2014
# Set some defaults
R=`date +%s | sha256sum | base64 | head -c 4`
TMP="/tmp/tom_${R}.tmp"
VERSION="2.0"
USERNAME=Administrator
PASSWORD=password
SERVER=localhost
PORT=8080
WARNING_LEVEL=100
CRITICAL_LEVEL=400
TOMCAT_VERSION="6"
usage ()
{
echo "Usage: `basename $0` [ -H hostname or IP address ] [ -P port ] [ -u username ] [ -p password ] [ -w warning ] [ -c critical ] [ -V tomcat_version (6 for tomcat pre-7 or 7) ]" >&2
echo ""
exit 0
}
version ()
{
echo "`basename $0` $THE_VERSION"
}
# MAIN
while getopts ":u:p:H:P:w:c:V:hv" opt
do
case "$opt" in
u)
USERNAME="$OPTARG"
;;
p)
PASSWORD="$OPTARG"
;;
H)
SERVER="$OPTARG"
;;
P)
PORT="$OPTARG"
;;
w)
WARNING_LEVEL="$OPTARG"
;;
c)
CRITICAL_LEVEL="$OPTARG"
;;
h)
usage
exit 1
;;
V)
TOMCAT_VERSION="$OPTARG"
;;
v)
version
exit 1
;;
esac
done
case $TOMCAT_VERSION in
6):
NUMSESS_PATH="manager/list"
;;
7)
NUMSESS_PATH="manager/text/list"
;;
*)
echo "Available versions are: "
echo " 6 (default: all tomcat pre-7)"
echo " 7 tomcat 7"
exit 1
;;
esac
########## MAIN #############################################
if [ $# -eq 0 ] ; then
usage
exit 2
fi
URL="http://${SERVER}:${PORT}/manager/status"
`curl -s --user ${USERNAME}:${PASSWORD} $URL > $TMP`
TM=`cat $TMP |awk -F"<p>" '{ print $3 }' |awk '{ print $7 }' |cut -d. -f1 |sed '/^$/d;s/[[:blank:]]//g'`
FM=`cat $TMP |awk -F"<p>" '{ print $3 }' |awk '{ print $3 }' |cut -d. -f1 |sed '/^$/d;s/[[:blank:]]//g'`
UM=`expr $TM - $FM`
#validate
T=`cat $TMP |awk -F"<p>" '{ print $3 }' |grep -c "memory"`
rm -f $TMP
if [ -z "$FM" ] || [ "$T" -eq "0" ]; then
echo "UNKOWN - Memory numbers not found, verify tomcat $SERVER $PORT or script "
exit 3
fi
MSG="Tomcat $SERVER $PORT, Total Memory = $TM, Free Memory = $FM, Used Memory = $UM|Used_Memory=$UM"
if [ "$UM" -gt "$CRITICAL_LEVEL" ]; then
echo "CRITICAL - $MSG"
exit 2
elif [ "$UM" -gt "$WARNING_LEVEL" ]; then
echo "WARNING - $MSG"
exit 1
else
echo "OK - $MSG"
exit 0
fi