Difference between pages "Installation-Tasks" and "Linux Filesystem Alerting Script"

From NazimWIKI
(Difference between pages)
Jump to navigation Jump to search
(Created page with "Switching On/Off Options (11g-R2)")
 
(Created page with "This convoluted beauty does a df -h on both a Production and Standby Filesystem (oracle datafile and backup directories) and warns when the threshold of 85% is exceeded and al...")
 
Line 1: Line 1:
[[Oracle_Switching_OnOff_Options|Switching On/Off Options (11g-R2)]]
+
This convoluted beauty does a df -h on both a Production and Standby Filesystem (oracle datafile and backup directories) and warns when the threshold of 85% is exceeded and alerts when 95% threshold is exceeded.
 +
 
 +
############################################################################
 +
#!/bin/ksh
 +
#
 +
# Description : This script does a df -h on oracle and backup directories
 +
#              on both prod and dr servers.  Sends a daily report as
 +
#              well as alerting when thresholds are exceeded.
 +
#
 +
#              13/12/2017
 +
#              nm
 +
#
 +
#
 +
############################################################################
 +
 
 +
MAIL_LIST1="warningalerts@email.com"
 +
MAIL_LIST2="criticalalerts@email.com"
 +
 
 +
 
 +
LOG=/oracle/logs/filesystem_alert.log
 +
 
 +
rm $LOG
 +
 
 +
sd=`date +"%H"`
 +
 
 +
 
 +
# PRINT <PROD_SID> FILESYSTEM USAGE
 +
diskstat_backup_pr=`df -h | grep /backup | awk '{print "<PROD_SID> " $6 " " $5 " Used"}'`
 +
diskstat_oracle_pr=`df -h | grep /oracle$ | awk '{print "<PROD_SID> "  $6 " " $5 " Used"}'`
 +
diskstat_oradata1_pr=`df -h | grep /oradata1 | awk '{print "<PROD_SID> " $6 " " $5 " Used"}'`
 +
diskstat_oradata2_pr=`df -h | grep /oradata2 | awk '{print "<PROD_SID> " $6 " " $5 " Used"}'`
 +
diskstat_oradata3_pr=`df -h | grep /oradata3 | awk '{print "<PROD_SID> " $6 " " $5 " Used"}'`
 +
 
 +
# PRINT <DR_SID> FILESYSTEM USAGE
 +
DR_diskstat_backup_pr=`ssh mobbodbp1 df -h | grep /backup | awk '{print "<DR_SID> " $6 " " $5 " Used"}'`
 +
DR_diskstat_oracle_pr=`ssh mobbodbp1 df -h | grep /oracle$ | awk '{print "<DR_SID> " $6 " " $5 " Used"}'`
 +
DR_diskstat_oradata1_pr=`ssh mobbodbp1 df -h | grep /oradata1 | awk '{print "<DR_SID> " $6 " " $5 " Used"}'`
 +
DR_diskstat_oradata2_pr=`ssh mobbodbp1 df -h | grep /oradata2 | awk '{print "<DR_SID> " $6 " " $5 " Used"}'`
 +
DR_diskstat_oradata3_pr=`ssh mobbodbp1 df -h | grep /oradata3 | awk '{print "<DR_SID> " $6 " " $5 " Used"}'`
 +
 
 +
# COMPUTE <PROD_SID> FILESYSTEM USAGE
 +
diskstat_backup=`df -h | grep /backup | awk '{sub(/%/,"",$5); print $5}'`
 +
diskstat_oracle=`df -h | grep /oracle$ | awk '{sub(/%/,"",$5); print $5}'`
 +
diskstat_oradata1=`df -h | grep /oradata1 | awk '{sub(/%/,"",$5); print $5}'`
 +
diskstat_oradata2=`df -h | grep /oradata2 | awk '{sub(/%/,"",$5); print $5}'`
 +
diskstat_oradata3=`df -h | grep /oradata3 | awk '{sub(/%/,"",$5); print $5}'`
 +
 
 +
# COMPUTE <DR_SID> FILESYSTEM USAGE
 +
DR_diskstat_backup=`ssh mobbodbp1 df -h | grep /backup | awk '{sub(/%/,"",$5); print $5}'`
 +
DR_diskstat_oracle=`ssh mobbodbp1 df -h | grep /oracle$ | awk '{sub(/%/,"",$5); print $5}'`
 +
DR_diskstat_oradata1=`ssh mobbodbp1 df -h | grep /oradata1 | awk '{sub(/%/,"",$5); print $5}'`
 +
DR_diskstat_oradata2=`ssh mobbodbp1 df -h | grep /oradata2 | awk '{sub(/%/,"",$5); print $5}'`
 +
DR_diskstat_oradata3=`ssh mobbodbp1 df -h | grep /oradata3 | awk '{sub(/%/,"",$5); print $5}'`
 +
 
 +
 
 +
# ALERTS ON <PROD_SID>
 +
 
 +
# Alert on /backup
 +
 
 +
if [ $diskstat_backup -gt 85 ]; then
 +
  echo "WARNING: $diskstat_backup_pr" >> $LOG
 +
elif [ $diskstat_backup -gt 95 ]; then
 +
  echo "CRITICAL: $diskstat_backup_pr" >> $LOG
 +
else
 +
  echo "OKAY: $diskstat_backup_pr" >> $LOG
 +
fi
 +
 
 +
# Alert on /oracle
 +
 
 +
if [ $diskstat_oracle -gt 85 ]; then
 +
    echo "WARNING: $diskstat_oracle_pr" >> $LOG
 +
elif [ $diskstat_oracle -gt 95 ]; then
 +
    echo "CRITICAL: $diskstat_oracle_pr" >> $LOG
 +
else
 +
    echo "OKAY: $diskstat_oracle_pr" >> $LOG
 +
fi
 +
 
 +
# Alert on /oradata1
 +
 
 +
if [ $diskstat_oradata1 -gt 85 ]; then
 +
    echo "WARNING: $diskstat_oradata1_pr" >> $LOG
 +
  elif [ $diskstat_oradata1 -gt 95 ]; then
 +
    echo "CRITICAL: $diskstat_oradata1_pr" >> $LOG
 +
  else
 +
    echo "OKAY: $diskstat_oradata1_pr" >> $LOG
 +
fi
 +
 
 +
 
 +
# Alert on /oradata2
 +
 
 +
if [ $diskstat_oradata2 -gt 85 ]; then
 +
    echo "WARNING: $diskstat_oradata2_pr" >> $LOG
 +
elif [ $diskstat_oradata2 -gt 95 ]; then
 +
    echo "CRITICAL: $diskstat_oradata2_pr" >> $LOG
 +
else
 +
    echo "OKAY: $diskstat_oradata2_pr" >> $LOG
 +
fi
 +
 
 +
# Alert on /oradata3
 +
 
 +
if [ $diskstat_oradata3 -gt 85 ]; then
 +
    echo "WARNING: $diskstat_oradata3_pr" >> $LOG
 +
elif [ $diskstat_oradata3 -gt 95 ]; then
 +
    echo "CRITICAL: $diskstat_oradata3_pr" >> $LOG
 +
else
 +
    echo "OKAY: $diskstat_oradata3_pr" >> $LOG
 +
fi
 +
 
 +
 
 +
 
 +
 
 +
#ALERTS ON <DR_SID>
 +
 
 +
# Alert on /backup
 +
 
 +
if [ $DR_diskstat_backup -gt 85 ]; then
 +
  echo "WARNING: $DR_diskstat_backup_pr" >> $LOG
 +
elif [ $DR_diskstat_backup -gt 95 ]; then
 +
  echo "CRITICAL: $diskstat_backup_pr" >> $LOG
 +
else
 +
  echo "OKAY: $DR_diskstat_backup_pr" >> $LOG
 +
fi
 +
 
 +
# Alert on /oracle
 +
 
 +
if [ $DR_diskstat_oracle -gt 85 ]; then
 +
    echo "WARNING: $DR_diskstat_oracle_pr" >> $LOG
 +
elif [ $DR_diskstat_oracle -gt 95 ]; then
 +
    echo "CRITICAL: $DR_diskstat_oracle_pr" >> $LOG
 +
else
 +
    echo "OKAY: $DR_diskstat_oracle_pr" >> $LOG
 +
fi
 +
 
 +
# Alert on /oradata1
 +
 
 +
if [ $DR_diskstat_oradata1 -gt 85 ]; then
 +
    echo "WARNING: $DR_diskstat_oradata1_pr" >> $LOG
 +
  elif [ $DR_diskstat_oradata1 -gt 95 ]; then
 +
    echo "CRITICAL: $DR_diskstat_oradata1_pr" >> $LOG
 +
  else
 +
    echo "OKAY: $DR_diskstat_oradata1_pr" >> $LOG
 +
fi
 +
 
 +
 
 +
# Alert on /oradata2
 +
 
 +
if [ $DR_diskstat_oradata2 -gt 85 ]; then
 +
    echo "WARNING: $DR_diskstat_oradata2_pr" >> $LOG
 +
elif [ $DR_diskstat_oradata2 -gt 95 ]; then
 +
    echo "CRITICAL: $DR_diskstat_oradata2_pr" >> $LOG
 +
else
 +
    echo "OKAY: $DR_diskstat_oradata2_pr" >> $LOG
 +
fi
 +
 
 +
# Alert on /oradata3
 +
 
 +
if [ $DR_diskstat_oradata3 -gt 85 ]; then
 +
    echo "WARNING: $DR_diskstat_oradata3_pr" >> $LOG
 +
elif [ $DR_diskstat_oradata3 -gt 95 ]; then
 +
    echo "CRITICAL: $DR_diskstat_oradata3_pr" >> $LOG
 +
else
 +
    echo "OKAY: $DR_diskstat_oradata3_pr" >> $LOG
 +
fi
 +
 
 +
 
 +
 
 +
 
 +
 
 +
#Grep the Logfile for Alerts
 +
 
 +
if grep 'CRITICAL' $LOG;  then
 +
  mail -a $LOG -s "CRITICAL: <PROD_SID>/<DR_SID> FILESYSTEM STATUS" $MAIL_LIST2 < $LOG
 +
fi
 +
 
 +
 
 +
if [ $sd -eq 8 ];  then
 +
 
 +
  mail -a $LOG -s "DAILY CHECK: <PROD_SID>/<DR_SID> FILESYSTEM STATUS" $MAIL_LIST1 < $LOG
 +
 
 +
fi

Revision as of 22:02, 8 November 2019

This convoluted beauty does a df -h on both a Production and Standby Filesystem (oracle datafile and backup directories) and warns when the threshold of 85% is exceeded and alerts when 95% threshold is exceeded.

  1. !/bin/ksh
  2. Description : This script does a df -h on oracle and backup directories
  3. on both prod and dr servers. Sends a daily report as
  4. well as alerting when thresholds are exceeded.
  5. 13/12/2017
  6. nm

MAIL_LIST1="warningalerts@email.com" MAIL_LIST2="criticalalerts@email.com"


LOG=/oracle/logs/filesystem_alert.log

rm $LOG

sd=`date +"%H"`


  1. PRINT <PROD_SID> FILESYSTEM USAGE

diskstat_backup_pr=`df -h | grep /backup | awk '{print "<PROD_SID> " $6 " " $5 " Used"}'` diskstat_oracle_pr=`df -h | grep /oracle$ | awk '{print "<PROD_SID> " $6 " " $5 " Used"}'` diskstat_oradata1_pr=`df -h | grep /oradata1 | awk '{print "<PROD_SID> " $6 " " $5 " Used"}'` diskstat_oradata2_pr=`df -h | grep /oradata2 | awk '{print "<PROD_SID> " $6 " " $5 " Used"}'` diskstat_oradata3_pr=`df -h | grep /oradata3 | awk '{print "<PROD_SID> " $6 " " $5 " Used"}'`

  1. PRINT <DR_SID> FILESYSTEM USAGE

DR_diskstat_backup_pr=`ssh mobbodbp1 df -h | grep /backup | awk '{print "<DR_SID> " $6 " " $5 " Used"}'` DR_diskstat_oracle_pr=`ssh mobbodbp1 df -h | grep /oracle$ | awk '{print "<DR_SID> " $6 " " $5 " Used"}'` DR_diskstat_oradata1_pr=`ssh mobbodbp1 df -h | grep /oradata1 | awk '{print "<DR_SID> " $6 " " $5 " Used"}'` DR_diskstat_oradata2_pr=`ssh mobbodbp1 df -h | grep /oradata2 | awk '{print "<DR_SID> " $6 " " $5 " Used"}'` DR_diskstat_oradata3_pr=`ssh mobbodbp1 df -h | grep /oradata3 | awk '{print "<DR_SID> " $6 " " $5 " Used"}'`

  1. COMPUTE <PROD_SID> FILESYSTEM USAGE

diskstat_backup=`df -h | grep /backup | awk '{sub(/%/,"",$5); print $5}'` diskstat_oracle=`df -h | grep /oracle$ | awk '{sub(/%/,"",$5); print $5}'` diskstat_oradata1=`df -h | grep /oradata1 | awk '{sub(/%/,"",$5); print $5}'` diskstat_oradata2=`df -h | grep /oradata2 | awk '{sub(/%/,"",$5); print $5}'` diskstat_oradata3=`df -h | grep /oradata3 | awk '{sub(/%/,"",$5); print $5}'`

  1. COMPUTE <DR_SID> FILESYSTEM USAGE

DR_diskstat_backup=`ssh mobbodbp1 df -h | grep /backup | awk '{sub(/%/,"",$5); print $5}'` DR_diskstat_oracle=`ssh mobbodbp1 df -h | grep /oracle$ | awk '{sub(/%/,"",$5); print $5}'` DR_diskstat_oradata1=`ssh mobbodbp1 df -h | grep /oradata1 | awk '{sub(/%/,"",$5); print $5}'` DR_diskstat_oradata2=`ssh mobbodbp1 df -h | grep /oradata2 | awk '{sub(/%/,"",$5); print $5}'` DR_diskstat_oradata3=`ssh mobbodbp1 df -h | grep /oradata3 | awk '{sub(/%/,"",$5); print $5}'`


  1. ALERTS ON <PROD_SID>
  1. Alert on /backup

if [ $diskstat_backup -gt 85 ]; then

  echo "WARNING: $diskstat_backup_pr" >> $LOG

elif [ $diskstat_backup -gt 95 ]; then

  echo "CRITICAL: $diskstat_backup_pr" >> $LOG

else

 echo "OKAY: $diskstat_backup_pr" >> $LOG

fi

# Alert on /oracle

if [ $diskstat_oracle -gt 85 ]; then

   echo "WARNING: $diskstat_oracle_pr" >> $LOG
elif [ $diskstat_oracle -gt 95 ]; then
   echo "CRITICAL: $diskstat_oracle_pr" >> $LOG

else

   echo "OKAY: $diskstat_oracle_pr" >> $LOG

fi

# Alert on /oradata1
if [ $diskstat_oradata1 -gt 85 ]; then
    echo "WARNING: $diskstat_oradata1_pr" >> $LOG
 elif [ $diskstat_oradata1 -gt 95 ]; then
    echo "CRITICAL: $diskstat_oradata1_pr" >> $LOG
 else
    echo "OKAY: $diskstat_oradata1_pr" >> $LOG

fi


  1. Alert on /oradata2
if [ $diskstat_oradata2 -gt 85 ]; then
   echo "WARNING: $diskstat_oradata2_pr" >> $LOG
elif [ $diskstat_oradata2 -gt 95 ]; then
   echo "CRITICAL: $diskstat_oradata2_pr" >> $LOG
else
   echo "OKAY: $diskstat_oradata2_pr" >> $LOG

fi

  1. Alert on /oradata3
if [ $diskstat_oradata3 -gt 85 ]; then
   echo "WARNING: $diskstat_oradata3_pr" >> $LOG
elif [ $diskstat_oradata3 -gt 95 ]; then
   echo "CRITICAL: $diskstat_oradata3_pr" >> $LOG
else
   echo "OKAY: $diskstat_oradata3_pr" >> $LOG

fi



  1. ALERTS ON <DR_SID>
  1. Alert on /backup

if [ $DR_diskstat_backup -gt 85 ]; then

  echo "WARNING: $DR_diskstat_backup_pr" >> $LOG

elif [ $DR_diskstat_backup -gt 95 ]; then

  echo "CRITICAL: $diskstat_backup_pr" >> $LOG

else

 echo "OKAY: $DR_diskstat_backup_pr" >> $LOG

fi

# Alert on /oracle

if [ $DR_diskstat_oracle -gt 85 ]; then

   echo "WARNING: $DR_diskstat_oracle_pr" >> $LOG
elif [ $DR_diskstat_oracle -gt 95 ]; then
   echo "CRITICAL: $DR_diskstat_oracle_pr" >> $LOG

else

   echo "OKAY: $DR_diskstat_oracle_pr" >> $LOG

fi

# Alert on /oradata1
if [ $DR_diskstat_oradata1 -gt 85 ]; then
    echo "WARNING: $DR_diskstat_oradata1_pr" >> $LOG
 elif [ $DR_diskstat_oradata1 -gt 95 ]; then
    echo "CRITICAL: $DR_diskstat_oradata1_pr" >> $LOG
 else
    echo "OKAY: $DR_diskstat_oradata1_pr" >> $LOG

fi


  1. Alert on /oradata2
if [ $DR_diskstat_oradata2 -gt 85 ]; then
   echo "WARNING: $DR_diskstat_oradata2_pr" >> $LOG
elif [ $DR_diskstat_oradata2 -gt 95 ]; then
   echo "CRITICAL: $DR_diskstat_oradata2_pr" >> $LOG
else
   echo "OKAY: $DR_diskstat_oradata2_pr" >> $LOG

fi

  1. Alert on /oradata3
if [ $DR_diskstat_oradata3 -gt 85 ]; then
   echo "WARNING: $DR_diskstat_oradata3_pr" >> $LOG
elif [ $DR_diskstat_oradata3 -gt 95 ]; then
   echo "CRITICAL: $DR_diskstat_oradata3_pr" >> $LOG
else
   echo "OKAY: $DR_diskstat_oradata3_pr" >> $LOG

fi



  1. Grep the Logfile for Alerts

if grep 'CRITICAL' $LOG; then

 mail -a $LOG -s "CRITICAL: <PROD_SID>/<DR_SID> FILESYSTEM STATUS" $MAIL_LIST2 < $LOG

fi


if [ $sd -eq 8 ]; then

 mail -a $LOG -s "DAILY CHECK: <PROD_SID>/<DR_SID> FILESYSTEM STATUS" $MAIL_LIST1 < $LOG

fi