Kembali ke Blog
Automation & DevOps

Membangun WhatsApp Bot untuk Monitoring Server Linux

Panduan membuat notifikasi peringatan dini (early warning) untuk status VPS. Menggunakan Node.js untuk mengecek CPU, RAM, dan Uptime aplikasi PM2, lalu mengirimkan alert otomatis ke grup WhatsApp.

Node.jsWhatsApp Web.jsPM2 APILinux SysstatCron Job
Grafik monitor performa server dengan warna neon
Mencegah downtime lebih baik daripada menangani komplain pelanggan. · © Luke Chesser

Kenapa Notifikasi Server Sangat Penting?

Bayangkan skenario horor ini: Website e-commerce atau sistem kasir klien Anda mengalami lonjakan trafik secara tiba-tiba (traffic spike) di tengah malam. Kapasitas RAM VPS terkuras habis, Kernel Linux memicu mekanisme Out-Of-Memory (OOM) Killer yang secara brutal mematikan proses database PostgreSQL, dan situs mati total (Down) selama 6 jam sebelum Anda bangun di pagi hari. Kerugian transaksional yang terjadi bisa mencapai puluhan juta rupiah.

Di dunia DevOps, proaktif selalu lebih baik daripada reaktif. Membangun sistem monitoring mandiri yang memberi peringatan dini langsung berdering di saku Anda (melalui WhatsApp) adalah langkah fundamental untuk menjaga stabilitas infrastruktur (SLA 99.9%) sebelum pengguna akhir menyadari adanya kerusakan sistem.

Metrik Esensial: Storage, CPU, RAM, dan Uptime

Untuk merancang bot peringatan dini yang efektif, kita tidak boleh membanjiri chat log dengan metrik sampah (alert fatigue). Cukup ekstrak 4 indikator krusial ini secara presisi menggunakan utilitas bawaan bash Linux, yang dieksekusi melalui modul 'child_process' (exec) di lingkungan Node.js:

  • Storage Disk (df -h): Peringatkan dengan label CRITICAL jika sisa penyimpanan disk di bawah 10%. File log aplikasi yang menumpuk tanpa rotasi log (logrotate) sering menjadi tersangka diam-diam penyebab server crash mendadak.
  • RAM (free -m) & CPU (top): Peringatkan jika load rata-rata memori/CPU tertahan di atas 85% secara berkelanjutan selama periode 5 menit. Ini mengindikasikan adanya memory leak pada kode aplikasi.
  • Application Uptime: Berinteraksilah dengan API programmatic PM2 untuk memantau lifecycle daemon aplikasi Next.js/Express. Jika status kluster berubah menjadi 'errored' atau 'stopped', kirim notifikasi darurat.
  • Service Health Status: Jalankan script untuk memeriksa status systemctl dan pastikan reverse proxy (Nginx) serta Database berjalan sempurna (active/running).

Prinsip Least Privilege untuk Eksekusi Bot

Salah satu kesalahan arsitektur paling fatal bagi Sysadmin pemula adalah menjalankan daemon bot WhatsApp menggunakan akses 'root' murni. Mengingat bot terhubung ke internet publik, jika ditemukan celah eksploitasi (Remote Code Execution) pada library bot, penyerang bisa mengambil alih kendali penuh atas keseluruhan server VPS.

Demi keamanan maksimum, selalu jalankan bot monitoring menggunakan user Linux khusus (non-root) yang memiliki permission sangat dibatasi—hanya diizinkan membaca metrik hardware dan melihat log aplikasi PM2 secara read-only.

Batasi juga kemampuan interaktif bot. Bot sebaiknya dirancang murni 'Read-Only'—hanya mentransmisikan notifikasi peringatan keluar (outbound), tanpa menyediakan parser untuk membalas perintah interaktif seperti '!restart-server'. Menempatkan kontrol eksekusi shell script langsung dari input chat WhatsApp adalah sebuah risiko keamanan (attack vector) yang sangat ceroboh.

Integrasi Node.js, Cron, dan Puppeteer Headless

Pustaka open-source 'whatsapp-web.js' berjalan secara independen tanpa memerlukan API resmi berbayar dari Meta Cloud API. Ia bekerja dengan meluncurkan instans browser Chromium terselubung (headless Puppeteer) yang mensimulasikan login WhatsApp Web. Untuk efisiensi resource VPS, pastikan untuk menggunakan opsi '--no-sandbox' dan menyimpan cache session (session data) agar tidak perlu memindai kode QR ulang setelah restart server.

Cukup buat satu fungsi penjadwalan (menggunakan pustaka node-cron) yang mengeksekusi pemeriksaan hardware setiap 5 menit. Jika metrik menyentuh threshold merah, script akan seketika memicu trigger sendMessage ke Group ID WhatsApp khusus Incident Response Team (IT). Dengan otomatisasi ini, tim teknis dapat segera melakukan intervensi (SSH login ke server) menit itu juga.

Website Anda Sering Down Tanpa Sepengetahuan?

Mari setup sistem monitoring mandiri yang dapat memberi tahu Anda sebelum klien menyadari adanya masalah.

Konsultasi Setup VPS
© 2026 Fajar Geran Arifin. All rights reserved.