Comment installer Metabase Business Analytics sur Ubuntu 20.04 LTS

Metabase est un outil de business intelligence gratuit et open-source qui peut être utilisé pour rechercher des ensembles de données et afficher des informations. C’est un outil d’analyse simple et puissant qui t’aide à tirer des enseignements des données de ton entreprise sans aucune connaissance technique. Il te permet de générer des graphiques et des tableaux de bord, de poser des requêtes sans utiliser SQL et de voir des informations détaillées sur les lignes de ta base de données.

Metabase est le bon choix pour toi si tu cherches une plateforme de consultation de base de données très performante pour ton entreprise.

Dans ce tutoriel, nous allons t’expliquer comment installer Metabase sur Ubuntu 20.04 avec Nginx et Let’s Encrypt SSL.

Conditions préalables

  • Un serveur fonctionnant sous Ubuntu 20.04.
  • Un nom de domaine valide pointé avec l’IP de ton serveur.
  • Un mot de passe root est configuré sur le serveur.

Installer Java

Metabase est une application basée sur Java. Java doit donc être installé sur ton serveur. Tu peux l’installer avec la commande suivante :

apt-get install openjdk-11-jdk openjdk-11-jre -y

Après une installation réussie, tu peux vérifier la version de Java avec la commande suivante :

java -version

Tu devrais voir la sortie suivante :

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)

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Installe et configure MariaDB

Ensuite, tu dois installer le serveur de base de données MariaDB dans ton système. Tu peux l’installer en exécutant la commande suivante :

apt-get install mariadb-server -y

Une fois le serveur MariaDB installé, connecte-toi au shell MariaDB avec la commande suivante :

mysql

Une fois connecté, crée une base de données et un utilisateur pour Metabase avec la commande suivante :

MariaDB [(none)]> CREATE DATABASE metabase;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON metabase.* TO 'metabase'@'localhost' IDENTIFIED BY "password";

Ensuite, vide les privilèges et quitte le shell MariaDB avec la commande suivante :

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Télécharge Metabase

Tout d’abord, crée un répertoire pour Metabase dans le répertoire /opt avec la commande suivante :

mkdir /opt/metabase

Ensuite, change le répertoire en /opt/metabase et télécharge la dernière version de Metabase avec la commande suivante :

cd /opt/metabase
wget https://downloads.metabase.com/v0.36.2/metabase.jar

Ensuite, tu devras créer un utilisateur et un groupe distincts pour exécuter Metabase. Tu peux les créer avec la commande suivante :

addgroup --quiet --system metabase
adduser --quiet --system --ingroup metabase --no-create-home --disabled-password metabase

Ensuite, change la propriété de /opt/metabase en metabase et donne la permission appropriée avec la commande suivante :

chown -R metabase:metabase /opt/metabase
chmod -R 755 /opt/metabase

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Crée un fichier de service Systemd pour Metabase

Ensuite, tu devras créer un fichier de service systemd pour gérer le service Metabase. Tu peux le créer avec la commande suivante :

nano /etc/systemd/system/metabase.service

Ajoute les lignes suivantes :

[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

Enregistre et ferme le fichier puis recharge le démon systemd avec la commande suivante :

systemctl daemon-reload

Ensuite, démarre le service Metabase et active son démarrage au redémarrage du système avec la commande suivante :

systemctl start metabase
systemctl enable metabase

Tu peux maintenant vérifier l’état de Metabase avec la commande suivante :

systemctl status metabase

Tu devrais voir la sortie suivante :

? 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

À ce stade, Metabase est lancé et écoute sur le port 3000. Tu peux le vérifier avec la commande suivante :

netstat -tunelp | grep 3000

Tu devrais voir le résultat suivant :

tcp6       0      0 :::3000                 :::*                    LISTEN      109        35366      9650/java

Configurer Nginx comme proxy inverse pour Metabase

Ensuite, tu devras configurer Nginx comme proxy inverse pour Metabase. Tout d’abord, installe le serveur Web Nginx avec la commande suivante :

apt-get install nginx -y

Après avoir installé Nginx, crée un nouveau fichier de configuration d’hôte virtuel Nginx avec la commande suivante :

nano /etc/nginx/sites-available/metabase.conf

Ajoute les lignes suivantes :

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;
    }
}

Enregistre et ferme le fichier lorsque tu as terminé. Ensuite, active l’hôte virtuel Nginx avec la commande suivante :

ln -s /etc/nginx/sites-available/metabase.conf /etc/nginx/sites-enabled/

Ensuite, vérifie que Nginx n’a pas d’erreur de configuration avec la commande suivante :

nginx -t

Tu devrais voir la sortie suivante :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Enfin, redémarre le service Nginx pour appliquer les modifications :

systemctl restart nginx

À ce stade, Nginx est configuré pour servir Metabase sur le port 80. Tu peux maintenant passer à l’étape suivante.

Sécurise Metabase avec Let’s Encrypt

Tout d’abord, tu dois installer le client Certbot Lets Encrypt pour installer et gérer SSL pour ton domaine. Tu peux installer le client Certbot avec la commande suivante :

apt-get install python3-certbot-nginx -y

Une fois installé, sécurise le site Web de Metabase avec Let’s Encrypt SSL avec la commande suivante :

certbot --nginx -d metabase.linuxbuz.com

Il te sera demandé de fournir ton email et d’accepter les conditions de service comme indiqué ci-dessous :

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

Ensuite, choisis de rediriger ou non le trafic HTTP vers HTTPS comme indiqué ci-dessous :

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

Tape 2 et appuie sur Entrée pour installer le SSL Let’s Encrypt pour ton domaine.

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.

Maintenant, ton site Web Metabase est sécurisé avec Let’s Encrypt SSL.

Accède à l’interface Web de Metabase

Maintenant, ouvre ton navigateur Web et tape l’URL https://metabase.linuxbuz.com. Tu seras redirigé vers l’écran de bienvenue de Metabase, comme indiqué ci-dessous :

Commençons avec Metabase

Maintenant, clique sur le bouton  » Let’s get started ». Tu devrais voir l’écran suivant :

Sélectionne la langue

Sélectionne la langue de ton choix et clique sur le bouton Suivant. Tu devrais voir l’écran suivant :

Utilisateur et connexion

Indique ton nom, ton adresse e-mail, ton mot de passe et clique sur le bouton Suivant. Tu devrais voir l’écran de configuration de la base de données Metabase :

Détails de la base de données

Connexion JDBC

Indique les informations de ta base de données et clique sur le bouton Suivant. Tu devrais voir l’écran des préférences des données d’utilisation de Metabase :

Préférences d'utilisation

Active l’option de ton choix et clique sur le bouton Suivant. Tu devrais voir l’écran suivant :

Configuration terminée

Indique ton adresse e-mail et clique sur le bouton M’emmener à Metabase. Tu devrais voir le tableau de bord de Metabase dans l’écran suivant :

Tableau de bord de la Metabase

Conclusion

Félicitations ! Tu as réussi à installer Metabase avec Nginx et Let’s Encrypt SSL sur le serveur Ubuntu 20.04. Tu peux maintenant explorer Metabase à la recherche de nouvelles fonctionnalités. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...