Uptime Kuma: menyiapkan pemantauan situs web sendiri di VPS
Situs web dapat rusak meskipun tetap mengembalikan 200 OK. Cadangan dapat berhenti berjalan tanpa kesalahan yang jelas. Uptime Kuma mendeteksi kedua kasus tersebut: layanan memeriksa situs web, API, port, dan pekerjaan latar belakang, lalu mengirim notifikasi ketika terjadi masalah.
Kita akan membahas tempat meng-host sistem pemantauan, VPS yang dibutuhkan, cara memasang Uptime Kuma 2, mengaktifkan HTTPS, menghubungkan Telegram, dan membuat halaman status.
Uptime Kuma dalam tujuh langkah
- Sediakan VPS kecil yang terpisah dari proyek yang dipantau.
- Arahkan subdomain seperti
monitor.example.comke VPS tersebut. - Pasang Docker dan jalankan Uptime Kuma 2.
- Tutup port internal
3001dan aktifkan HTTPS. - Buat monitor HTTP, DNS, TCP, atau push.
- Konfigurasikan Telegram dan, jika diperlukan, halaman status.
- Siapkan pembaruan serta cadangan eksternal untuk direktori data.
Apa itu Uptime Kuma
Uptime Kuma adalah alat gratis, sumber terbuka, dan self-hosted. Dasbor beserta riwayat pemeriksaannya disimpan di server Anda sendiri.
Uptime Kuma dapat memantau HTTP(S), port TCP, ping, DNS, WebSocket, teks dan JSON dalam respons, sinyal push, serta container Docker. Interval pemeriksaan minimum adalah 20 detik. Uptime Kuma juga menyediakan puluhan kanal notifikasi, 2FA, grafik latensi, pemantauan sertifikat TLS, dan beberapa halaman status.
Cara mendeteksi kegagalan yang tersembunyi di balik 200 OK
Pemeriksaan HTTP dasar hanya melihat kode respons. Namun, server web dapat menampilkan halaman kosong atau layar kesalahan aplikasi dan tetap mengembalikan status berhasil.
Untuk pemantauan yang lebih akurat, gunakan:
- Keyword — mencari frasa yang diharapkan, seperti nama situs web atau teks “Account dashboard”;
- JSON Query — memeriksa nilai dalam respons API, misalnya
status: healthy.
Dengan cara ini, monitor tidak hanya memastikan bahwa port dapat dijangkau, tetapi juga bahwa aplikasi menampilkan setidaknya satu tanda operasi yang benar.
Monitor push untuk cadangan dan pekerjaan cron
Monitor push tidak melakukan polling terhadap layanan. Monitor ini menunggu sinyal rutin dari layanan tersebut. Skrip cadangan atau pekerjaan cron memanggil URL unik setelah berhasil selesai. Jika sinyal tidak datang tepat waktu, Uptime Kuma melaporkan kegagalan.
Fitur ini membantu mendeteksi masalah “diam-diam”: situs web masih bekerja, tetapi cadangan harian belum dibuat selama beberapa hari.
Apa yang tidak dapat digantikan oleh Uptime Kuma
Uptime Kuma terutama melacak ketersediaan dan waktu respons. Untuk CPU, RAM, disk, log, dan metrik container, lengkapi dengan Prometheus, Netdata, Zabbix, atau sistem pemantauan lain: Kuma melihat masalah dari luar, sedangkan metrik membantu menemukan penyebabnya.
Mengapa pemantauan harus berjalan di VPS terpisah
Jika Uptime Kuma dipasang di sebelah situs web, kegagalan VPS, jaringan, atau pusat data dapat mematikan proyek dan sistem pemantauan sekaligus. Notifikasi mungkin tidak pernah terkirim.
Host dasbor di VPS terpisah dan, untuk proyek penting, di lokasi lain atau penyedia lain. Memantau Kuma sendiri dengan layanan eksternal juga berguna: sistem pemantauan pun perlu diawasi.
Persyaratan server Uptime Kuma
Proyek ini tidak menetapkan minimum resmi yang ketat untuk CPU dan RAM. Konfigurasi awal praktis untuk instalasi kecil:
- 1 vCPU;
- RAM 1 GB;
- SSD 10 GB;
- Ubuntu 24.04 LTS;
- IPv4;
- domain atau subdomain untuk HTTPS.
Konfigurasi ini biasanya cukup untuk beberapa puluh pemeriksaan sederhana. Untuk ratusan monitor, penyimpanan riwayat yang lama, atau pemeriksaan berbasis browser, pilih RAM 2 GB atau lebih.
Cara memasang Uptime Kuma di VPS
Contoh ini menggunakan Ubuntu 24.04 dan subdomain monitor.example.com.
1. Konfigurasikan DNS dan firewall
Buat catatan DNS A yang mengarah ke alamat IPv4 VPS. Hubungkan melalui SSH dan buka port yang diperlukan:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw --force enableJangan menutup sesi SSH saat ini sebelum menguji koneksi baru.
2. Pasang Docker dan Docker Compose
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose version3. Jalankan Uptime Kuma 2
mkdir -p /opt/uptime-kuma
cd /opt/uptime-kuma
cat > compose.yaml <<'EOF'
services:
uptime-kuma:
image: louislam/uptime-kuma:2
restart: unless-stopped
ports:
- "127.0.0.1:3001:3001"
volumes:
- ./data:/app/data
EOF
docker compose up -d
docker compose psGunakan tag :2: latest masih mengarah ke branch v1 yang sudah usang. Direktori /app/data harus disimpan di disk lokal atau volume Docker biasa. NFS dan sistem penyimpanan tanpa file locking yang tepat dapat merusak database.
Port 3001 hanya dapat diakses melalui 127.0.0.1. Reverse proxy dengan HTTPS akan memublikasikan dasbor ke luar.
4. Aktifkan HTTPS dengan Caddy
apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
monitor.example.com {
reverse_proxy 127.0.0.1:3001
}
EOF
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddyJika DNS mengarah ke VPS, Caddy akan otomatis meminta sertifikat TLS dan mem-proxy koneksi WebSocket. Host dasbor di root domain atau subdomain: alamat seperti example.com/kuma tidak didukung.
5. Buat akun administrator
Buka https://monitor.example.com, buat akun dengan kata sandi panjang dan unik, lalu aktifkan autentikasi dua faktor.
Cara menambahkan monitor pertama
Klik Add New Monitor dan pilih HTTP(s):
- Masukkan nama dan URL lengkap.
- Atur interval, misalnya 60 detik.
- Tambahkan dua kali percobaan ulang untuk mengatasi kegagalan jaringan sesekali.
- Pilih kanal notifikasi.
- Simpan monitor dan pastikan pemeriksaan yang berhasil mulai muncul.
Untuk situs web utama, pemeriksaan HTTP dan Keyword berguna. Untuk API, gunakan endpoint health dan JSON Query. Jangan membuka database atau port administrasi ke internet hanya untuk keperluan pemantauan; gunakan jaringan tepercaya atau VPN.
Contoh monitor push untuk cadangan
Setelah membuat monitor Push, tambahkan URL uniknya di akhir skrip:
backup-command && \
curl -fsS "https://monitor.example.com/api/push/SECRET_TOKEN?status=up&msg=backup-ok"Permintaan hanya berjalan setelah cadangan berhasil. Perlakukan token push seperti kata sandi: siapa pun yang mengetahui URL tersebut dapat mengirim sinyal palsu.
Cara menghubungkan Telegram
Buat bot melalui @BotFather, kirim pesan kepadanya, lalu buka Settings → Notifications → Telegram. Masukkan Bot Token dan Chat ID, klik Test, lalu tetapkan kanal tersebut ke monitor. Untuk layanan kritis, tambahkan kanal kedua seperti email.
Cara membuat halaman status
Di Status Pages, Anda dapat mengelompokkan monitor, menampilkan status saat ini dan riwayat uptime, menetapkan domain, serta melaporkan pekerjaan terjadwal melalui Maintenance. Jangan publikasikan alamat IP internal atau URL teknis: pelanggan hanya memerlukan komponen seperti “Website”, “API”, “Account dashboard”, dan “Payments”.
Memperbarui dan mencadangkan Uptime Kuma
Sebelum pembaruan besar, hentikan container dan simpan direktori data:
cd /opt/uptime-kuma
docker compose down
tar -czf /root/uptime-kuma-$(date +%F).tar.gz \
data compose.yaml
docker compose up -dPindahkan arsip ke perangkat lain atau penyimpanan eksternal. Salinan di VPS yang sama tidak melindungi Anda dari penghapusan server atau kerusakan disk.
Untuk pembaruan rutin:
cd /opt/uptime-kuma
docker compose pull
docker compose up -d --force-recreateSetelah startup, periksa docker compose ps, buka dasbor, dan kirim notifikasi uji coba.
VPS mana yang dipilih untuk Uptime Kuma
Instalasi kecil hanya membutuhkan Linux VPS dengan 1 vCPU dan RAM 1 GB. Independensi lebih penting daripada performa mentah: monitor harus tetap berjalan ketika proyek utama tidak tersedia.
Anda dapat meng-host Uptime Kuma di VPS dari tropic.host ketika layanan yang dipantau berjalan di platform lain atau node independen. Ubuntu, Docker, dan IP statis membuat dasbor cepat diluncurkan, sementara sumber daya dapat ditingkatkan seiring bertambahnya jumlah pemeriksaan.
Jika produksi sudah berjalan di infrastruktur yang sama, pilih node lain atau tambahkan monitor eksternal cadangan. Memisahkan domain kegagalan lebih bermanfaat daripada menambahkan satu core CPU.
Kesalahan umum
| Kesalahan | Mengapa menjadi masalah | Pendekatan yang lebih baik |
|---|---|---|
| Pemantauan berjalan di sebelah proyek | Gangguan bersama mematikan layanan dan notifikasi | Gunakan VPS atau lokasi terpisah |
Port 3001 dibuka ke publik | Dasbor dapat diakses tanpa reverse proxy atau HTTPS | Bind port ke 127.0.0.1 |
Hanya status 200 yang diperiksa | Kesalahan aplikasi dapat terlihat seperti keberhasilan | Tambahkan Keyword atau JSON Query |
Menggunakan tag latest | Tag tersebut mengarah ke branch v1 yang sudah usang | Gunakan louislam/uptime-kuma:2 |
| Cadangan disimpan di VPS yang sama | Cadangan akan hilang bersama server | Salin direktori data ke tempat lain |
Ringkasan
Uptime Kuma mengubah VPS kecil menjadi pusat pemantauan Anda sendiri untuk situs web, API, DNS, port, sertifikat, dan pekerjaan latar belakang. Keyword membantu mendeteksi halaman rusak, JSON Query menangkap respons API yang salah, dan Push mengungkap cadangan atau pekerjaan cron yang berhenti.
Untuk penyiapan yang andal, host sistem pemantauan secara terpisah dari produksi, tutup port 3001, aktifkan HTTPS dan 2FA, serta konfigurasikan dua kanal notifikasi. Setelah itu, siapkan cadangan eksternal direktori data dan pemeriksaan independen terhadap Uptime Kuma sendiri.
FAQ
Apakah Uptime Kuma gratis?
Ya. Proyek ini bersumber terbuka dan didistribusikan di bawah lisensi MIT. Anda hanya membayar infrastruktur, domain, dan cadangan eksternal.
Berapa banyak RAM yang dibutuhkan Uptime Kuma?
Untuk instalasi kecil, RAM 1 GB merupakan titik awal yang masuk akal. Untuk ratusan pemeriksaan, penyimpanan riwayat yang lama, atau Browser Engine, sediakan RAM 2 GB atau lebih.
Bisakah Uptime Kuma dipasang tanpa Docker?
Ya, menggunakan Node.js dan PM2. Namun, Docker Compose biasanya lebih mudah diperbarui, dimigrasikan, dan dipulihkan di VPS.
Bisakah Uptime Kuma digunakan tanpa domain?
Secara teknis, ya—melalui alamat IP atau tunnel SSH. Untuk akses internet permanen, subdomain dengan HTTPS lebih aman.
Apakah Uptime Kuma menampilkan penggunaan CPU, RAM, dan disk?
Bukan sebagai sistem metrik server lengkap. Untuk pemantauan sumber daya server, lengkapi dengan Prometheus, Netdata, Zabbix, atau alat khusus lainnya.
