Home » Passo a Passo para Instalar o Metabase no Ubuntu 20.04 com Proxy Reverso Nginx

Passo a Passo para Instalar o Metabase no Ubuntu 20.04 com Proxy Reverso Nginx

Metabase no Ubuntu

Metabase é uma ferramenta de análise simples e poderosa que permite aprender e tomar decisões a apartir dos dados de sua sempresa sem a necessidade de conhecimento técnico ou o desenvolvimento de aplicação especifica. Ele funciona basicamente em perguntas que você faz e ele organiza os dados em graficos e relatorios conforme você desejar.

Ele tem suporte a se conectar em diversos tipos de fontes de dados, incluindo MySQL, PostgreSQL, NoSQL (como MongoDB), serviços de banco de dados em nuvem como Amazon Redshift, Google BigQuery e até se conectar ao Google Analytics.

Neste tutorial, irei mostrar como instalar o Metabase no Ubuntu 20.04 como serviço e com o Nginx para acesso web.

Pré-requisitos

Para seguir este tutorial, você precisará de:

Servidor Ubuntu 20.04 configurado, você pode serguir este guia de configuração inicial do servidor, incluindo privilégios de usuário não root sudo.

Passo 1 - Instalando o Java

Primeiro, atualize o índice do pacote apt:

sudo apt update

Para executar o arquivo jar da Metabase, você irá precisar ter o Java instalado em seu servidor. Atualmente, o Metabase requer Java 8 ou superior e funcionará no OpenJDK ou no Oracle JRE.

Sendo assim, vamos instalar o Java OpenJDK digitando o comando:

sudo apt install openjdk-11-jdk openjdk-11-jre

Assim que a instalação for concluída, verifique a versão do java com o comando abaixo:

java --version

Você verá uma saída semelhante a esta:

:::output
openjdk 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)
:::

Passo 2 - Instalando o servidor de banco de dados (MariaDB)

Neste artigo iremos instalar o servidor de banco de dados MariaDB. Se você já tiver o servidor de banco de dados instalado, você pode pular este passo.

Se preferir utilizar o MySQL Community, tenho aqui o artigo de Como Instalar o MySQL no Ubuntu 20.04

Instale o servidor de banco de dados MariaDB usando o comando apt abaixo:

sudo apt install mariadb-server

Depois de completar a instalação, inicie o serviço MariaDB e adicione-o à inicialização.

sudo systemctl start mariadb
sudo systemctl enable mariadb

E o serviço MariaDB está instalado e funcionando.

A instalação do MariaDB vem com um script chamado mysql_secure_installation para ser executado após a instalação e para definir algumas configurações de segurança importantes e a senha de root.

sudo mysql_secure_installation

A instalação do MariaDB vem com um script chamado mysql_secure_installation para ser executado após a instalação e para definir algumas configurações de segurança importantes.

Ao executar este comando, você será questionado sobre sua senha de root, mas se você ainda não modificou, você deve deixar em branco.

Na próxima pergunta do prompt, será para definir sua senha para o usuário root do MariaDB. O script também solicitará que você remova o usuário anônimo, restrinja o acesso do usuário root ao host local e remova o banco de dados de teste. Para essas perguntas, você deve responder ==Y==

Passo 3 - Criando o banco de dados e usuário

Agora que você instalou todos os pacotes necessários para o funcionamento do Metabase vamos criar um banco de dados em branco para o Metabase e configurar o usuário do MariaDB para acessar esta base de dados.

Faça o login no shell do MySQL usando o comando abaixo:

mysql -u root -p

Em seguida, crie um banco de dados chamado metabase:

CREATE DATABASE metabase;

Crie um usuário de banco de dados chamado metabase com uma nova senha:

CREATE USER 'metabase_user'@'localhost' IDENTIFIED BY 'Strong_Password';

Em seguida, conceda ao usuário acesso total ao banco de dados criado para o localhost:

GRANT ALL ON metabase.* TO 'metabase_user'@'localhost' WITH GRANT OPTION;

Finalmente, salve suas alterações e saia.

FLUSH PRIVILEGES;
EXIT;

Passo 4 - Instalando Metabase

Agora que o Java e servidor de banco de dados está instalado, vamos instalar o Metabase de seu repositório oficial.
No momento em que este artigo foi escrito, a versão erá 0.36.7.

Vamos fazer o download do arquivo do metabase e coloca-lo no diretório que escolhemos para instala-lo /home/metabase

sudo mkdir /home/metabase
cd /home/metabase
wget https://downloads.metabase.com/v0.36.7/metabase.jar

Por razões de segurança, queremos que o Metabase seja executado como um usuário sem privilégios. Chamaremos o usuário simplesmente de metabase. Além disso, criaremos os arquivos de que precisaremos mais tarde para registrar e configurar o Metabase, e aplicaremos as configurações de segurança corretas para o nosso usuário sem privilégios.

sudo groupadd -r metabase
sudo useradd -r -s /bin/false -g metabase metabase
sudo chown -R metabase:metabase /home/metabase
sudo touch /var/log/metabase.log
sudo chown metabase:metabase /var/log/metabase.log
sudo touch /etc/default/metabase
sudo chmod 640 /etc/default/metabase

Depois disso, você precisa criar o serviço no systemd do Metabase para que possa controlar o start, stop do serviço. Para isso, basta executar os comandos abaixo para criar um arquivo de serviço.

sudo vi /etc/systemd/system/metabase.service

Em seguida, copie o conteúdo abaixo no arquivo e salve-o:

::::file
:::title
/etc/systemd/system/metabase.service
:::
[Unit]
Description=Metabase server
After=syslog.target
After=network.target

[Service]
WorkingDirectory=/home/metabase/
ExecStart=/usr/bin/java -jar /home/metabase/metabase.jar
EnvironmentFile=/etc/default/metabase
User=metabase
Type=simple
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=metabase
SuccessExitStatus=143
TimeoutStopSec=120
Restart=always

[Install]
WantedBy=multi-user.target
::::

Em seguida, precisamos criar uma configuração de syslog para garantir que o systemd seja capaz de lidar com os logs adequadamente.

sudo vi /etc/rsyslog.d/metabase.conf

Em seguida, copie o conteúdo abaixo no arquivo e salve-o:

::::file
:::title
/etc/rsyslog.d/metabase.conf
:::
if $programname == 'metabase' then /var/log/metabase.log
& stop
::::

Reinicie o serviço syslog para carregar a nova configuração.

sudo systemctl restart rsyslog.service

Arquivo config do Metabase

Em /etc/default/metabase, substitua os itens configuráveis para os valores adqueados para a sua necessidade.
Algumas configurações do Metabase tem varias opções disponíveis e algumas irei mostar separados pelo simbolo | no comentario ao lado de cada variavel.

sudo vi /etc/default/metabase
::::file
:::title
/etc/default/metabase
:::
MB_PASSWORD_COMPLEXITY=strong #weak
normal strong
MB_PASSWORD_LENGTH=10
MB_DB_TYPE=mysql #postgres
mysql h2
MB_DB_DBNAME=metabase
MB_DB_PORT=3306
MB_DB_USER=metabase_user
MB_DB_PASS=Strong_Password
MB_DB_HOST=localhost
MB_EMOJI_IN_LOGS=true #true
false

Agora, já podemos habilitar e testar o serviço do Metabase com os comandos abaixo:

sudo systemctl daemon-reload
sudo systemctl start metabase
sudo systemctl enable metabase

Para verificar se o serviço está funcionando, execute os comandos abaixo para verificá-lo.

sudo systemctl status metabase

Você verá uma saída semelhante a esta:

:::output
● metabase.service - Metabase server
Loaded: loaded (/etc/systemd/system/metabase.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2020-10-18 21:11:45 -03; 7s ago
Main PID: 14703 (java)
Tasks: 12 (limit: 2270)
Memory: 61.9M
CGroup: /system.slice/metabase.service
└─14703 /usr/bin/java -jar /home/metabase/metabase.jar
:::

Agora o serviço do Metabase já esta rodando na porta padrão 3000 e vamos instalar o Nginx para fazer o proxy reverso e no passo 6, voltamos para configuração inicial do Metabase.

Passo 5 - Instalando e configurando o Nginx

Iremos utilizar o Nginx para fazermos um proxy reverso para a porta que foi instalado o MetaBase e assim você irá poder configurar o seu próprio dominio e acessar pelas portas padrão 80 e 443 de SSL.

Sendo assim, vamos instalar o Nginx digitando o comando:

sudo apt install nginx

Assim que a instalação for concluída, crie um novo arquivo de configuração Nginx com as configurações abaixo, definindo server_name com seu FQDN ==example.com==

sudo vi /etc/nginx/sites-available/metabase

Em seguida, copie o conteúdo abaixo no arquivo e salve-o. Não esqueça de modificar o ==example.com==

::::file
:::title
/etc/nginx/sites-available/metabase
:::
server {
listen 80;
listen [::]:80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
::::

Agora, vamos criar o link desta configuração para as site ativos do Nginx.

sudo ln -s /etc/nginx/sites-available/metabase /etc/nginx/sites-enabled/metabase

Em seguida, vamos testar as configurações do Nginx, com o comando abaixo:

sudo nginx -t

Você verá uma saída semelhante a esta abaixo:

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

Então, agora já podemos reiniciar o serviço do Nginx.

sudo systemctl restart nginx

Passo 6 - Configurações iniciais do Metabase

Neste passo vamos fazer as configurações iniciais do Metabase e criação do usuáro administrador.
Acesse o endereço http://==example.com==

Você deve ver o assistente de configuração da Metabase.

Welcome Screen Metabase

Clique no botão para Let's get started para iniciar.

Primeiro vamos definir o idioma de sua preferência. Em nosso caso iremos selecionar o Português

Idioma Metabase Portugues

Agora vamos definir a conta de administração e senha.

Usuario Admin Metabase Portugues

Em seguida, escolha adicionar um banco de dados. Para este tutorial, estamos usando MySQL ou MariaDB. Digite as informações do banco de dados criadas acima e continue com a configuração.

Banco MySQL Metabase Portugues

Pronto, agora é só finalizar a configuração e comece a utilizar a plataforma.

Instalação Concluida Metabase Portugues

Ao clicar no botão Leve-me para o Metabase você já terá o acesso a pagina inicial da plataforma.

Dashboard Metabase Portugues

Conclusão

Este artigo mostrou todos os passos de como instalar o Metabase no Ubuntu 20.04 de forma bem simples e objetiva. Agora é começar a explorar os seus dados e as conexões com outras fontes de dados.

Boa diversão.