Monitoring Server Dengan Bash Script Sederhana

Simple Monitoring Server Dengan Bash Script – Pada kesempatan ini saya kan mencoba share cara memonitoring suatu service pada semua server dengan menggunakan bash script sederhana. Awalnya ini muncul ketika ada seorang teman meminta bantu untuk disolusikan tentang kebutuhannya auto notification kita server atau webnya dia tidak bisa diakses. Jadi karena kebutuhannya cepat jadi saya bantu sebisa dan sesederhana mungkin yang penting kebutuhannya tercapai.

Monitoring Server Dengan Bash Script Sederhana

Script monitoring server yang sederhana ini menggunakan bash script dengan memanfaatkan crontab untuk auto check kemudian mengirimkan email ke alamat email yang telah ditentukan. Pengecekan yang di lakukan yaitu dengan melakukan ping dan wget ke server yang di pantau. Jadi alurnya kurang lebih seperti berikut :

  1. Script akan auto running sesuai dengan penjadwalin yang telah kita tentukan di crontab,
  2. Kemudian akan melakukan ping ke domain atau IP tujuanyang ingin kita pantau, jika reply maka lanjut namun jika RTO akan auto send email ke kita memberitahukan bahwasanya server tersebut tidak bisa diping,
  3. Sebagai mana kita ketahui sebuah server bisa diping belum tentu bisa diakses servicenya, nah oleh sebab itu di sini kita juga coba check servicenya dengan menggunakan wget, jadi script tersebut akan melakukan download sebuah file yang telah kita tentukan di server yang ingin kita pantau jika berhasil lanjut jika tidak berhasil berarti service web/httpnya ada issue dan akan auto kirim email ke kita memberitahukan,

Kurang lebih cara kerjanya seperti itu, lumayan sederhan, namun masih bisa dikembangkan sesuai kebutuhan, misalnya untuk mengetahui persentasi down times dan sebagainya, silahkan dikembangkan. Untuk script yang saya gunakan untuk kebutuhan ini sebagai berikut :

#!/bin/bash
SERVERIP=domainsaya.com
NOTIFYEMAIL=emailsaya@domainsaya.com

ping -c 3 $SERVERIP > /dev/null 2>&1
if [ $? -ne 0 ]
then
echo “Host $SERVERIP is Down ping RTO $(date)” | mail -s “Server $SERVERIP is down $(date)” $NOTIFYEMAIL
fi

wget –timeout=3 –tries=1 –spider –no-check-certificate http://www.domainsaya.com/filetestdownlaod.php
if [ $? -ne 0 ]
then
echo “Site domainsaya.com is Down service HTTPnya tidak respon $(date)” | mail -s “Site domainsaya.com Down $(date)” emailsaya@domainsaya.com
fi

Setelah itu save dengan nama file misalnya autochec.sh misanya filenya kita simpan di /opt, kemudian silahkan buat crontab untuk penjadwalan auto check, di sini saya buat crontabnya per 1 menit

[root@test opt]# nano /etc/crontab
Kemudian tambahkan barisnya dengan :
*/1 * * * * root /opt/httalive.sh
Kemudian save dan restart service cron dengan perintah :
[root@test opt]# /etc/init.d/crond restart
Sampai di sini sudah selesai tinggal ditunggu hasilnya saja lagi.

Selamat mencoba dan semoga berhasil.

Add a Comment