Monitoring — tahu lebih dulu sebelum pengunjung
Pantau server & dapat alert saat blog down
Tanpa pemantauan, kamu baru tahu blog mati saat ada yang memberi tahu — dan itu biasanya sudah berjam-jam. Di panduan ini kamu akan memasang pemantauan uptime gratis, membuat endpoint kesehatan, dan menyiapkan alert otomatis ke Telegram saat disk hampir penuh. Semuanya gratis dan ramah pemula.
Uptime
Tahu detik pertama saat blog tidak bisa diakses dari luar.
Sumber daya
Pantau CPU, RAM, dan disk agar server tidak kehabisan tenaga.
Alert
Notifikasi otomatis ke email/Telegram sebelum masalah membesar.
Kenapa monitoring penting?
Bayangkan blog atau toko online-mu mati jam 2 pagi karena server kehabisan memori. Tanpa pemantauan, ia bisa mati sampai pagi — kamu kehilangan pengunjung, penjualan, dan kepercayaan. Dengan pemantauan, kamu dapat notifikasi dalam hitungan menit dan bisa segera bertindak.
Monitoring punya dua sisi: dari luar (apakah situs bisa diakses publik?) dan dari dalam (apakah CPU, RAM, disk masih sehat?). Kita pasang keduanya.
Yang akan kita pasang
- UptimeRobot — pemantau uptime gratis dari luar (50 monitor gratis).
- Endpoint /health — agar monitor bisa cek "denyut" aplikasi, bukan sekadar halaman.
- Skrip alert disk — kirim pesan Telegram bila disk hampir penuh.
- Perintah cepat untuk cek CPU/RAM/disk secara manual.
Pantau uptime dengan UptimeRobot
UptimeRobot mengecek situsmu dari berbagai lokasi tiap beberapa menit. Kalau tidak bisa diakses, kamu langsung dapat email/Telegram. Cara pasangnya:
- Daftar akun gratis di uptimerobot.com.
- Klik "+ New Monitor" → tipe "HTTP(s)".
- Isi URL blogmu, mis. https://blogku.com/health (lebih baik dari halaman depan).
- Atur interval cek 5 menit (gratis), lalu pilih kontak alert (email/Telegram).
- Simpan. Monitor langsung aktif memantau 24 jam.
Buat endpoint /health
Memantau halaman depan saja bisa menipu — halaman mungkin tersimpan di cache padahal aplikasinya sudah mati. Endpoint /health kecil memastikan aplikasi benar-benar hidup dan merespons. Buat file ini:
// app/health/route.ts — endpoint cek kesehatan sederhana
import { NextResponse } from 'next/server'
export const dynamic = 'force-dynamic'
export async function GET() {
return NextResponse.json(
{ status: 'ok', time: new Date().toISOString() },
{ status: 200 },
)
}Build ulang lalu uji. Harusnya membalas status JSON:
# Uji endpoint dari server atau laptop
curl https://blogku.com/healthdeploy@server:~$ curl https://blogku.com/health{"status":"ok","time":"2026-01-03T02:00:00.000Z"}# aplikasi hidup & merespons ✅/healthini. Kamu juga bisa membuatnya mengecek koneksi database agar "sehat" berarti benar-benar sehat menyeluruh.Pantau CPU, RAM & disk
Server kecil mudah kehabisan RAM atau disk. Hafalkan empat perintah ini untuk memeriksa kesehatan server kapan saja lewat SSH:
# Perintah cepat memeriksa kesehatan server kapan saja
df -h # sisa ruang disk
free -h # pemakaian RAM
uptime # beban (load) & lama server menyala
pm2 status # status aplikasi yang dikelola PM2deploy@server:~$ df -h/dev/vda1 25G 9.1G 15G 38% /deploy@server:~$ free -hMem: 957Mi 612Mi 120Mi ...# disk 38% & RAM masih cukup = sehat ✅Alert disk penuh ke Telegram
Disk penuh adalah penyebab umum blog tiba-tiba error (sering karena log menumpuk). Buat skrip yang mengirim pesan Telegram bila disk melewati batas tertentu:
# DI SERVER — buat skrip pemantau disk
nano ~/scripts/disk-alert.sh1#!/usr/bin/env bash2# disk-alert.sh — kirim peringatan Telegram bila disk hampir penuh3set -euo pipefail4 5# Ganti dengan token bot & chat id kamu6BOT_TOKEN="123456:ABC-DEF..."7CHAT_ID="987654321"8THRESHOLD=85 # peringatkan bila pemakaian disk > 85%9 10USAGE=$(df / | awk 'NR==2 {gsub("%",""); print $5}')11 12if [ "$USAGE" -gt "$THRESHOLD" ]; then13 MSG="Peringatan: disk server terpakai ${USAGE}% (batas ${THRESHOLD}%)."14 curl -s "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \15 -d chat_id="${CHAT_ID}" \16 -d text="${MSG}" > /dev/null17fiBeri izin eksekusi (chmod +x ~/scripts/disk-alert.sh), lalu jadwalkan lewat crontab -e agar berjalan tiap 30 menit:
1# Cek disk tiap 30 menit2*/30 * * * * /home/deploy/scripts/disk-alert.shVerifikasi semua berjalan
Pastikan ketiga lapis pemantauan aktif: UptimeRobot menunjukkan status Up, endpoint /health membalas ok, dan skrip disk-alert terdaftar di cron.
deploy@server:~$ crontab -l | grep disk-alert*/30 * * * * /home/deploy/scripts/disk-alert.shdeploy@server:~$ curl -s https://blogku.com/health{"status":"ok",...}# pemantauan dalam & luar aktif ✅Masalah umum & cara mengatasinya
Bila ada alert palsu atau notifikasi tak sampai, cek tabel ini:
| Gejala | Sebab | Solusi |
|---|---|---|
| UptimeRobot bilang "Down" padahal blog hidup | Firewall/Cloudflare memblokir IP monitor, atau cek port salah. | Pakai monitor tipe HTTPS ke URL penuh, izinkan IP UptimeRobot bila perlu. |
| Tidak menerima email alert | Email masuk folder spam atau kontak alert belum diverifikasi. | Cek spam, verifikasi alamat di menu "My Settings → Alert Contacts". |
| Alert Telegram tidak terkirim | Token bot/chat id salah, atau belum pernah /start ke bot. | Kirim /start ke bot dulu, cek token via getMe, uji curl manual. |
| /health balas 404 | File route belum ada di lokasi benar atau belum di-build ulang. | Pastikan app/health/route.ts ada, lalu pnpm build && pm2 restart all. |
Sekarang kamu selalu tahu lebih dulu
Blogmu dipantau dari luar dan dalam, dengan alert otomatis. Lanjutkan membuat proses update lebih mulus dengan auto-deploy.