GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Kuma - Alternatif Robot Uptime yang Dihosting Sendiri di Ubuntu 20.04

Uptime-Kuma adalah alat pemantauan sumber terbuka seperti "Robot Uptime" yang ditulis dalam Nodejs. Ini adalah alat pemantauan yang dihosting sendiri dengan dasbor cantik yang mewah dan mendukung beberapa metode notifikasi. Uptime-Kuma akan memantau waktu aktif host atau server melalui protokol HTTP(s), TCP, dan Ping. Jika host tidak dapat mengakses protokol ini dalam interval waktu tersebut, host uptime akan mengirimkan pemberitahuan melalui Webhooks, Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), dll.

Dalam panduan ini, Anda akan belajar cara menginstal Uptime-Kuma di server Ubuntu dan menggunakan server web Apache sebagai proxy terbalik dengan Sertifikat SSL Let's Encrypt gratis di depannya. Selama penginstalan, Anda juga akan mempelajari tentang penginstalan nodejs melalui nvm (pengelola versi node).

Prasyarat

  • Server Ubuntu 20.04.
  • Pengguna dengan hak akses root. Anda akan menggunakan pengguna ini untuk menginstal paket baru dan mengubah pengaturan sistem.

Menambahkan Pengguna Baru

Hal pertama, Anda akan menambahkan pengguna baru ke sistem Ubuntu. Untuk alasan keamanan, aplikasi Uptime-Kuma akan berjalan sebagai pengguna non-root.

1. Tambahkan pengguna baru dengan menjalankan perintah di bawah ini. Untuk contoh ini, kami akan menggunakan nama pengguna "johndoe ". pastikan untuk mengganti nama pengguna dengan milik Anda.

useradd -m -s /bin/bash johndoe

Opsi yang harus Anda ketahui:

  • -m =secara otomatis membuat direktori home untuk nama pengguna, yang akan tersedia di bawah direktori '/home'.
  • -s =menentukan jalur shell untuk pengguna, kebanyakan Linux memiliki shell `/bin/bash.

2. Setelah itu, jalankan perintah berikut untuk mengatur kata sandi untuk pengguna "johndoe".

passwd johndoe

Sekarang ketik kata sandi baru yang kuat dan ulangi, lalu tekan "Enter " untuk mengonfirmasi.

3. Selanjutnya, tambahkan pengguna "johndoe" ke grup "sudo " menggunakan perintah di bawah ini.

usermod -aG sudo johndoe

Dengan menambahkan pengguna ke "sudo " grup, ini akan memungkinkan pengguna untuk menjalankan "sudo su" perintah dan dapatkan hak akses root.

Instal NVM (Pengelola Versi Node)

NVM atau Node Version Manager adalah alat baris perintah untuk menginstal beberapa versi nodejs pada satu sistem. Alat ini memungkinkan Anda untuk menginstal versi nodejs tertentu untuk aplikasi Anda, membuat lingkungan pengembangan dan penerapan Anda menjadi fleksibel.

Untuk fase ini, Anda akan menginstal nvm di bawah pengguna non-root "johndoe".

1. Dari shell root Anda, login ke pengguna "johndoe" menggunakan perintah berikut.

su - johndoe

2. Unduh dan jalankan skrip penginstal nvm sebagai berikut.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

3. Setelah berhasil, muat ulang lingkungan bash menggunakan perintah di bawah ini.

source ~/.bashrc

4. Sekarang verifikasi "nvm " instalasi dengan menjalankan perintah di bawah ini.

command -v nvm

Jika instalasi Anda berhasil, Anda akan melihat hasil "nvm ". Jika tidak, Anda tidak akan melihat apa pun atau hasil kosong.

Sekarang jalankan perintah nvm seperti di bawah ini.

nvm --help

Dan Anda akan melihat halaman bantuan manual dari perintah nvm.

Node Version Manager (v0.38.0)

Note: <version> refers to any version-like string nvm understands. This includes:
  - full or partial version numbers, starting with an optional "v" (0.10, v0.1.2, v1)
  - default (built-in) aliases: node, stable, unstable, iojs, system
  - custom aliases you define with `nvm alias foo`

 Any options that produce colorized output should respect the `--no-colors` option.

Usage:
  nvm --help                                  Show this message
    --no-colors                               Suppress colored output

.....

Note:
  to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)

Instal Versi Nodejs LTS

Untuk menginstal aplikasi uptime-Kuma, Anda perlu menginstal nodejs>=14 , git , dan pm2 . Untuk titik ini, Anda akan menginstal versi terbaru nodejs LTS menggunakan perintah nvm.

1. Jalankan perintah nvm di bawah ini untuk menginstal nodejs LTS versi terbaru.

nvm install --lts

Setelah instalasi berhasil, Anda akan melihat output yang sama seperti di bawah ini.

Versi nodejs pertama yang Anda instal menjadi versi default di lingkungan pengembangan Anda.

2. Sekarang jalankan perintah berikut untuk memverifikasi instalasi nodejs.

node --version
npm --version

Jika instalasi Anda berhasil, Anda akan melihat output seperti di bawah ini.

# nodejs version
v14.17.4

# npm version
6.14.14

Unduh dan Instal Uptime-Kuma

Pada titik ini, Anda siap untuk menginstal aplikasi Uptime-Kuma.

1. Kloning kode sumber uptime-Kuma menggunakan perintah git di bawah ini.

git clone https://github.com/louislam/uptime-kuma.git

2. Setelah itu, ubah direktori kerja menjadi "uptime-kuma/ " dan jalankan perintah npm untuk menginstal semua paket yang diperlukan untuk uptime-kuma.

cd uptime-kuma/
npm run setup

Dan Anda akan melihat output serupa seperti di bawah ini.

Menyiapkan Uptime-Kuma dengan pm2

Apa itu pm2? Ini adalah manajer proses nodejs yang akan membantu Anda mengelola dan menjaga aplikasi nodejs Anda tetap hidup selamanya. pm2 memiliki beberapa fitur bawaan yang memudahkan penerapan aplikasi nodejs, memungkinkan Anda memantau status aplikasi, mencatat, dan bahkan menyiapkan file layanan untuk aplikasi Anda.

1. Instal paket pm2 menggunakan perintah npm di bawah ini.

npm install pm2

2. Setelah instalasi selesai, jalankan perintah pm2 di bawah ini untuk memulai aplikasi uptime-kuma.

pm2 start npm --name uptime-kuma -- run start-server -- --port=3001 --hostname=127.0.0.1

Dan Anda akan melihat pesan output seperti di bawah ini.

Seperti yang terlihat pada gambar, nama aplikasi "uptime-kuma " sedang berjalan dengan status "online ".

3. Untuk memeriksa status aplikasi Anda di pm2, jalankan perintah berikut di bawah ini.

Periksa status aplikasi nodejs.

pm2 status

Periksa log aplikasi nodejs.

pm2 logs

Pemantauan aplikasi nodejs waktu nyata.

pm2 monit

4. Selanjutnya, jalankan perintah pm2 berikut untuk menghasilkan file layanan untuk aplikasi uptime-kuma.

pm2 startup

Setelah itu, Anda harus menjalankan perintah seperti yang diperintahkan pada output.

sudo env PATH=$PATH:/home/johndoe/.nvm/versions/node/v14.17.4/bin /home/johndoe/.nvm/versions/node/v14.17.4/lib/node_modules/pm2/bin/pm2 startup systemd -u johndoe --hp /home/johndoe

Pastikan untuk menggunakan "sudo " perintah dan masukkan kata sandi yang tepat bagi pengguna Anda untuk mendapatkan hak akses root.

Setelah perintah selesai, Anda akan melihat output berikut.

Seperti yang terlihat pada tangkapan layar, pm2 menghasilkan layanan systemd berdasarkan pengguna, untuk contoh ini adalah "pm2-johndoe.service ".

Sekarang jalankan perintah berikut untuk menghasilkan dan menyimpan status aplikasi uptime-kuma. Perintah ini penting untuk membuat aplikasi uptime-kuma selalu berjalan di latar belakang, bahkan setelah sistem boot.

pm2 save

5. Untuk memverifikasi layanan 'pm2-johndoe' , jalankan perintah di bawah ini.

sudo systemctl is-enabled pm2-johndoe

Anda akan melihat output `diaktifkan `, yang berarti aplikasi uptime-kuma akan otomatis berjalan setelah sistem boot.

Selain itu, Anda dapat mencoba me-reboot sistem Anda dan masuk kembali ke server, lalu periksa layanan uptime-kuma.

sudo systemctl status pm2-johndoe

Dan Anda akan melihat output serupa seperti di bawah ini.

? pm2-johndoe.service - PM2 process manager
     Loaded: loaded (/etc/systemd/system/pm2-johndoe.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-08-10 01:52:37 UTC; 3min 57s ago
       Docs: https://pm2.keymetrics.io/
   Main PID: 745 (PM2 v5.1.0: God)
      Tasks: 34 (limit: 2343)
     Memory: 120.4M
     CGroup: /system.slice/pm2-johndoe.service
             ??745 PM2 v5.1.0: God Daemon (/home/johndoe/.pm2)
             ??772 npm
             ??873 sh -c node server/server.js "--port=3001" "--hostname=127.0.0.1"
             ??874 node server/server.js --port=3001 --hostname=127.0.0.1

Aug 10 01:52:36 ubuntu64 pm2[633]: [PM2] Spawning PM2 daemon with pm2_home=/home/johndoe/.pm2
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] PM2 Successfully daemonized
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] Resurrecting
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] Restoring processes located in /home/johndoe/.pm2/dump.pm2
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] Process /home/johndoe/.nvm/versions/node/v14.17.4/bin/npm restored

"pm2-johndoe.service " aktif dan berjalan saat boot sistem.

Siapkan Apache sebagai Proxy Terbalik

Untuk panduan ini, Anda akan menginstal dan mengonfigurasi server web Apache sebagai proxy terbalik untuk aplikasi uptime-Kuma.

1. Jalankan perintah berikut untuk menginstal paket server web apache.

sudo apt install apache2

Ketik "y" dan tekan "Enter " untuk menginstal server web apache.

2. Setelah itu, aktifkan beberapa modul apache menggunakan perintah di bawah ini.

sudo a2enmod ssl proxy proxy_ajp proxy_wstunnel proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html

3. Selanjutnya, buat konfigurasi virtual-host baru 'uptime-kuma.conf ' menggunakan perintah editor nano di bawah ini.

sudo nano /etc/apache2/sites-available/uptime-kuma.conf

Tempel konfigurasi berikut ke shell terminal Anda dan ubah nama domain  "uptime.example.net " dengan domain Anda seperti "domain.com ".

<VirtualHost *:80>
  ServerName uptime.example.net

  ProxyPass / http://localhost:3001/
  RewriteEngine on
  RewriteCond %{HTTP:Upgrade} websocket [NC]
  RewriteCond %{HTTP:Connection} upgrade [NC]
  RewriteRule ^/?(.*) "ws://localhost:3001/$1" [P,L]
</VirtualHost>

Tekan "Ctrl+x " dan ketik "Y " untuk menyimpan konfigurasi.

4. Sekarang aktifkan konfigurasi virtual-host apache "uptime-kuma" menggunakan perintah di bawah ini.

sudo a2ensite uptime-kuma

Setelah itu, jalankan perintah berikut untuk memverifikasi konfigurasi apache dan pastikan Anda tidak memiliki kesalahan.

sudo apachectl configtest

5. Sekarang terapkan konfigurasi baru dengan me-restart layanan apache menggunakan perintah di bawah ini.

sudo systemctl restart apache2

Mengamankan Uptime-kuma dengan SSL Letsencrypt

Untuk mengamankan akses Uptime-Kuma, Anda akan menyiapkan SSL dari Letsencrypt untuk server web apache.

1. Pertama-tama, instal alat certbot dengan menjalankan perintah berikut.

sudo apt install python3-certbot-apache

Ketik "y " dan tekan "Enter " untuk memulai penginstalan.

2. Setelah instalasi selesai, buat SSL letsencrypt menggunakan perintah certbot seperti di bawah ini.

sudo certbot --apache yourdomain.com

Ketik alamat email Anda untuk mendaftar ke Letsencrypt dan tekan "Enter " untuk melanjutkan. Letsencrypt akan mengirimkan email ke alamat email Anda setiap kali sertifikat SSL Anda kedaluwarsa.

```
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

Untuk TOS (Ketentuan Layanan) Letsencrypt, ketik "A " untuk menyetujui dan tekan "Enter " untuk melanjutkan.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

Untuk berbagi email dengan EFF (Electronic Frontier Foundation), Anda dapat mengetik "Y " untuk ya dan "N " untuk tidak. Untuk contoh ini, kami tidak akan membagikan alamat email dengan EFF.

Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N

Sekarang alat certbot akan menghasilkan SSL Letsencrypt untuk nama domain Uptime-Kuma. Juga, itu akan menambahkan beberapa konfigurasi tambahan untuk konfigurasi virtual host apache.

Anda akan diminta untuk mengatur auto-redirect dari HTTP ke HTTPS. Ketik nomor "2" untuk menyiapkan Apache auto-redirect HTTP ke HTTPS dan tekan "Enter ".

```
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Setelah proses penerapan berhasil, Anda akan melihat output serupa seperti di bawah ini.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://uptime.example.net

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=uptime.example.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/uptime.example.net/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/uptime.example.net/privkey.pem
   Your cert will expire on 2021-10-10. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Verifikasi Instalasi Uptime-Kuma

1. Buka browser web Anda dan ketik instalasi URL Uptime-Kuma pada bilah alamat.

https://uptime.example.net/

Anda akan dialihkan ke koneksi aman HTTPS.

2. Pada halaman pertama, buat pengguna admin baru untuk Uptime-kuma. Ketik pengguna dan sandi admin Anda, lalu klik tombol "Buat " tombol

3. Setelah itu, login dengan username dan password baru Anda, lalu klik tombol "Login tombol ".

Sekarang Anda akan melihat dasbor uptime-kuma.

4. Untuk menambahkan host baru ke monitor, klik tombol "Tambahkan Monitor Baru ".

5. Untuk contoh ini, Anda akan memantau situs web, jadi pilih "Jenis Monitor " sebagai "HTTP ", ketik alamat URL situs web, klik "Setup Notification " untuk dukungan notifikasi, lalu anda klik tombol "Simpan " di bagian bawah halaman.

6.Sekarang Anda akan diarahkan ke dasbor Kuma uptime dan Anda akan melihat host Anda di halaman dasbor.

Di bawah ini adalah contoh lain setelah menambahkan jenis baru "TCP/IP " dengan port tertutup, dan hasilnya adalah "ENCONNREFUSED " atau kesalahan koneksi karena port ditolak/ditutup.

Kesimpulan

Selamat! Anda telah berhasil menginstal Uptime-Kuma dengan server web Apache sebagai proxy terbalik dan mengamankan penerapan Uptime-Kuma dengan SSL Letsencrypt. Untuk fase selanjutnya, Anda dapat menambahkan host Anda dan mengaktifkan notifikasi untuk setiap insiden down.


Ubuntu
  1. Cara Menginstal Redis di Ubuntu 18.04

  2. Anggur 6.9 Dirilis! Cara Menginstal di Ubuntu 21.04, 20.04

  3. Cara Menggunakan Perintah Uptime Di Ubuntu Linux

  1. Cara menginstal X2Goserver di Ubuntu 14.04 sebagai alternatif untuk VNC

  2. Cara Menginstal SonarQube di Ubuntu 18.04 LTS

  3. Cara Menginstal Perlindungan Anti-Malware ClamAV di Ubuntu 20.04

  1. Cara Menginstal dan Menggunakan Perintah Curl di Ubuntu 20.04

  2. Cara Menginstal Pinta di Ubuntu 20.04 LTS

  3. Cara Menginstal MyPaint di Ubuntu 20.04 LTS