Uptime Kuma

Uptime Kuma

Kali ini saya akan membicarakan Uptime Kuma suatu service yang multiguna untuk men-cek apakah suatu service sedang berjalan atau tidak.

Untuk menjalakannya tersedia beberapa pilihan, mulai dari mengunakan Docker sampai non docker seperti Windows standalone program. Untuk deskripsi lebih lengkap dan informasi dimana dia bisa digunakan lebih terkini bisa di cek di site utama mereka, dokumentasi atau di github mereka. Apabila tertarik mencoba sebelum instalisasi, anda bisa mencoba uptime kuma di demo site mereka yang terdaftar di site utama dan github.

Alasan saya membicarakan uptime kuma karena service ini sangat bergunakan di homelab, atau di tempat lain yang biasanya mengharuskan anda untuk memonitor kondisi server, service dan lainnya. Contohnya di homelab saya sudah terdapat satu uptime kuma untuk mencek, apakah pihole saya nyala dan menjawab dns apabila di tanyakan, vpn untuk access homelab saya berjalan dan beberapa service lain yang jalan di homelab saya dan juga saya taruh di suatu tempat yang tidak dalam satu network dengan homelab saya untuk mencek, apakah dari jaringan luar service yang saya sediakan ke internet terhubung dengan baik atau tidak.

Dalan tulisan kali ini saya akan membicara, bagaimana instalasi mengunakan docker, membuat service ini bisa di akses dari luar jaringan atau internet mengunakan Cloudlfare tunnel dan beberapa fitur yang tersedia di uptime kuma, seperti notifikasi melalu telegram.

Instalasi

Untuk bisa mengikuti apa yang saya tulis disini, ada beberapa hal yang sebaiknya sudah tersedia.

  1. Docker sudah tersedia di PC/Server yang akan anda gunakan, untuk tulisan apa itu Docker dan bagaimana cara instalasi bisa lihat di tulisan sebelumnya.
  2. Cloudflare tunneling, untuk melihat cara mengunakan, setting dan instalisasi Cloudflare tunneling bisa lihat di artikel ini.

Apabila syarat syarat diatas sudah terpenuhi kita lanjutkan bagaimana melakukan instalisasi.

Saya lebih memilih untuk melakukan instalisasi mengunakan perintah docker compose karena akan lebih rapi dan kemudian kita bisa mencek mana saja container yang akan terlibat dan yang paling utama memudakan di kala update.

Disini saya akan mengunakan ubuntu server yang sudah terinstall sebagai virtual machine yang ada di laptop saya sebagai contoh, namun idealnya karena aplikasi ini jalan 24/7 anda bisa instalasi di pc/server yang jalan 24/7.

Seperti biasa sebelum memulai, anda sebaiknya memastikan apakah server anda up to date dengan melakukan update dan upgrade ubuntu server anda tersebut terlebih dahulu dengan mengunakan perintah ini.

sudo apt update && sudo apt upgrade

Yang artinya lakukan lah update list dan kemudian upgrade.

Sesudah anda login ke server anda mengunakan SSH, buatlah folder uptime kuma dengan perintah berikut.

mkdir -p docker/uptime-kuma-prod

Artinya buatlah folder uptime-kuma-prod didalam folder docker dan apabila folder belum ada buat juga lah folder tersebut. Lalu masuk kedalam folder uptime-kuma-prod yang bisa di lakukan dengan perintah

cd /docker/uptime-kuma-prod

Sesudah ada di folder tersebut anda membuat file docker-compose.yml disini saya akan mengunakan nano sebagai editor dengan perintah

nano docker-compose.yml

Sesudah nano terbuka pastekan docker compose yang ada dibawah ini, docker compose ini

Di bagian port ada tulisan 3001:3001 itu adalah port yang akan di gunakan oleh uptime kuma, yang sebelah kiri anda bisa rubah apabila port 3001 sudah terpakai, sedangkan sisi kanan tidak perlu anda rubah karena itu adalah port yang ada dalam kontainer docker. Misal apabila anda ingin merubahnya ke port 4001 anda cukup rubah file diatas menjadi 4001:3001.

Untuk mencek apakah port 3001 sudah terpakai apa belum apabila hanya docker yang jalan di server anda, anda cukup melihat dengan perintah docker seperti ini

sudo docker ps

Gunanya untuk mencek apa saja kontainer yang sudah berjalan di komputer tersebut, kalau di tempat saya hasilnya adalah seperti ini.

Seperti yang anda lihat, hanya ada portainer yang jalan di port 8000 dan 9443 saja di komputer saya ini, jadi port 3001 tidak terpakai dan saya bisa gunakan.

Dan dari docker compose file anda juga bisa tahu kalau image yang saya gunakan adalah dari image resmi yang ada di louislam/uptime-kuma yang ada di docker hub dan versi yang di gunakan adalah versi terahkir yang ada disana. Ini adalah docker resmi dari uptime-kuma, dan anda bisa cek versi terahkir dari tag yang ada di docker hub. Dari halaman tersebut anda bisa lihat uptime kuma versi Docker tersedia untuk amd64, arm v7 dan arm64 sehingga selama anda mengunakan komputer dengan architecture tersebut, docker ini akan bisa jalan. Perintah docker compose akan cukup pintar untuk memilihkan architecture yang akan jalan di komputer anda. Namun mungkin untuk raspberry pi zero dan zero w ini tidak akan jalan karena mengunakan arm v6.

Sesudah itu anda cukup melakukan perintah satu line yang bermakna dua, yang satu untuk compose dan jadikan dalam proses background dan kedua adalah lihat log secara real time, untuk mencek apakah jalan dengan lancar ataupun tidak. Dengan mengunakan perintah

sudo docker compose up -d && docker compose logs -f

Tampilannya kurang lebih akan seperti ini ketika dia melakukan pull dan compose up

Dan ketika compose logs dijalankan

Selamat! uptime kuma sudah terinstall di pc anda dan tinggal sekarang anda masuk ke ip dan port yang anda buat tadi mengunakan browser untuk melakukan setup account dan memasukan apa yang akan anda lakukan.

Anda bisa menutup terminal yang tadi terbuka dengan control C untuk membatalkan perintah compose log dan kemudian perintah exit untuk memutuskan SSH yang anda buat dengan PC/server yang terhubung dengan anda.

Lalu semua setting akan mengunakan browser dan interface nya adalah GUI1.

Setting up uptime kuma

Sekarang buka browser favorite anda untuk masuk ke ip dan port yang sudah anda set tadi, biasanya dalam bentuk [ip]:[port yang anda set], lalu masukan account yang anda gunakan misal nama anda dan password yang akan anda gunakan, didalam contoh ini saya mengunakan admin sebagai user name, saran saya gunakan suatu yang tidak umum, sehingga apabila anda expose keluar nanti, akan lebih sulit untuk di tebak kalau mengunakan brute force, sehingga keluar gambar kurang lebih begini.

Memasukan service yang akan anda periksa

Nah dari sini anda akan bertemu dengan menu utama dari uptime kuma, dan anda bisa memasukan apa service yang akan anda monitor. Disini saya akan menunjukan cara untuk memonitor DNS server lokal, di tempat saya adalah service pihole yang saya gunakan untuk seantero LAN2 yang saya gunakan. Karena kalau hanya untuk cek http(s) itu sudah terjawab dengan mudah, karena menu uptime kuma mudah untuk di mengerti.

Seperti yang anda lihat diatas, saya menset domain hidupku.info sebagai yang akan di periksa, namun saya mengunakan alamat pihole saya sebagai resolver server, dengan demikian yang saya periksa adalah A record dari hidupku dan juga server pihole saya sekaligus. Apabila salah satu down, saya akan mendapatkan notifikasi melalui telegram. Ide menarik bukan untuk mencek sekaligus dua hal?

Cara ini juga bisa anda gunakan apabila anda punya domain atau subdomain baru, dan anda sedang menunggu progpagasi di internet, apakah sudah resolve ke IP yang anda inginkan apa belum.

Waktu tiap kali cek ini secara default akan di lakukan tiap 60 detik, namun anda bisa rubah ke 15 atau 30 detik. Anda juga bisa set berapa kali retry atau di coba ulang, sebelum notifikasi peringatan di kirimkan via notifikasi yang anda inginkan.

Dan dari screenshot diatas anda juga tahu saya sudah menset terlebih dahulu telegram sebagai notifikasi yang saya gunakan.

Set notifikasi

Di uptime kuma banyak sekali list cara anda untuk mendapatkan notifikasi, mulai dari email, NTFY, sampai telegram.

Paling mudah saya rasa adalah via email, karena jaman sekarang seperti nya tidak ada orang yang tidak punya email. Apabila anda mengunakan email, anda cukup masukan SMTP yang anda gunakan, berikut dengan username dan password SMTP tersebut yang biasanya adalah user email dan password email yang anda gunakan di email tersebut.

Untuk telegram ini diperlukan pengetahuan mengenai membuat bot di telegram dan anda sudah punya user di telegram.

Caranya mudah di uptime kuma juga sudah di jelaskan, namun demi keamanan, saya tidak akan memberikan screenshot, karena tidak lucu nanti id telegram yang ada di screenshot akan di gunakan oleh anda, sehingga yang dapat notifikasi adalah account telegram saya 🫣 Namun saya akan menunjukan saja step nya saja.

Pertama login ke account telegram anda dan cari account bernama botfather

Sesudah anda mendapatkan token API dari bot yang sudah anda buat, copy-kan API tersebut ke uptime kuma, nanti di bagian notifikasi api yang ada di update kuma, buka halaman baru untuk melihat halaman api yang di gunakan oleh bot tersebut. Biasanya alamatnya adalah seperti ini formatnya.

https://api.telegram.org/bot[Kode API]/getUpdates

Nah sekarang kembali ke telegram anda, dan sapa bot yang baru anda buat dan buat beberapa line apa saja.

Dan ketika anda refresh page yang API yang anda dapatkan akan ada apa yang ada tulis ke bot tersebut, disana ada Chat ID, yang anda copas ke uptime kuma, namun, anda bisa klik auto get, apabila sudah ada balasan di halaman yang di maksud kurang lebih tampilanya akan seperti ini.

Lakukan test dan apabila anda mendapatkan balasan oleh bot telegram anda, artinya anda sudah benar melakukan set telegram untuk uptime kuma.

Contoh diatas adalah membuat notifikasi langsung ke anda, tapi anda bisa juga membuat bot tersebut masuk ke channel yang anda buat yang anda gunakan dengan beberapa bot lainnya, sehingga notifikasi bisa di satu tempat saja, namun disini saya hanya memberikan cara untuk mendapatkan bot langsung bicara ke anda, karena selera orang beda beda, saya lebih suka langsung di kirim kesaya di bandingkan ke channel atau group chat, yang nanti notfikasi harus saya langsung lihat. Untuk mendapatkan group id atau channel ID mungkin anda perlu cari sendiri caranya, namun kurang lebih akan sama, yang penting dapat ID nya.

Status page

Saya sudah membahas masalah notifikasi yang akan didapatkan dari uptime kuma, namun ini hanya untuk anda sendiri, karena selain notifikasi yang sifatnya di kirim via telegram, email dan lainnya, itu hanya untuk pribadi anda sendiri.

Sekarang bagaimana kalau anda ingin membagikan ke publik, biasanya ini di lakukan untuk memberitahukan uptime dari service yang anda berikan, namun juga untuk notifikasi apabila anda akan melakukan perbaikan, restart server atau lainnya terhadap service anda tersebut.

Saya biasanya melakukan ini untuk service Mastodon yang saya gunakan, apabila saya melakukan update, saya akan kirim pesan saya akan update di mastodon dan berikan link status page uptime kuma, sehingga orang tahu apabila tiba tiba Mastodon yang saya gunakan, tidak bisa di akses, dan kapan perkiraan service tersebut bisa di akses kembali.

Berbeda dengan Dashboard yang perlu login, status pages ini tidak perlu login, sehingga pesan anda akan bisa ditampilkan, selain uptime service tersebut.

Tentu saja sebaiknya server yang anda gunakan untuk service tersebut dan uptime kuma yang anda gunakan sebaiknya berbeda, sehingga apabila service tersebut down, publik bisa masih mengakses status page uptime kuma tersebut.

Caranya sangat mudah, anda tinggal setup status page, berikan nama dan masukan apa yang anda monitor. Sesudah anda buat, berikan link tersebut. Namun jangan lupa untuk meng-expose uptime kuma mengunakan Cloudflare tunnel yang sebelumnya pernah saya bahas, sehingga publik bisa akses service uptime kuma anda.

Anda bisa latihan atau mencobanya apabila anda belum install uptime-kuma di site demo yang disediakan oleh site uptime kuma yang ada di awal tulisan ini.

Apabila anda mendapatkan kesulitan, silahkan berbagi di kolom komentar dengan menjelaskan

  1. OS yang anda gunakan untuk instalasi
  2. Apa yang ingin anda lakukan
  3. Error apa yang anda dapatkan

Atau pertanyaan lainnya mengenai fitur uptime kuma ini, saya akan mencoba membantu anda sebaik yang saya bisa, karena saya sendiri masih explore apa saja yang bisa saya lakukan dengan uptime kuma ini, karena saya yakin banyak sekali yang bisa di lakukan dengannya.

Mudah mudahan artikel ini bisa berguna bagi anda dan selamat bersenang senang, salam.

Catatan kaki

  1. Graphical user interface ↩︎
  2. Local Area Network ↩︎