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 :
Maintenant, clique sur le bouton » Let’s get started ». Tu devrais voir l’écran suivant :
Sélectionne la langue de ton choix et clique sur le bouton Suivant. Tu devrais voir l’écran suivant :
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 :
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 :
Active l’option de ton choix et clique sur le bouton Suivant. Tu devrais voir l’écran suivant :
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 :
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.