Friday, December 4, 2009

Memonitor Server Anda Dengan Shell Script

Setiap orang tidak ingin servernya down tanpa diketahuinya. Kalau pun down, maka ingin cepat-cepat terdeteksi. Alert down dapat yang dikirim lewat email atau sms.
Karena itu memonitor ALIVE server sangatlah perlu. Dalam kesempatan ini, saya akan perkenalkan bagaimana memonitor server dengan shell script sederhana. 
Shell script ini dapat dijalankan di mana saja, asal anda mempunyai OS yang berbasis Unix, seperti Linux/FreeBSD/Unix. Saat ini hampir semua server mempunyai programming shell script.
1. #!/bin/bash
2.
3. # Masukkan IP address atau Host, pisahkan dengan spase
4. HOSTS="shoim.web.id"
5.
6. # no ping request
7. COUNT=1
8.
9. # Kirim Email
10. SUBJECT="Ping gagal"
11. EMAILID="info@shoim.web.id"
12. for myHost in $HOSTS
13. do
14. count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print }' | awk '{ print }')
15. if [ $count -eq 0 ]; then
16. # 100% failed
17. echo "Host : $myHost is down (ping failed) at $(date)" | mail -s "$SUBJECT" $EMAILID
18. fi
19. done
Nilai HOSTS adalah deretan array server yang ingin kita monitor. Dapat anda isi dengan IP Address atau nama Host. Nilai COUNT adalah jumlah paket yang akan dikirim dengan signal ping. Dalam program ini kita ambil nilainya adalah 1. Apabila paket ping yang dikirim ada respon, maka server Up alias tidak ada masalah. Apabila tidak ada respon maka dianggap server Down. Ketika server ketahuan Down, maka akan dikirim alert email ke EMAILID.
Install shell script ini di crontab, lakukan monitoring setiap 5 menit sekali atau sesuai dengan kebutuhan anda. Sudah tentu script ini dapat anda kembangkan agar lebih canggih dengan fungsi-fungsi seperti pencatatan monitor ke log file. atau dengan webinterface. Selamat mencoba.