NAMORZ - Sistem monitoring merupakan sistem yang digunakan untuk memantau aktifitas, misal dari suatu perangkat, IP Address atau layanan DDNS dan lain sebagainya. Sistem monitoring sangat diperlukan untuk bisa membantu kita mengetahui apabila ada suatu perangkat atau layanan kita yang down, sehingga kita bisa segera mengatasi kejadian down tersebut secepat mungkin. Sistem monitoring juga sebenarnya bisa diklasifikasikan menjadi beberapa jenis, akan tetapi untuk sistem monitoring yang akan kita bahas sekarang ini adalah sistem monitoring jaringan. Sistem monitoring jaringan yang akan kita bangun ini levelnya masih basic atau sederhana saja ya sob, jadi hanya bisa memonitoring aktifitas perangkat jaringan, IP, atau layanan DDNS secara umum saja seperti apabila terjadi downtime.
Preparation
Tujuan yang akan kita capat dalam membangun sistem monitoring ini adalah sebagai berikut :
- Membuat sistem monitoring sederhana dengan performa yang baik.
- Membuat sistem monitoring yang flexible, reliable, dan scalable.
- Membuat sistem monitoring yang dapat terintegrasi dengan API chat Telegram.
Untuk device atau aplikasi yang akan kita gunakan dalam membangun sistem monitoring ini adalah sebagai berikut :
- Internet (apabila ingin bisa integrasi dengan Telegram)
- Bash
- Linux Server
Untuk implementasinya nanti kita akan membuat 3 bash script file yang fungsinya adalah sebagai berikut :
- Ping, berfungsi untuk cek ping untuk mendeteksi perangkat/layanan dapat diakses atau tidak.
- Up, berfungsi untuk memberikan notifikasi apabila perangkat/layanan dapat diakses.
- Down, berfungsi untuk memberikan notifikasi apabila perangkat/layanan tidak dapat diakses.
Installation
Membuat Group Bot Telegram
Pertama kita buat terlebih dahulu botnya. Caranya search BotFather, kemudian ketik beberapa command sesuai gambar dibawah ini sampai nanti sobat mendapatkan token untuk menggunakan HTTP API dari bot yang sobat buat.
Selanjutnya kita buat group untuk memudahkan kita untuk menerima notifikasi dari hasil monitoring yang sudah berjalan. Invite bot yang sudah sobat buat tadi dan juga IDBot, IDBot disini berfungsi untuk memberikan kita informasi terkait id dari group chat kita.
Selanjutnya ketik /getgroupid@myidbot untuk mendapatkan id group chat yang sudah kita buat tadi.
Setelah mendapatkan token HTTP API bot dan id group chat, langkah selanjutnya yaitu kita tes terlebih dahulu keduanya, caranya akses link dibawah ini :
https://api.telegram.org/botBOT_TOKEN/sendMessage?chat_id=CHAT_ID&text=Namorz%20Test
Note :
- Ganti BOT_TOKEN menjadi token HTTP API bot sobat.
- Ganti CHAT_ID dengan id group chat sobat.
- Text bisa diganti sesuai keinginan sobat.
Apabila berhasil, maka nanti akan ada pesan yang masuk ke group chat yang sudah sobat buat.
Membuat file up.sh
#!/bin/bash
GROUP_ID=yourgroupid
BOT_TOKEN=yourbottoken
BOT_TOKEN=yourbottoken
curl 'https://api.telegram.org/bot'$BOT_TOKEN'/sendMessage?chat_id='$GROUP_ID'&text=yourtext'
Note :
- Cukup ganti GROUP_ID & BOT_TOKEN pada bagian atas saja.
Membuat file down.sh
#!/bin/bash
GROUP_ID=yourgroupid
BOT_TOKEN=yourbottoken
BOT_TOKEN=yourbottoken
curl 'https://api.telegram.org/bot'$BOT_TOKEN'/sendMessage?chat_id='$GROUP_ID'&text=yourtext'
Note :
- Cukup ganti GROUP_ID & BOT_TOKEN pada bagian atas saja.
Membuat file ping.sh
#!/bin/bash
UP=./up.sh
DOWN=./down.sh
MYSITE=yourdomain.com
FILE=log-ping.txt
DATE=$(date '+%d/%m/%Y %H:%M:%S')
fping -c5 -t300 $MYSITE > /dev/null
if [ $? != 0 ]
then
echo "DDNS just Down" $DATE >> $FILE
$DOWN
else
echo "DDNS just UP " $DATE >> $FILE
fi
UP=./up.sh
DOWN=./down.sh
MYSITE=yourdomain.com
FILE=log-ping.txt
DATE=$(date '+%d/%m/%Y %H:%M:%S')
fping -c5 -t300 $MYSITE > /dev/null
if [ $? != 0 ]
then
echo "DDNS just Down" $DATE >> $FILE
$DOWN
else
echo "DDNS just UP " $DATE >> $FILE
fi
vim log-ping.txt
Note :
- UP : Diisi dengan nama bash script file ketika perangkat up.
- DOWN : Diisi dengan nama bash script file ketika perangkat down.
- MYSITE : Diisi dengan IP / Domain yang akan kita monitoring.
- FILE : Diisi file yang akan menampung log dari aktifitas monitoring.
- DATE : Berfungsi untuk generate tanggal dan waktu monitoring.
- Untuk ping disini saya menggunakan fping karena dapat mengecek lamanya timeout (-t) selama kurang lebih 300ms, apabila timeout melebihi waktu tersebut maka nanti akan terdeteksi down, untuk sobat yang belum install bisa dicoba install package fpingnya terlebih dahulu.
- Notifikasi yang akan terkirim disini hanya pada saat IP / Domain tidak bisa di ping alias pada saat Down saja, ketika Up tidak ada notifikasi karena bertujuan untuk menghindari spam.
Permission
Setelah sudah selesai untuk membuat 3 file tersebut, kita harus memberikan allow permissionnya supaya dapat di execute.
sudo chmod +x namafile
Cron Job
Oke sob, kita sudah sampai di tahap akhir nih yaitu cron job. Cron job ini berfungsi seperti task scheduler pada Windows dimana kita bisa menjalankan script tadi dalam waktu tertentu dan berulang. Misal Admin ingin menjalankan script tersebut 1 menit sekali, atau 5 menit sekali nantinya bisa kita setting di cron job ini sob. Nah, disini Admin akan mencoba menjalankan cron job per 1 menit.
crontab -e
Biasanya jika sobat baru pertama kali menjalankan crontab akan mendapati pilihan penggunaan text editor, disini sobat pilih sesuai kebutuhan saja ya.
Selanjutnya nanti apabila sudah masuk ke crontabnya tambahkan script ini dibagian paling bawah lalu save.
* * * * * /lokasi/file/./ping.sh
Setelah cron job berhasil dibuat, nantinya sobat bisa pantau detail lognya di file log-ping.txt yang sudah dibuat tadi, jika sudah berhasil jalan per-menit maka sistem monitoring yang kita buat sudah berhasil berjalan.
Baik itulah untuk tutorial kali ini, jika sobat ada pertanyaan bisa langsung hubungi kami lewat Fanspage Facebook, untuk linknya sendiri ada di menu contact us pada bagian atas ya sob.
Share This Article :