#!/bin/bash
#-------------------------------------------------------------------------------
# Functions: zabbix active monitor
version_num=20181110
#-------------------------------------------------------------------------------
# ChangeLog:
# 2018-11-10 jiangyin initial create
#-------------------------------------------------------------------------------
# Set -x # for debug
################################################################################
# Set Variable
################################################################################
TOMCAT_PORT=$1
TOMCAT_NAME=tomcat-$TOMCAT_PORT
#MONITOR_ITEM=$2
TOMCAT_HOME="/data/tomcats"
JSTACK=$(which jstack)
TOMCAT_PID=`/usr/bin/ps -ef | grep "${TOMCAT_PORT}" | grep "[o]rg.apache.catalina.startup.Bootstrap start" | grep -v grep | awk '{print $2}'`
YEAR=`date +%Y`
DATE=`date +%Y-%m-%d`
TIME=`date +%H:%M`
TIME2=`date +%H:%M -d'-10min'`
###Main script start ###########################################################
#if [ ! -f $JSTACK ]; then
# echo "no exists $JSTACK"
# exit 0
#fi
if [ ! -h $JSTACK ]; then
ln -s /usr/java/jdk1.7.0_80/bin/jstack /usr/local/sbin/jstack
fi
tomcat_connect() {
netstat -na | grep $TOMCAT_PORT | grep ESTABLISHED | wc -l
}
tomcat_thread() {
# ps -Lf $TOMCAT_PID |wc -l
#/usr/bin/sudo $JSTACK -l $TOMCAT_PID | grep "java.lang.Thread.State" | wc -l
/usr/bin/sudo $JSTACK -l $TOMCAT_PID | grep http | grep -v grep | wc -l
}
tomcat_version() {
$TOMCAT_HOME/$TOMCAT_NAME/bin/version.sh | grep "Server version" | awk {'print $4'}|awk -F'/' '{print $2}'|sed 's/\.//g'
}
tomcat_longtime() {
LOG=$TOMCAT_HOME/$TOMCAT_NAME/logs
num=`sed -n "/$YEAR:$TIME2:/,/$YEAR:$TIME:/p" $LOG/localhost_access_log.$DATE.txt | awk {'if($NF>=10)'print} | wc -l`
echo "$num"
}
#MAIN FUNCTION
case "$2" in
connect)
tomcat_connect
;;
thread)
tomcat_thread
;;
version)
tomcat_version
;;
longtime)
tomcat_longtime
;;
*)
echo "$ERROR_WRONG_PROTOCOL" && exit 1
;;
esac
在userparameter_mysql.conf里添加以一行
UserParameter=tomcat.check[*], /etc/zabbix/scripts/tomcat-active.sh $1 $2
然后在zabbix上新建一个模版,添加监控