Install Uptime-Kuma dengan Reverse Proxy pada Ubuntu 20.04 LTS

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.

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:

  1. Switch ke user yang baru saja dibuat:

    su - imonk 
  2. Download dan jalankan script installer NVM:

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
  3. Setelah itu, reload bashrc dengan perintah:

    source ~/.bashrc
  4. 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.

  5. Jalankan perintah berikut untuk install nodejs versi LTS:

    nvm install --lts
  6. 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.

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

  1. Install paket pm2 dengan perintah berikut:

    npm install pm2
  2. 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:
    enter image description here
    Seperti yang terlihat digambar bahwa aplikasi Uptime-Kuma sudah berjalan (online).

  3. Untuk cek status Uptime-Kuma bisa menjalankan perintah:

    pm2 status

    enter image description here

Sedangkan cek status aplikasi nodejs bisa menggunakan perintah berikut:

pm2 logs

enter image description here
Apabila Anda ingin melihat monitoring aplikasi nodejs secara realtime bisa menggunakan perintah:

pm2 monit

enter image description here

  1. Lalu , silakan generate service file aplikasi Uptime-Kuma dengan perintah sebagai berikut:

    pm2 startup

    Lalu akan muncul command hasil generatenya dan jalankan perintah tersebut.
    enter image description here
    enter image description here
    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:
    enter image description here

  2. 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.

  1. 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
  2. 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
  1. Reload/restart service apache2:
    sudo systemctl restart apache2

Sebelum membuat sertifikat SSL nya, pastikan alamat website Anda sudah resolved ya.

  1. Install tool certbot

    sudo apt install python3-certbot-apache

    Setelah itu, generate SSL Let's Encrypt dengan tool cerbot:

    sudo certbot --apache alamat-website

    Tunggu proses generate SSL selesai dan silakan coba akses alamat-website Anda misalnya: https://monit.imron.my.id/

  2. 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.
    enter image description here

  3. Sebagai contoh dibawah ini, saya coba tambahkan monitor lagi untuk monitoring website saya.
    enter image description here
    Berikut hasilnya:
    enter image description here

  4. 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.
    enter image description here

  5. Untuk hasilnya kurang lebih akan tampak seperti berikut pada bot_telegram:
    enter image description here
    Selain itu, Uptime-Robot juga memiliki status page seperti berikut ini:
    enter image description here

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.

Leave a Reply