Overview
Uptime-Kuma merupakan tool monitoring opensource seperti "Uptime robot" yang ditulis dengan Nodejs. Tool monitoring ini bersifat Self-Hosted dan memiliki tampilan dashboard yang menarik menurut saya. Uptime-kuma dapat melakukan monitoring beberapa protokol seperti TCP, HTTP(s), dan Ping.
Selain itu, untuk memudahkan notifikasi bisa Anda integrasikan dengan Telegram, discord, email, slack, Ms. Teams, dll.
Pada post kali ini, saya akan share cara install Uptime-Kuma dengan reverse proxy beserta pasang SSL Let's Encrypt pada OS Ubuntu Server 20.04 LTS. Untuk cara install menggunakan docker, atau tanpa docker bisa mengikuti panduan resminya pada laman berikut.
Instalasi dan Konfigurasi
Langkah pertama, tambahkan user dan set passwordnya dengan perintah berikut:
useradd -m -s /bin/bash imonk
passwd imonk
Lalu berikan hak akses sudo pada user tersebut:
usermod -aG sudo imonk
Langkah yang kedua, install Node Version Manager (NVM). NVM adalah tool CLI untuk install multiple versi Nodejs dalam satu sistem. Selain itu, tool ini berguna untuk instal spesifik versi Nodejs sehingga memudahkan untuk development dan deployment Nodejs untuk aplikasi Anda.
Berikut tahapan instalasinya:
-
Switch ke user yang baru saja dibuat:
su - imonk
-
Download dan jalankan script installer NVM:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
-
Setelah itu, reload bashrc dengan perintah:
source ~/.bashrc
-
Verifikasi hasil install NVM:
command -v nvm
Jika berhasil, maka akan muncul "nvm". Jika tidak maka tidak akan memunculkan apa-apa.
Apabila Anda ingin eksplore file perintah tersebut bisa menggunakan bantuan flag --help.nvm --help
Langkah yang ketiga, install nodejs dengan versi >=14, git dan pm2. Karena untuk install Uptime-Kuma harus terinstall tiga service tersebut.
-
Jalankan perintah berikut untuk install nodejs versi LTS:
nvm install --lts
-
Lalu silakan verifikasi instalasi nodejs
node --version Output: v14.18.0 npm --version Output: 6.14.15
Nah, sekarang kita sudah siap untuk install aplikasi Kuma-Uptime nya.
-
Clone source code aplikasi Kuma-Uptime:
git clone https://github.com/louislam/uptime-kuma.git
Masuk ke direktori uptime-kuma dan install semua kebutuhan dengan perintah sebagai berikut:
cd uptime-kuma npm run setup
Langkah berikutnya adalah setting Uptime-Kuma dengan pm2, pm2 merupakan proses manajer untuk membantu mengelola dan menjaga aplikasi nodejs untuk terus stabil dan pm2 juga mudah untuk digunakan deployment aplikasinya. Nah, hal ini yang dapat melakukan monitor status aplikasi, log bahkan setting file service dari aplikasi tersebut.
-
Install paket pm2 dengan perintah berikut:
npm install pm2 -g
-
Apabila instalasi berhasil, silakan start untuk menjalankan aplikasi Uptime-Kuma:
pm2 start npm --name uptime-kuma -- run start-server -- --port=3001 --hostname=127.0.0.1
Apabila sudah selesai akan muncul gambar seperti berikut ini:
Seperti yang terlihat digambar bahwa aplikasi Uptime-Kuma sudah berjalan (online). -
Untuk cek status Uptime-Kuma bisa menjalankan perintah:
pm2 status
Sedangkan cek status aplikasi nodejs bisa menggunakan perintah berikut:
pm2 logs
Apabila Anda ingin melihat monitoring aplikasi nodejs secara realtime bisa menggunakan perintah:
pm2 monit
-
Lalu , silakan generate service file aplikasi Uptime-Kuma dengan perintah sebagai berikut:
pm2 startup
Lalu akan muncul command hasil generatenya dan jalankan perintah tersebut.
Setelah itu, enable service Uptime-Kuma agar setelah VM mengalami reboot, service bisa aktif secara otomatis dan pastikan status dari service Uptime-Kuma sudah running seperti pada gambar berikut:
-
Lalu, simpan state Uptime-Kuma
pm2 save
Nah sekarang, kita sudah berhasil instal aplikasi Uptime-Kuma nya. Selanjutnya kita setup Reverse Proxynya, sebagai contoh disini kita menggunakan apache sebagai webservernya. Untuk menggunakan webserver yang lainnya bisa merujuk ke link official Uptime-Kuma.
-
Install apache pada Ubuntu server Anda, lalu aktifkan module-modulnya:
sudo apt install apache2 sudo a2enmod ssl proxy proxy_ajp proxy_wstunnel proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html
-
Lalu, buat konfigurasi virtualhostnya:
sudo vim /etc/apache2/sites-available/uptime-kuma.conf
<VirtualHost *:80>
ServerName alamat-website
ProxyPass / http://localhost:3001/
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://localhost:3001/$1" [P,L]
</VirtualHost>
Simpan hasil konfigurasi dan aktifkan file virtualhost tersebut.
sudo a2ensite uptime-kuma
- Reload/restart service apache2:
sudo systemctl restart apache2
Install SSL pada Uptime Kuma
Sebelum membuat sertifikat SSL nya, pastikan alamat website Anda sudah resolved ya.
-
Install tool certbot
sudo apt install python3-certbot-apache
Setelah itu, generate SSL Let's Encrypt dengan tool cerbot:
sudo certbot --apache -d alamat-website
Tunggu proses generate SSL selesai dan silakan coba akses alamat-website Anda misalnya:
https://monit.imron.my.id/
-
Jika berhasil, nantinya Anda harus setup user dan password login ke aplikasi Uptime-Kumanya dan silakan login.
Berikut tampilan dashboard dari Uptime-Kuma yang sudah saya tambahkan monitor sebelumnya.
-
Sebagai contoh dibawah ini, saya coba tambahkan monitor lagi untuk monitoring website saya.
Berikut hasilnya:
Menambahkan Notifikasi
- Selain itu, Anda perlu setup notification untuk memudahkan Anda dalam monitoring resource VM/Website/Email Anda di Uptime-Robot. Disini saya coba contohkan setup notification menggunakan telegram.
- Untuk hasilnya kurang lebih akan tampak seperti berikut pada bot_telegram:
Selain itu, Uptime-Robot juga memiliki status page seperti berikut ini:
Kesimpulan
Nah, itulah cara monitoring resource Anda baik menggunakan parameter protokol Ping, Https(s), Port, dll dengan tool Uptime-Kuma. Instalasinya juga bisa disesuaikan dengan kebutuhan Anda, seperti menggunakan docker, tanpa docker bahkan menggunakan reverse proxy seperti post kali ini.
Sekian dan terima kasih.