How to monitor weblogic instance on linux server?


If you need to define an alert for the weblogic  instance  that running  on linux server,  please  take  a look this  bash script. You should add  your instance  name to the  configuration file. This script will create  an alert if any weblogic instance  is  down  on  the server.  I added alert commands  for HP Operation Manager. You can change them as  you wish.

Also I added  weblogic status control script. This scripts will check and  list weblogic servers, nodemanagers. You should define alias  to check status easily.

 

Step 1: Shell Script  to create  alert

Before running script:

  • Change  “Config_File” directory on the script.
  • Create  “instance.config” file under your config directory.
  • Add your  instance  name to  the config  file.

Weblogic  Monitor Scripts:

# cat instance.config

AdminServer

bi_server1
#!/bin/bash

##########################################################

# Abdurrahim YILDIRIM                                                                                                         #

##########################################################

VALUE_CHECK=`ps -awwx |grep -v "grep"| grep "weblogic.Name" |grep "sl"| awk 'BEGIN {

Config_File=/unixadmin/controlfile

print } ;

{

NUM = match($0, "weblogic.Name=") ;

START_POS = RSTART+RLENGTH ;

START_STR = substr($0, START_POS) ;

FINISH = match(START_STR, " ") ;

FINISH_POS = START_POS+RSTART+RLENGTH ;

FINISH_STR = substr($0, START_POS, FINISH_POS) ;

NUM = split(FINISH_STR,FINISH_ARRAY) ;

printf ("%s'='%s\n",$1, FINISH_ARRAY[1]) ;

}

END {

}'`

for i in $(cat $Config_File/instance.config)

do

DEG_PID=`echo "$VALUE_CHECK"|grep $i|cut -d '=' -f 1,1`

DEG_Instance=`echo "$VALUE_CHECK"|grep $i|cut -d '=' -f 2,2`

if [ -z "$DEG_PID" ] || [ -z "DEG_Instance" ]

then

if [ ! -f  $Config_File/$DEG_Instance ]

then

/opt/OV/bin/opcmsg a=BI_Control o=BI_Control severity=Critical msg_text="`hostname`  Weblogic Instance($DEG_Instance) Problem " node=`hostname`

touch $Config_File/$DEG_Instance

fi

else

if [ -f  $Config_File/$DEG_Instance ]

then

/opt/OV/bin/opcmsg a=BI_Control o=BI_Control severity=Normal msg_text="`hostname`  Weblogic Instance($DEG_Instance) Fixed !!! " node=`hostname`

rm -rf $Config_File/$DEG_Instance

fi

fi

done

 

Step 2: Service status  alias scripts

Before running script:

  • Define alias  for your user in .bashrc file.Do not forget to change “/appdata/controlfile/” path where  you will locate your weblogic status  control script.

Weblogic Status  Control Scripts:

# cat .bashrc# .bashrc# User specific aliases and functionsalias rm='rm -i'alias cp='cp -i'alias mv='mv -i'alias weblogiclist='/unixadmin/controlfile/listweblogic.sh'alias weblogiclistkill='/unixadmin/controlfile/listweblogic.sh kill'# Source global definitionsif [ -f /etc/bashrc ]; then. /etc/bashrcfi

 


 

#!/bin/bash

##########################################################

# Abdurrahim YILDIRIM                                                                                                         #

##########################################################



DOMAIN_DIRECTORY="domains"

echo "################################################################################################"

echo " ######################################## "

echo " #############WEBLOGICS################## "

echo " #####################E################## "

echo " #####################R################## "

echo " #####################V################## "

echo " #####################E################## "

echo " #####################R################## "

echo " #####################S################## "

printf "%-20s%-20s%-20s%-20s%-20s\n" "Owner" "Domain" "Server" "PID" "Ports"

printf "%-20s%-20s%-20s%-20s%-20s\n" "-----" "------" "------" "---" "-----"

ps -ef | grep "[D]weblogic.Name="|while read tmp

do

owner=`echo $tmp | awk '{ print $1 }'`

webLogicServer=`echo $tmp | grep -oP "(?<=Dweblogic.Name=)[^ ]+"`

pid=`echo $tmp | awk '{ print $2 }'`

port=`echo $tmp | netstat -tlpn 2>/dev/null | grep $pid | awk '{ print $4 }' | tr '\n' ',' | tr ' ' ',' | grep -o ":....," | sort -u | tr -d '\n' | tr -d ':' | sed 's/,$//'`

if [ -z "$port" ]; then

port="null"

fi

domain=`echo $tmp | grep -oP "(?<=BootIdentityFile=)[^ ]+"`

domain=`echo $domain | grep -oP "(?<=$DOMAIN_DIRECTORY/)[^ ]+" | cut -d/ -f1`

if [ -n "$1" ]; then

printf "%-20s%-20s%-20s%-20s%-20s%-20s\n" "$owner" "$domain" "$webLogicServer" "$pid" "$port" "kill -9 $pid"

else

printf "%-20s%-20s%-20s%-20s%-20s\n" "$owner" "$domain" "$webLogicServer" "$pid" "$port"

fi

done

echo

echo "################################################################################################"

echo " ######################################## "

echo " #############MANAGERS################### "

echo " ###############O######################## "

echo " ###############D######################## "

echo " ###############E######################## "

echo " ######################################## "

printf "%-20s%-20s%-20s%-20s%-20s\n" "Owner" "Domain" "Server" "PID" "Ports"

printf "%-20s%-20s%-20s%-20s%-20s\n" "-----" "------" "------" "---" "-----"

ps -ef | grep "[w]eblogic.NodeManager"|while read tmp

do

owner=`echo $tmp | awk '{ print $1 }'`

pid=`echo $tmp | awk '{ print $2 }'`

port=`echo $tmp | netstat -tlpn 2>/dev/null | grep $pid | awk '{ print $4 }' | tr '\n' ',' | tr ' ' ',' | grep -o ":....," | sort -u | tr -d '\n' | tr -d ':' | sed 's/,$//'`

if [ -z "$port" ]; then

port="null"

fi

mw_home=`echo $tmp | grep -oP "(?<=bea.home=)[^ ]+"`

if [ -n "$1" ]; then

printf "%-20s%-20s%-20s%-20s%-20s%-20s\n" "$owner" "$domain" "$webLogicServer" "$pid" "$port" "kill -9 $pid"

else

printf "%-20s%-20s%-20s%-20s%-20s\n" "$owner" "$domain" "$webLogicServer" "$pid" "$port"

fi

done
# weblogiclist

################################################################################################

########################################

#############WEBLOGICS##################

#####################E##################

#####################R##################

#####################V##################

#####################E##################

#####################R##################

#####################S##################

Owner Domain Server PID Ports

----- ------ ------ --- -----

oracle bi AdminServer 23768 9501

oracle bi bi_server1 24210 9502,9503,9505,9516



################################################################################################

########################################

#############MANAGERS###################

###############O########################

###############D########################

###############E########################

########################################

Owner Domain Server PID Ports

----- ------ ------ --- -----

oracle 23504 9506

[root@Casesup ~]# weblogiclistkill

################################################################################################

########################################

#############WEBLOGICS##################

#####################E##################

#####################R##################

#####################V##################

#####################E##################

#####################R##################

#####################S##################

Owner Domain Server PID Ports

----- ------ ------ --- -----

oracle bi AdminServer 23768 9501 kill -9 23768

oracle bi bi_server1 24210 9502,9503,9505,9516 kill -9 24210



################################################################################################

########################################

#############MANAGERS###################

###############O########################

###############D########################

###############E########################

########################################

Owner Domain Server PID Ports

----- ------ ------ --- -----

oracle 23504 9506 kill -9 23504


 

Thanks  Peter for Weblogic status  control script. I changed script because  of  column function doesn’t work correctly.

Tagged In:

I'm a IT Infrastructure and Operations Architect with extensive experience and administration skills and works for Turk Telekom. I provide hardware and software support for the IT Infrastructure and Operations tasks.

205 Total Posts
Follow Me