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 bases 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
- 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. Puede 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.
Descargar Metabase
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. Puede 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.
Crear un archivo de servicio de Systemd para metabase
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:
tcp6 0 0 :::3000 :::* LISTEN 109 35366 9650/java
Configure Nginx como proxy inverso para la metabase
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/
A continuación, verifique Nginx en busca de 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.
Metabase segura con Let's Encrypt
Primero, deberá instalar el cliente Certbot Lets Encrypt para instalar y administrar SSL para su dominio. Puede instalar el cliente 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 o no redirigir 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.
Acceder a la interfaz web de Metabase
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:
Ahora, haga clic en Empecemos botón. Debería ver la siguiente pantalla:
Seleccione el idioma deseado y haga clic en Siguiente botón. Debería ver la siguiente pantalla:
Proporcione su nombre, dirección de correo electrónico, contraseña y haga clic en Siguiente botón. Debería ver la pantalla de configuración de la base de datos Metabase:
Proporcione la información de su base de datos y haga clic en Siguiente botón. Debería ver la pantalla de preferencias de datos de uso de Metabase:
Habilite la opción deseada y haga clic en Siguiente botón. Debería ver la siguiente pantalla:
Proporcione su dirección de correo electrónico y haga clic en Llévame a Metabase . Debería ver el tablero de Metabase en la siguiente pantalla:
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. Siéntase libre de preguntarme si tiene alguna pregunta.