Tropic Host

Uptime Kuma di VPS: menyiapkan pemantauan situs web dan server

6 min dibaca
Tropic
Uptime Kuma di VPS: menyiapkan pemantauan situs web dan server

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

  1. Sediakan VPS kecil yang terpisah dari proyek yang dipantau.
  2. Arahkan subdomain seperti monitor.example.com ke VPS tersebut.
  3. Pasang Docker dan jalankan Uptime Kuma 2.
  4. Tutup port internal 3001 dan aktifkan HTTPS.
  5. Buat monitor HTTP, DNS, TCP, atau push.
  6. Konfigurasikan Telegram dan, jika diperlukan, halaman status.
  7. 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 enable

Jangan 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 version

3. 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 ps

Gunakan 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 caddy

Jika 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):

  1. Masukkan nama dan URL lengkap.
  2. Atur interval, misalnya 60 detik.
  3. Tambahkan dua kali percobaan ulang untuk mengatasi kegagalan jaringan sesekali.
  4. Pilih kanal notifikasi.
  5. 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 -d

Pindahkan 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-recreate

Setelah 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

KesalahanMengapa menjadi masalahPendekatan yang lebih baik
Pemantauan berjalan di sebelah proyekGangguan bersama mematikan layanan dan notifikasiGunakan VPS atau lokasi terpisah
Port 3001 dibuka ke publikDasbor dapat diakses tanpa reverse proxy atau HTTPSBind port ke 127.0.0.1
Hanya status 200 yang diperiksaKesalahan aplikasi dapat terlihat seperti keberhasilanTambahkan Keyword atau JSON Query
Menggunakan tag latestTag tersebut mengarah ke branch v1 yang sudah usangGunakan louislam/uptime-kuma:2
Cadangan disimpan di VPS yang samaCadangan akan hilang bersama serverSalin 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.