Sekarang hampir semua orang pake whatsapp sebagai media komunikasi dan hampir semua aktifitas berkaitan dengan penggunaan whatsapp. Nah, pada kesempatan kali ini saya akan bagikan cara membuat notifikasi otomatis yg akan terkirim ke nomor whatsapp anda saat beban CPU VPS melebihi 70% (atau batas bawah berapapun yg anda tentukan).
Dengan begini anda akan cepat tahu saat cpu server anda mengalami kinerja yg berat sehingga tindakan yg diperlukan bisa segera dieksekusi.
Yang dibutuhkan untuk membuat monitoring cpu usage ini adalah sebuah bash script (nanti akan saya share di bawah) dan juga anda membutuhkan whatsapp API yg mana bisa anda dapatkan secara berlangganan dengan murah di sini.
Jadi langkahnya begini:
- Siapkan nomor aktif untuk whatsapp (ini nanti jadi nomor sender). Boleh nomor baru, boleh virtual number. Tapi sebaiknya nomor yg udah aktif whatsapp-nya beberapa lama karena nomor baru apalagi cuma virtual number akan rawan terblokir.
- Daftar akun di sini untuk mendapatkan API
- Tambahkan nomor di atas pada tab API, nanti dari perangkat mobile scan-lah QR code yg muncul.
- Catat Number key dan API key yg ada di member area.
Selanjutnya ini lah bash script yg harus diinstal di server yg akan dimonitoring kinerja CPU nya:
#!/bin/bash
BASE_URL="https://api.watzap.id/v1"
API_KEY="NWFGxxxxxxxxxxxCI"
NUMBER_KEY="C8mxxxxxxxxxFY"
PHONE_NUMBERS=("62817123456")
CPU_THRESHOLD=70.0
public_ip=$(curl -4 -s https://api.ipify.org)
# Function to send WhatsApp message
send_whatsapp_message() {
local phone_number=$1
local message=$2
curl -k -X POST "$BASE_URL/send_message" \
-H "Content-Type: application/json" \
-d "{\"api_key\":\"$API_KEY\",\"number_key\":\"$NUMBER_KEY\",\"phone_no\":\"$phone_number\",\"message\":\"$message\"}"
echo "Sent WhatsApp message to $phone_number"
}
# Check CPU usage
cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
if (( $(echo "$cpu_usage > $CPU_THRESHOLD" | bc -l) )); then
message="*ALERT:* [$public_ip] High CPU usage on server detected: $cpu_usage%"
for phone_number in "${PHONE_NUMBERS[@]}"; do
send_whatsapp_message "$phone_number" "$message"
done
fi
Buatlah file vim /usr/bin/cekcpu
lalu copy script di atas dan save. Jangan lupa chmod +x /usr/bin/cekcpu
supaya dia executable.
Selanjutnya jalankan otomatis tiap satu menit melalui cron. Maka script ini akan running tiap menit melakukan cek penggunaan CPU di vps/dedicated server anda dan apabila didapati cpu di atas 70% maka dia akan mengirim warning melalui pesan whatsapp.
Keterangan:
- BASE_URL, API_KEY dan NUMBER_KEY akan anda peroleh setelah berlangganan API
- PHONE_NUMBERS adalah nomor tujuan, ini bisa diisi lebih dari satu nomor dipisahkan oleh spasi
- CPU_THRESHOLD merujuk pada besaran cpu usage yg akan memicu pengiriman notifikasi. Bisa disesuaikan sesuai kebutuhan dan penggunaan server.
Begini nih kalo pas cpu mendadak berat akan datang pesan whatsapp: