Como instalar o aplicativo Looker

Nesta página, descrevemos como instalar o aplicativo Looker para uma implantação hospedada pelo cliente.

A hospedagem do aplicativo do Looker é independente de onde seus dados estão. Eles sempre permanecem no banco de dados e não são copiados para a instância do Looker.

Especificações de implantação

Se você for executar o Looker em uma rede que não se conecta à Internet, talvez seja necessário configurar um servidor proxy para se comunicar com o servidor de licença do Looker ou usar serviços da Web sem servidor que só fazem chamadas da Web, como o BigQuery.

Instale o aplicativo do Looker em uma máquina dedicada que atenda aos seguintes requisitos mínimos:

  • CPU de 1,2 GHz O Looker recomenda dois ou mais núcleos.
  • 8 GB de RAM livre.
  • 10 GB de espaço livre em disco.
  • 2 GB de espaço de arquivo de troca.
  • Linux. Usamos o Ubuntu Linux (versões LTS) para a hospedagem interna do Looker e recomendamos esse sistema operacional para clientes que não têm preferência pelo Linux. No entanto, oferecemos suporte ao Looker em versões de lançamento de todas as principais distribuições do Linux para empresas, incluindo RedHat, CentOS e Amazon Linux. O Looker só tem suporte nas versões Linux com conjuntos de instruções x64.
  • Java OpenJDK 11.0.12+ ou HotSpot 1.8 atualização 161+. O Looker usa o OpenJDK (versão 11) para melhorias de desempenho e uso de memória. O Looker recomenda o JDK em vez do JRE para aproveitar as ferramentas extras de solução de problemas. Além disso, o Looker recomenda que você faça a transição para as novas atualizações do Java conforme elas forem lançadas. Outras versões do Java, Oracle JDK e OpenJDK não são compatíveis no momento.

  • libssl e um libcrypt.so precisam estar presentes no sistema.

  • É preciso permitir o tráfego de entrada para sua instância do Looker pela porta TCP 9999.

  • Se os usuários precisarem de acesso à API, permita o tráfego de entrada para sua instância do Looker pela porta TCP 19999.

  • Se o Looker estiver se conectando ao AWS Redshift a partir de uma rede privada VPC da AWS, você precisará definir a MTU como 1.500. Para mais informações sobre essa configuração, consulte a seção Como configurar a MTU de uma instância deste artigo do Amazon Web Services. Se o Looker detectar que a configuração de MTU é maior que 1.500 durante um teste de conexão de banco de dados, ele vai mostrar o seguinte erro:

    MTU of network interface eth0 is too large (> 1500).
    If Looker instance and Redshift cluster are within the same VPC,
    this warning can be ignored.
    
  • As configurações de sinal de atividade TCP a seguir. Para persistir após uma reinicialização, defina-as em /etc/sysctl.conf ou em um arquivo no diretório /etc/sysctl.d:

    net.ipv4.tcp_keepalive_time=200
    net.ipv4.tcp_keepalive_intvl=200
    net.ipv4.tcp_keepalive_probes=5
    
  • Um usuário chamado looker no grupo looker para executar o aplicativo Looker.

  • Um ulimit para o usuário looker de 4096 ou mais recente. Para fazer isso, adicione as seguintes linhas a /etc/security/limits.conf:

    looker     soft     nofile     4096
    looker     hard     nofile     4096
    
  • Sincronização de tempo por NTP ou equivalente.

  • A pasta /tmp não pode ser montada com a opção noexec.

  • O diretório principal looker não pode ser montado em um volume NFS.

  • Recomendamos definir o fuso horário do servidor como UTC, mas isso não é obrigatório.

  • O Git 2.39.1 ou mais recente é necessário para o Looker 23.6 e versões mais recentes.

  • Embora não seja obrigatório, o Netcat pode ser útil para resolver problemas de conectividade de rede. Para instalar o Netcat em um servidor baseado em Ubuntu, por exemplo, um comando comum é:

    sudo apt-get install netcat
    
  • Se necessário, configure um servidor proxy para processar as solicitações HTTP(S) que o Looker precisa fazer para o "core" no localhost. Para se comunicar com o servidor proxy local do Looker, é necessário adicionar alguns argumentos especiais em lookerstart.cfg: adicione http.nonProxyHosts=localhost para permitir o acesso ao localhost do Looker sem passar pelo proxy.

Para evitar conflitos de manutenção e recursos, não use o servidor do Looker para hospedar outros aplicativos.

Ativar o ntpd ou o chronyd

NTP significa Protocolo de Tempo de Rede. Isso permite que o relógio do sistema do host mantenha sempre a hora correta, o que o Looker precisa para funcionar corretamente. O Looker não exige que nenhum software de sincronização de horário específico seja usado, desde que os horários permaneçam sincronizados. Não é necessário executar um servidor NTP. somente o cliente NTP é necessário. Você pode substituir "chronyd" por "NTP".

Consulte a documentação do seu fornecedor de SO para informações sobre como ativar "ntpd" ou "chronyd".

Criar uma chave de criptografia

O Looker usa criptografia no modo Galois/Contador AES-256 (GCM, na sigla em inglês) para criptografar dados sensíveis armazenados internamente, incluindo:

  • Backups do banco de dados interno do Looker
  • Informações de conexão de banco de dados e serviço
  • Informações de autenticação do usuário
  • Valores de atributo do usuário
  • Dados do cliente armazenados em cache ou preparados para envio

Para conferir uma lista detalhada dos dados que o Looker criptografa, abra uma solicitação de suporte.

Os dados são criptografados usando uma chave de dados exclusiva e contêm um envelope de criptografia assinado e com controle de versões para garantir a verificação. Esse modo exige o uso de uma chave mestra do cliente (CMK) externa. A CMK é usada para derivar, criptografar e descriptografar a chave de criptografia de chaves (KEK), que, por sua vez, é usada para derivar, criptografar e descriptografar as chaves de dados.

A criptografia é usada apenas para o cache e o banco de dados interno do Looker. Os bancos de dados dos clientes não são afetados pela criptografia do Looker. Além disso, somente dados estáticos (dados armazenados em disco) são criptografados dessa maneira.

As instalações hospedadas pelo cliente podem usar as próprias contas do AWS KMS ou sistemas de gerenciamento de chaves personalizados. Todas as chaves de dados e a KEK são criptografadas e usadas internamente na instalação do Looker hospedada pelo cliente. Se você não estiver usando o AWS KMS, a CMK externa precisa ser mantida em um local seguro e permanente. A perda do CMK após a criptografia do banco de dados interno pode resultar na perda da sua instância.

Se você estiver usando o AWS KMS

Se você estiver usando o AWS KMS, crie uma CMK usando o Console de Gerenciamento da AWS ou a API.

Depois de criar a CMK, o Looker recomenda que você crie um novo papel de IAM exclusivo para a CMK e o anexe à sua instância do Looker.

Confira a seguir um exemplo de papel do IAM que contém as permissões mínimas necessárias para o CMK:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "kms:GenerateRandom",
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:Encrypt",
                "kms:Generate*",
            ],
            "Resource": "arn:aws:kms:*:*:key/*"
        }
    ]
}

Depois de criar o CMK e o novo papel do IAM, defina a variável de ambiente AWS_REGION para a região da AWS e a variável de ambiente LKR_AWS_CMK para o alias do CMK:

export AWS_REGION=<AWS_region>
export LKR_AWS_CMK=alias/<CMK_alias>

Como alternativa, também é possível definir a variável de ambiente LKR_AWS_CMK_EC para definir um contexto de criptografia da AWS personalizado. Se você não definir essa variável de ambiente, o Looker vai usar o contexto de criptografia padrão, a string Looker_Encryption_Context.

export LKR_AWS_CMK_EC=<My_Encryption_Context>

Se você não estiver usando o AWS KMS

Se você não estiver usando o AWS KMS, gere uma CMK de 32 bytes em Base64. É possível armazenar o CMK em uma variável de ambiente ou em um arquivo:

  • Para gerar e armazenar o CMK em uma variável de ambiente, use o comando abaixo:

    openssl rand -base64 32
    

    Depois de gerar a CMK, copie-a e use o seguinte comando para armazená-la na variável de ambiente LKR_MASTER_KEY_ENV (em que <CMK_value> é a CMK gerada com o comando anterior):

    export LKR_MASTER_KEY_ENV=<CMK_value>
    
  • Para gerar e armazenar a CMK em um arquivo, use o seguinte comando, em que <path_to_key_file> é o caminho e o nome do arquivo para armazenar a CMK:

    openssl rand -base64 32 > <path_to_key_file>
    

    Depois de gerar o arquivo CMK, defina as permissões do arquivo de chave como somente leitura para o usuário atual:

    chmod 0400 <path_to_key_file>
    

Depois de gerar uma CMK, armazene-a em um local seguro e permanente antes de continuar. A perda do CMK após a criptografia do banco de dados interno pode resultar na perda da sua instância.

Depois de gerar e armazenar o CMK, defina a variável de ambiente LKR_MASTER_KEY_ENV:

  • Se você estiver armazenando a CMK em uma variável de ambiente, defina a variável de ambiente LKR_MASTER_KEY_ENV como o valor da CMK:

    export LKR_MASTER_KEY_ENV=<CMK_value>
    
  • Se você estiver armazenando a CMK em um arquivo, defina a variável de ambiente LKR_MASTER_KEY_FILE como o caminho do arquivo CMK:

    export LKR_MASTER_KEY_FILE=<path_to_key_file>
    

Depois de gerar um CMK, armazene-o em um local seguro e permanente antes de continuar. A perda do CMK após a criptografia do banco de dados interno pode resultar na perda da sua instância.

Instalar o aplicativo Looker

  1. Crie o grupo looker.

    sudo groupadd looker
    
  2. Crie o usuário looker e o diretório inicial dele.

    sudo useradd -m  -g looker  looker
    
  3. Mude para o usuário looker. Não execute o Looker como raiz.

    sudo su - looker
    
  4. Crie o subdiretório looker no diretório principal.

    mkdir ~/looker
    
  5. Mude para o subdiretório looker.

    cd ~/looker
    
  6. Verifique se você está no diretório correto.

    pwd
    

    Se os diretórios de usuários estiverem em /home, a saída desse comando será /home/looker/looker.

  7. Faça o download dos arquivos JAR do Looker escolhidos usando um dos métodos na página de documentação Como fazer o download dos arquivos JAR do Looker. Certifique-se de que ambos os arquivos JAR sejam da mesma versão. o uso de diferentes versões dos arquivos JAR principais e de dependência pode causar instabilidade na instalação do Looker.

  8. Faça o download do script de inicialização mais recente no repositório do GitHub de código aberto Looker (em inglês). Se quiser que o Looker seja executado na inicialização do sistema, baixe o script looker_init e use as opções de script systemd e init.

  9. Mova o script de inicialização (chamado looker) e os arquivos JAR do Looker (chamados looker-x.x.x.jar e looker-dependencies-x.x.x.jar, em que x.x.x é o número da versão) para o novo diretório ~/looker.

  10. Renomeie looker-x.x.x.jar para looker.jar e looker-dependencies-x.x.x.jar para looker-dependencies.jar.

  11. O script de inicialização determina automaticamente quanta memória Java alocar para o Looker. Se você quiser personalizar esse valor manualmente, consulte a página de documentação Configurações de memória recomendadas do Java para mais informações.

  12. Torne o script de inicialização do Looker executável (defina as permissões como 0750).

    chmod 0750 looker
    
  13. Inicie o processo do Looker no shell como o usuário looker.

    ./looker start
    
  14. Para receber ajuda com a sinalização de inicialização, use:

    java -jar looker.jar --help
    

    Ou, para receber ajuda sobre o comando de inicialização, use:

    java -jar looker.jar help
    
  15. Abra um navegador em https://hostname:9999, em que hostname é o nome DNS do host que executa o Looker.

    Use https no URL, o que vai criar um aviso de segurança que você vai precisar ignorar. Esse aviso será mantido até que um certificado SSL válido seja instalado no servidor.

  16. Insira a chave de licença recebida do analista do Looker.

  17. Insira um nome, um e-mail e uma senha para criar sua primeira conta.

Criar um registro DNS

Adicione um registro DNS looker.[yourdomain].com para o servidor. Esta etapa é opcional, mas recomendada.

Implantar o Looker automaticamente

O Looker pode ser implantado usando uma ferramenta de gerenciamento de configuração, como Ansible ou Chef. Um exemplo de função do Ansible para implantação automatizada está disponível na página de documentação Ferramentas de gerenciamento de configuração.

Ajuste do hipervisor

O Looker é executado como uma máquina virtual Java. Se a instância do Looker estiver em um convidado da VMware, talvez seja necessário ajustar o desempenho. Consulte o guia de práticas recomendadas do Java da VMware.

Em outras plataformas de virtualização, reservar a memória do host do Looker do hipervisor pode melhorar o desempenho. Isso não é controlável no Amazon EC2. No entanto, para outros fornecedores, consulte a documentação deles para mais informações.

Configurar um banco de dados de back-end MySQL opcional

Por padrão, o Looker usa um banco de dados HyperSQL na memória para armazenar a configuração, os usuários e outros dados. No entanto, é possível usar um banco de dados MySQL externo para armazenar as informações internas do Looker. Consulte a página de documentação Como migrar para o MySQL para saber como configurar e ajustar um banco de dados de back-end do MySQL.

Próximas etapas

Depois de instalar o Looker, está tudo pronto para configurar as opções de inicialização do Looker.