Script Monitoring Jaringan dengan Sistem Notifikasi SMS
Kalau di lihat dari judulnya kok agak sedikit nggak jelas yah, intinya disini saya akan mencoba sharing script sederhana buatan saya sendiri, script ini saya gunakan untuk memantau koneksi internet, dan akan mengirimkan sms notifikasi jika terjadi kegagalan koneksi. Cara kerjanya sebenarnya simple saja, script ini akan memantau koneksi ke gmail.com dengan menggunakan wget setiap 10 menit, dan script di jalankan secara otomatis dengan menggunakan aplikasi crontab. Apabila koneksi berhasil maka sistem akan menampilkan output di terminal ssh saya seperti berikut
Tue 27 Aug 2013 20:20 01, Koneksi lancar gan..!!
Tue 27 Aug 2013 20:30 02, Koneksi lancar gan..!!
Tue 27 Aug 2013 20:40 01, Koneksi lancar gan..!!
Dan apabila koneksi gagal script akan mengirimkan notifikasi ke admin melalui SMS dengan cara mengirimkan output dari script ke SMS server melalui database MySQL pada tabel Outbox dan script akan memberikan nilai “1” pada file /usr/local/bin/file, apabila selama periode pengecekan (10menit) koneksi belum juga berhasil maka sistem akan mengirimkan lagi SMS nya ke admin dan menambahkan nilai “1” lagi ke file /usr/local/bin/file, dan apabila sekali lagi pengecekan koneksi gagal, maka sistem akan mengirimkan SMS sekali lagi ke administrator kemudian sekali lagi akan menambahkan nilai “1” ke file /usr/local/bin/file, apabila isi file /usr/local/bin/file sudah berisi 3 (berarti sudah 3 kali di cek koneksinya dan gagal) maka sistem tidak akan mengirimkan SMS lagi ke administrator karena asumsinya memang koneksi sedang ada masalah dari provider atau penyebab lain yang sifatnya lumayan “fatal” dan butuh waktu lama untuk mengatasinya, ini digunakan agar sistem tidak membanjiri handphone si admin dengan SMS notifikasi yang berulang, di penjadwalan crontab yang lain ada script lagi yang bertugas mengembalikan nilai “0” ke file /usr/local/bin/file (di lampirkan di bagian akhir artikel ini) dalam periode tertentu, biar sistem bisa ngirim sms lagi karena nilai nya sudah di kembalikan ke nilai “0” lagi (lihat script di bawah), dan pengaturan waktu menjalankannya bisa kita sesuaikan.
Dalam konfigurasi saya ada sedikit penyesuaian di penjadwalan crontab nya, sehingga SMS notifikasi tengah malam tidak di kirimkan, kalau mau tau caranya PM aja ya, he.. (takut nanti jadi kepanjangan artikelnya), atau silahkan oba googling atau utak-atik sendiri 😀
Berikut script pertama yang bertugas untuk mengecek koneksi internet, mengirimkan notifikasi apabila terjadi ke gagalan koneksi dan menambahkan nilai “1” pada file /usr/local/bin/file
#!/bin/bash
#
# script cek koneksi by
# Muhammad Rifqi
# http://masrifqi.staff.ugm.ac.id
# masrifqi at mail.ugm.ac.id
#
##variabel
FILE="/usr/local/bin/file"
TIMEOUT=15
TRIES=10
TIME=`date +"%a %d %h %Y %R %S"`
URL="http://gmail.com"
MESSAGE="Koneksi ke gmail timeout setelah $TIMEOUT detik."
## db var
USER=gammu
PW=password_database_user_sms_server
HOST=10.x.x.x
TABLE=outbox
## recipients
RIFQI=089xxxxxxxxx
#jalankan fungsi ceking
for isi in $(cat $FILE); do
if [ "$isi" -lt 4 ]
then
CHECK=$(wget --timeout=$TIMEOUT --tries=$TRIES -qO - $URL )
if [[ ${#CHECK} > 0 ]]; then
echo -e "\033[32m $TIME, Koneksi lancar gan..!!"
echo -e -n "\033[0m "
#### delete file index nya ###
rm -rf index.html
else
echo -e "\033[31m $TIME, Koneksi Down..!!"
echo -e -n "\033[0m "
#Kirimkan isi "$MSG" ke database sms gammu
echo "INSERT INTO $TABLE (DestinationNumber,TextDecoded) VALUES ('$RIFQI','$TIME, $MESSAGE');" | mysql -h $HOST --user=$USER --password=$PW sms
(( isi++))
echo $isi > /usr/local/bin/file
fi
fi
done
Dan berikut adalah file yang akan me reset nilai pada file /usr/local/bin/file menjadi 0 kembali (jalankan script ini dan sesuaikan pengaturan waktunya sesuai kebutuhan)
#!/bin/bash
echo "1" > /usr/local/bin/file
Ini baru yang namanya keren. Ini canggih, Kang.
Terimakasih mas bro, cuman sekedar sharing saja
mas ini lebih ke jaringan atau pemograman ya ? kaitannya untuk judul 😀
lebih ke jaringanya gan
tapi harus buat programnya dulu kan ? ada tutorial lbh lengkap kah ? hehehe
mas, boleh minta nomor handphone/nomor whatsapp. thx
ga perlu program2an gan, tinggal pasang gammu+modem sms trus buat script di atas, beres..
@arfan : ym aja ya gan, udah ada tuh
mas, kalau untuk sms notifikasi IDS bagaimana script nya?
-Terima Kasih-
Kalau sms untuk IDS saya baru nyoba notifikasi via email dan belum sempet nyoba via sms, coba gunakan snortsas, sepertinya bisa.
kebetulan tgs akhir saya IDS. tinggal memberi notifikasi SMS & Email. tp saya stuck disitu dan kesulitan. jika mas mau membantu saya dan bisa bertemu? ntar ada deh saya beri upah jasa … plissss
Mas klo buat monitoring jaringan bisa pake wireshark?
Monitoring nya itu enakan pake kirim sms apa email ?
kalo wireshark lebih ke capture paket
bagaimana caranya agar scrip diatas dijalankan untuk selamanya, maksudnya adalah setiap waktu tidak perlu ada schedule lagi.
Thanks.
di schedule juga otomatis jalan selamanya mas