Shell Script untuk memonitor Load Average server Linux

Bagi Anda pemilik server baik itu VPS maupun Dedicated Server dengan OS Linux, ingin tidak lepas dari monitoring keadaan Load Server yang terjadi setiap detik, menit dan jam. Gunakanlah script shell berikut ini agar Server dapat memberitahukan keadaan dan kondisinya melalui email.

Berikut panduan pemasangan shell script di server:

  • Buatlah sebuah nama file baru, katakanlah /root/monit_loadaverage.sh dengan cara masuk ke directory /root dan buat nama file baru dengan command nano monit_loadaverage.sh atau bisa langsung nano /root/monit_loadaverage.sh
  • Jika server belum terinstal aplikasi nano, lakukan instalasi dengan cara yum install nano
  • Saat layar kosong muncul, isikan data file sebagai berikut. COPY dengan tombol CTRL+INSERT lalu PASTE menggunakan tombol keyboard SHIFT+INSERT

    ############### START OF THE SCRIPT ###############

#!/bin/bash

# Define Variables
CUR_TIME=`date +”%A %b %e %r”`
HOSTNAME=`hostname`

# Retrieve the load average of the past 1 minute
Load_AVG=`uptime | cut -d’l’ -f2 | awk ‘{print $3}’ | cut -d. -f1`
LOAD_CUR=`uptime | cut -d’l’ -f2 | awk ‘{print $3 ” ” $4 ” ” $5}’ | sed ‘s/,//’`

# Define Threshold. This value will be compared with the current load average.
# Set the value as per your wish.
LIMIT=5

# Compare the current load average with the Threshold and
# email the server administrator if the current load average is greater.
if [ $Load_AVG -gt $LIMIT ]
then

#Save the current running processes in a file
/bin/ps -auxf >> /root/ps_output

echo “=================” >> /tmp/monitload.txt
echo “= SERVER MONITORING =” >> /tmp/monitload.txt
echo “=================” >> /tmp/monitload.txt
echo “Server: $HOSTNAME” >> /tmp/monitload.txt
echo “Time: $CUR_TIME” >> /tmp/monitload.txt
echo “Load Average: $LOAD_CUR” >> /tmp/monitload.txt
echo “=================” >> /tmp/monitload.txt
echo “Cek Segera Server Anda!”  >> /tmp/monitload.txt
echo “”  >> /tmp/monitload.txt
echo “by MIXMAXSPACE Hosting”  >> /tmp/monitload.txt
echo “http://mixmaxspace.com”  >> /tmp/monitload.txt
# Send an email to the administrator of the server
/usr/bin/mutt -s “ALERT!!! HIGH LOAD 1 minute on ‘$HOSTNAME'” -a /root/ps_output username@email.com < /tmp/monitload.txt

fi

# Remove the temporary log files
/bin/rm -f /tmp/monitload.txt
/bin/rm -f /root/ps_output

############### END OF THE SCRIPT ###############

  • kemudian save file tersebut
  • lakukan proses cronjob di server untuk mengeksekusi script tersebut dengan cara ketik: crontab -e
  • tambahkan perintah berikut pada baris terbawah: * * * * * /bin/sh /root/monit_loadaverage.sh
  • save dan kemudian restart crond service dengan command: service crond restart
  • untuk dapat memproses kirim email dari shell scripts ini, maka diharuskan “mutt” terinstal, jika belum lakukan install dengan command yum install mutt

Note: Keterangan LIMIT=5 diatas adalah email akan dikirim server jika LOAD SERVER tembus pada nilai angka 5. Anda dapat merubahnya, misalkan nilai 2 atau juga diatas 5.

Reference Click Me

Leave a Reply

Your email address will not be published. Required fields are marked *