Simple script to monitor Xen node utilization with email alert

Here is a simple script that utilizes xentop to monitor your Xen server. You can schedule this via cron to run every X minutes to track the load average and if gets too high, it will email you (be sure you change your-emailid to your actual email address)

#!/bin/bash

loadavg=`uptime | awk '{print $10}'`

process=`nproc`

# bash doesn't understand floating point

# so convert the number to an interger

thisloadavg=`echo $loadavg|awk -F \. '{print $1}'`

if [ "$thisloadavg" -ge "$process" ]; then

echo "Busy - Load Average $loadavg ($thisloadavg) "
host=`hostname`
top=`top -bn 1 | head -20`
vmstat=`xentop -b -i 3 | sort -r -nk4 | head -15 | awk '!_[$1]++'`
stat=`netstat -ntuplaee`
echo -e "Top out:\n ${top}\n\nNetstat out:\n${stat}\n\nVMStat Out:\n${vmstat}" | mail -s "Load Alert from ${host}" your-emailid
else

echo "Okay - Load Average $loadavg ($thisloadavg) "
fi
See also  How to Use Tar to Archive and Extract Files in Linux: A Step-by-Step Guide

Leave a Comment