Metabase è uno strumento di business intelligence gratuito e open source che può essere utilizzato per cercare set di dati e visualizzare informazioni. È uno strumento di analisi semplice e potente che ti aiuta a imparare dai dati della tua azienda senza alcuna conoscenza tecnica. Ti consente di generare grafici e dashboard, porre query senza utilizzare SQL e visualizzare informazioni dettagliate sulle righe nel tuo database.
Metabase è la scelta giusta per te se stai cercando una piattaforma di ricerca nel database ad alte prestazioni per la tua azienda.
In questo tutorial spiegheremo come installare Metabase su Ubuntu 20.04 con Nginx e Let's Encrypt SSL.
Prerequisiti
- Un server che esegue Ubuntu 20.04.
- Un nome di dominio valido puntato all'IP del tuo server.
- Una password di root è configurata sul server.
Installa Java
Metabase è un'applicazione basata su Java. Quindi Java deve essere installato nel tuo server. Puoi installarlo con il seguente comando:
apt-get install openjdk-11-jdk openjdk-11-jre -y
Al termine dell'installazione, è possibile verificare la versione Java con il seguente comando:
java -version
Dovresti vedere il seguente output:
openjdk version "11.0.8" 2020-07-14 OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04) OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)
Una volta terminato, puoi procedere al passaggio successivo.
Installa e configura MariaDB
Successivamente, dovrai installare il server di database MariaDB nel tuo sistema. Puoi installarlo eseguendo il seguente comando:
apt-get install mariadb-server -y
Una volta installato il server MariaDB, accedi alla shell MariaDB con il seguente comando:
mysql
Una volta effettuato l'accesso, crea un database e un utente per Metabase con il seguente comando:
MariaDB [(none)]> CREATE DATABASE metabase;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON metabase.* TO 'metabase'@'localhost' IDENTIFIED BY "password";
Quindi, svuota i privilegi ed esci dalla shell MariaDB con il seguente comando:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Una volta terminato, puoi procedere al passaggio successivo.
Scarica metabase
Innanzitutto, crea una directory per Metabase all'interno della directory /opt con il seguente comando:
mkdir /opt/metabase
Quindi, cambia la directory in /opt/metabase e scarica l'ultima versione di Metabase con il seguente comando:
cd /opt/metabase
wget https://downloads.metabase.com/v0.36.2/metabase.jar
Successivamente, dovrai creare un utente e un gruppo separati per eseguire Metabase. Puoi crearli con il seguente comando:
addgroup --quiet --system metabase
adduser --quiet --system --ingroup metabase --no-create-home --disabled-password metabase
Quindi, cambia la proprietà di /opt/metabase in metabase e concedi l'autorizzazione adeguata con il seguente comando:
chown -R metabase:metabase /opt/metabase
chmod -R 755 /opt/metabase
Una volta terminato, puoi procedere al passaggio successivo.
Crea un file di servizio Systemd per Metabase
Successivamente, dovrai creare un file di servizio systemd per gestire il servizio Metabase. Puoi crearlo con il seguente comando:
nano /etc/systemd/system/metabase.service
Aggiungi le seguenti righe:
[Unit] Description=Metabase server [Service] WorkingDirectory=/opt/metabase/ ExecStart=/usr/bin/java -jar /opt/metabase/metabase.jar User=metabase Type=simple Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target
Salva e chiudi il file, quindi ricarica il demone systemd con il seguente comando:
systemctl daemon-reload
Quindi, avvia il servizio Metabase e abilitalo all'avvio al riavvio del sistema con il seguente comando:
systemctl start metabase
systemctl enable metabase
Ora puoi verificare lo stato di Metabase con il seguente comando:
systemctl status metabase
Dovresti vedere il seguente output:
? metabase.service - Metabase server Loaded: loaded (/etc/systemd/system/metabase.service; disabled; vendor preset: enabled) Active: active (running) since Sat 2020-08-01 10:14:02 UTC; 12s ago Main PID: 9650 (java) Tasks: 18 (limit: 2353) Memory: 150.2M CGroup: /system.slice/metabase.service ??9650 /usr/bin/java -jar /opt/metabase/metabase.jar Aug 01 10:14:02 ubuntu2004 systemd[1]: Started Metabase server. Aug 01 10:14:05 ubuntu2004 java[9650]: 08-01 10:14:05 INFO metabase.util :: Loading Metabase... Aug 01 10:14:06 ubuntu2004 java[9650]: 08-01 10:14:06 INFO metabase.util :: Maximum memory available to JVM: 498.0 MB
A questo punto Metabase è avviato ed è in ascolto sulla porta 3000. Puoi verificarlo con il seguente comando:
netstat -tunelp | grep 3000
Dovresti vedere il seguente output:
tcp6 0 0 :::3000 :::* LISTEN 109 35366 9650/java
Configura Nginx come proxy inverso per Metabase
Successivamente, dovrai configurare Nginx come proxy inverso per Metabase. Innanzitutto, installa il server web Nginx con il seguente comando:
apt-get install nginx -y
Dopo aver installato Nginx, crea un nuovo file di configurazione dell'host virtuale Nginx con il seguente comando:
nano /etc/nginx/sites-available/metabase.conf
Aggiungi le seguenti righe:
upstream metabase { server 127.0.0.1:3000; } server { listen 80; server_name metabase.linuxbuz.com; access_log /var/log/nginx/metabase.linuxbuz.com-access.log; error_log /var/log/nginx/metabase.linuxbuz.com-error.log; location / { proxy_pass http://metabase/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header X-Forward-Proto http; proxy_set_header X-Nginx-Proxy true; proxy_redirect off; } }
Salva e chiudi il file quando hai finito. Quindi, attiva l'host virtuale Nginx con il seguente comando:
ln -s /etc/nginx/sites-available/metabase.conf /etc/nginx/sites-enabled/
Quindi, verifica Nginx per eventuali errori di configurazione con il seguente comando:
nginx -t
Dovresti vedere il seguente output:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Infine, riavvia il servizio Nginx per applicare le modifiche:
systemctl restart nginx
A questo punto, Nginx è configurato per servire Metabase sulla porta 80. Ora puoi procedere al passaggio successivo.
Metabase sicura con Let's Encrypt
Innanzitutto, dovrai installare il client Certbot Lets Encrypt per installare e gestire SSL per il tuo dominio. Puoi installare il client Certbot con il seguente comando:
apt-get install python3-certbot-nginx -y
Una volta installato, proteggi il sito Web Metabase con Let's Encrypt SSL con il seguente comando:
certbot --nginx -d metabase.linuxbuz.com
Ti verrà chiesto di fornire la tua email e di accettare i termini di servizio come mostrato di seguito:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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: Y Obtaining a new certificate Performing the following challenges: http-01 challenge for metabase.linuxbuz.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/metabase.conf
Quindi, scegli se reindirizzare o meno il traffico HTTP su HTTPS come mostrato di seguito:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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
Digita 2 e premi Invio per installare Let's Encrypt SSL per il tuo dominio.
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/metabase.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://metabase.linuxbuz.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=metabase.linuxbuz.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/metabase.linuxbuz.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/metabase.linuxbuz.com/privkey.pem Your cert will expire on 2020-10-30. 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.
Ora, il tuo sito Web Metabase è protetto con Let's Encrypt SSL.
Accedi all'interfaccia Web della metabase
Ora apri il tuo browser web e digita l'URL https://metabase.linuxbuz.com. Verrai reindirizzato alla schermata di benvenuto di Metabase come mostrato di seguito:
Ora, fai clic su Iniziamo pulsante. Dovresti vedere la seguente schermata:
Seleziona la lingua desiderata e fai clic su Avanti pulsante. Dovresti vedere la seguente schermata:
Fornisci il tuo nome, indirizzo email, password e fai clic su Avanti pulsante. Dovresti vedere la schermata di configurazione del database Metabase:
Fornisci le informazioni sul database e fai clic su Avanti pulsante. Dovresti vedere la schermata delle preferenze dei dati di utilizzo della metabase:
Abilita l'opzione desiderata e fai clic su Avanti pulsante. Dovresti vedere la seguente schermata:
Fornisci il tuo indirizzo email e fai clic su Portami a Metabase . Dovresti vedere il dashboard Metabase nella schermata seguente:
Conclusione
Congratulazioni! hai installato correttamente Metabase con Nginx e Let's Encrypt SSL sul server Ubuntu 20.04. Ora puoi esplorare la Metabase per nuove funzionalità. Sentiti libero di chiedermi se hai domande.