Kembali ke Panduan Deploy

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.

1
Pahami dulu

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.

2
Checklist

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.
3
Dari luar

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.
Sekalian aktifkan halaman status publik (Status Page) gratis dari UptimeRobot agar pengunjung bisa melihat sendiri kondisi layananmu — terlihat profesional.
4
Dari dalam

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/health
deploy@server — uji /health
deploy@server:~$ curl https://blogku.com/health{"status":"ok","time":"2026-01-03T02:00:00.000Z"}# aplikasi hidup & merespons ✅
Arahkan monitor UptimeRobot ke URL /healthini. Kamu juga bisa membuatnya mengecek koneksi database agar "sehat" berarti benar-benar sehat menyeluruh.
5
Sumber daya

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 PM2
deploy@server — cek sumber daya
deploy@server:~$ df -h/dev/vda1   25G   9.1G   15G   38% /deploy@server:~$ free -hMem:   957Mi   612Mi   120Mi   ...# disk 38% & RAM masih cukup = sehat ✅
6
Otomatis

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.sh
GNU nano 7.2~/scripts/disk-alert.sh
1#!/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/null17fi
^O Write Out^X Exit^W Where Is^K Cut

Beri izin eksekusi (chmod +x ~/scripts/disk-alert.sh), lalu jadwalkan lewat crontab -e agar berjalan tiap 30 menit:

GNU nano 7.2crontab -e
1# Cek disk tiap 30 menit2*/30 * * * * /home/deploy/scripts/disk-alert.sh
^O Write Out^X Exit^W Where Is^K Cut
Butuh token bot & chat id Telegram? Cara membuatnya dibahas lengkap di panduan auto-deploy Telegram. Token sama bisa dipakai ulang untuk alert ini.
7
Cek akhir

Verifikasi semua berjalan

Pastikan ketiga lapis pemantauan aktif: UptimeRobot menunjukkan status Up, endpoint /health membalas ok, dan skrip disk-alert terdaftar di cron.

deploy@server — verifikasi
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 ✅
8
Anti-stuck

Masalah umum & cara mengatasinya

Bila ada alert palsu atau notifikasi tak sampai, cek tabel ini:

GejalaSebabSolusi
UptimeRobot bilang "Down" padahal blog hidupFirewall/Cloudflare memblokir IP monitor, atau cek port salah.Pakai monitor tipe HTTPS ke URL penuh, izinkan IP UptimeRobot bila perlu.
Tidak menerima email alertEmail masuk folder spam atau kontak alert belum diverifikasi.Cek spam, verifikasi alamat di menu "My Settings → Alert Contacts".
Alert Telegram tidak terkirimToken bot/chat id salah, atau belum pernah /start ke bot.Kirim /start ke bot dulu, cek token via getMe, uji curl manual.
/health balas 404File 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.