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.
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
Agora vamos definir a conta de administração e senha.
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.
Pronto, agora é só finalizar a configuração e comece a utilizar a plataforma.
Ao clicar no botão Leve-me para o Metabase você já terá o acesso a pagina inicial da plataforma.
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.