Cómo instalar Metabase Business Analytics en Ubuntu 20.04 LTS

Comencemos con Metabase

Metabase es una herramienta de inteligencia empresarial gratuita y de código abierto que se puede utilizar para buscar conjuntos de datos y mostrar información. Es una herramienta de análisis simple y poderosa que lo ayuda a aprender de los datos de su empresa sin ningún conocimiento técnico. Le permite generar gráficos y paneles, hacer consultas sin usar SQL y ver información detallada sobre las filas en su base de datos.

Metabase es la opción correcta para usted si está buscando una plataforma de búsqueda de base de datos de alto rendimiento para su negocio.

En este tutorial, explicaremos cómo instalar Metabase en Ubuntu 20.04 con Nginx y Let’s Encrypt SSL.

requisitos previos

  • Un servidor con Ubuntu 20.04.
  • Un nombre de dominio válido apuntado con la IP de su servidor.
  • Se configura una contraseña de root en el servidor.

Instalar Java

Metabase es una aplicación basada en Java. Entonces Java debe estar instalado en su servidor. Puedes instalarlo con el siguiente comando:

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

Después de una instalación exitosa, puede verificar la versión de Java con el siguiente comando:

java -version

Debería ver el siguiente resultado:

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 vez que haya terminado, puede continuar con el siguiente paso.

Instalar y configurar MariaDB

A continuación, deberá instalar el servidor de base de datos MariaDB en su sistema. Puede instalarlo ejecutando el siguiente comando:

apt-get install mariadb-server -y

Una vez que se haya instalado el servidor de MariaDB, inicie sesión en el shell de MariaDB con el siguiente comando:

mysql

Una vez que inicie sesión, cree una base de datos y un usuario para Metabase con el siguiente comando:

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

A continuación, elimine los privilegios y salga del shell de MariaDB con el siguiente comando:

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

Una vez que haya terminado, puede continuar con el siguiente paso.

Primero, cree un directorio para Metabase dentro del directorio /opt con el siguiente comando:

mkdir /opt/metabase

A continuación, cambie el directorio a /opt/metabase y descargue la última versión de Metabase con el siguiente comando:

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

A continuación, deberá crear un usuario y un grupo separados para ejecutar Metabase. Puedes crearlos con el siguiente comando:

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

A continuación, cambie la propiedad de /opt/mebase a metabase y otorgue el permiso adecuado con el siguiente comando:

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

Una vez que haya terminado, puede continuar con el siguiente paso.

A continuación, deberá crear un archivo de servicio systemd para administrar el servicio Metabase. Puedes crearlo con el siguiente comando:

nano /etc/systemd/system/metabase.service

Agregue las siguientes líneas:

[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

Guarde y cierre el archivo, luego vuelva a cargar el demonio systemd con el siguiente comando:

systemctl daemon-reload

A continuación, inicie el servicio Metabase y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start metabase
systemctl enable metabase

Ahora puede verificar el estado de Metabase con el siguiente comando:

systemctl status metabase

Debería ver el siguiente resultado:

? 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

En este punto, Metabase se inicia y escucha en el puerto 3000. Puede verificarlo con el siguiente comando:

netstat -tunelp | grep 3000

Debería ver el siguiente resultado: Anuncio

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

A continuación, deberá configurar Nginx como un proxy inverso para Metabase. Primero, instale el servidor web Nginx con el siguiente comando:

apt-get install nginx -y

Después de instalar Nginx, cree un nuevo archivo de configuración de host virtual de Nginx con el siguiente comando:

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

Agregue las siguientes líneas:

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

Guarde y cierre el archivo cuando haya terminado. Luego, active el host virtual Nginx con el siguiente comando:

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

Luego, verifique el Nginx para cualquier error de configuración con el siguiente comando:

nginx -t

Debería ver el siguiente resultado:

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

Finalmente, reinicie el servicio Nginx para aplicar los cambios:

systemctl restart nginx

En este punto, Nginx está configurado para servir Metabase en el puerto 80. Ahora puede continuar con el siguiente paso.

Primero, deberá instalar el cliente Certbot Lets Encrypt para instalar y administrar SSL para su dominio. Puede instalar el cliente de Certbot con el siguiente comando:

apt-get install python3-certbot-nginx -y

Una vez instalado, asegure el sitio web de Metabase con Let’s Encrypt SSL con el siguiente comando:

certbot --nginx -d metabase.linuxbuz.com

Se le pedirá que proporcione su correo electrónico y acepte los términos de servicio como se muestra a continuación:

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

A continuación, elija si desea redirigir o no el tráfico HTTP a HTTPS como se muestra a continuación:

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

Escriba 2 y presione Entrar para instalar Let’s Encrypt SSL para su 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.

Ahora, su sitio web Metabase está protegido con Let’s Encrypt SSL.

Ahora, abra su navegador web y escriba la URL https://mebase.linuxbuz.com. Será redirigido a la pantalla de bienvenida de Metabase como se muestra a continuación:

Comencemos con Metabase

Ahora, haga clic en el Empecemos botón. Debería ver la siguiente pantalla:

Seleccione el idioma

Seleccione el idioma deseado y haga clic en el próximo botón. Debería ver la siguiente pantalla:

Usuario e inicio de sesión

Proporcione su nombre, dirección de correo electrónico, contraseña y haga clic en el próximo botón. Debería ver la pantalla de configuración de la base de datos Metabase:

Detalles de la base de datos

Conexión JDBC

Proporcione la información de su base de datos y haga clic en el próximo botón. Debería ver la pantalla de preferencias de datos de uso de Metabase:

Preferencias de uso

Habilite la opción deseada y haga clic en el próximo botón. Debería ver la siguiente pantalla:

Configuración finalizada

Proporcione su dirección de correo electrónico y haga clic en el Llévame a Metabase. Debería ver el tablero de Metabase en la siguiente pantalla:

Panel de metabase

Conclusión

¡Felicidades! Ha instalado correctamente Metabase con Nginx y Let’s Encrypt SSL en el servidor Ubuntu 20.04. Ahora puede explorar la metabase en busca de nuevas funciones. No dude en preguntarme si tiene alguna pregunta.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *