Como instalar o aplicativo Looker

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

Hospedar o aplicativo Looker não importa onde os dados residem. Os dados 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ê vai 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ças do Looker ou usar serviços da Web sem servidor que façam apenas chamadas da Web, como o BigQuery.

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

  • 1,2 GHz de CPU.O Looker recomenda dois ou mais núcleos.
  • 8 GB de RAM livre.
  • 10 GB de espaço em disco livre
  • Espaço para 2 arquivos de troca de 2 GB.
  • Linux. Nós usamos o Ubuntu Linux (versões LTS) para nossa hospedagem interna do Looker e recomendamos para os clientes que não têm uma preferência Linux. No entanto, oferecemos suporte ao Looker em versões de lançamento de todas as principais distribuições Linux da empresa, incluindo RedHat, CentOS e Amazon Linux.
  • Java OpenJDK 11.0.12+, OpenJDK 8.0.181+ ou HotSpot 1.8 atualizam o 161+. O Looker usa 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 a transição para novas atualizações do Java à medida que elas são lançadas. Outras versões do Java, Oracle JDK e OpenJDK não são compatíveis no momento.
  • A libssl e a libcrypt.so precisam estar presentes no sistema.
  • Permita o tráfego de entrada para sua instância do Looker pela porta TCP 9999.
  • Se os usuários precisarem de acesso à API, você precisará permitir o tráfego de entrada para sua instância do Looker pela porta TCP 19999.
  • Se o Looker estiver se conectando ao AWS Redshift por uma rede privada VCP da AWS, defina 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 neste artigo da Amazon Web Services. Se o Looker detectar que a configuração da MTU é maior que 1.500 durante o teste de conexão do banco de dados, ele exibirá o erro a seguir:

    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 seguintes configurações do sinal de atividade TCP. Para persistir durante uma reinicialização, isso precisa ser definido em /etc/sysctl.conf ou 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 chamado looker para executar o aplicativo Looker.

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

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

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

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

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

  • O Git 1.8 ou mais recente é obrigatório. Embora a versão estável mais recente do Git não seja necessária, ela pode ser útil para resolver problemas.

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

    sudo apt-get install netcat
    
  • Se necessário, é possível configurar um servidor proxy para lidar com as solicitações HTTP(S) que o Looker precisa fazer para 'core' no localhost. Para se comunicar com o servidor proxy local do Looker, adicione alguns argumentos especiais em lookerstart.cfg: adicione http.nonProxyHosts=localhost para permitir o acesso ao host local do Looker sem passar pelo proxy. O tópico Como conectar o Looker ao BigQuery por meio de um tópico da comunidade de proxy da Web inclui um exemplo de como criar essa conexão.

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

Ativar ntpd ou chronyd

NTP significa protocolo de tempo de rede. Ele permite que o relógio do sistema do host mantenha o horário correto, que o Looker precisa para funcionar corretamente. O Looker não exige nenhum software de sincronização de tempo específico, desde que os horários permaneçam em sincronia. Não é necessário executar um servidor NTP. Apenas o cliente NTP é necessário. Você pode substituir chronyd por NTP.

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

Criar uma chave de criptografia

O Looker usa criptografia AES-256 Galois/Counter (GCM, na sigla em inglês) para criptografar dados confidenciais armazenados internamente, incluindo:

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

Para uma lista detalhada dos dados que o Looker criptografa, entre em contato com seu gerente de contas do Looker ou abra uma solicitação de suporte na Central de Ajuda do Looker clicando em Fale conosco.

Os dados são criptografados usando uma chave de dados exclusiva e contêm um envelope de criptografia assinado e com controle de versão para garantir a verificação. Esse modo requer o uso de uma chave mestra externa do cliente (CMK, na sigla em inglês). O CMK é usado para gerar, criptografar e descriptografar a chave de criptografia de chaves (KEK, na sigla em inglês), que, por sua vez, é usada para derivar, criptografar e descriptografar chaves de dados.

A criptografia é usada apenas para o banco de dados e o cache internos do Looker. Os bancos de dados do cliente não são afetados pela criptografia do Looker. Além disso, somente os 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 os próprios sistemas personalizados de gerenciamento de chaves. 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, o CMK externo deve ser mantido em um local seguro e permanente. Perder a CMK após criptografar o banco de dados interno pode resultar na perda da instância.

Se você estiver usando o AWS KMS

Se você usa o AWS KMS, crie um CMK usando o AWS Management Console ou a API.

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

Veja a seguir um exemplo de um papel do IAM que contém as permissões mínimas necessárias para seu 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 como a região da AWS e a variável de ambiente LKR_AWS_CMK como o alias do CMK:

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

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 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 um CMK Base64 de 32 bytes. É possível armazenar o CMK em uma variável de ambiente ou em um arquivo:

  • Para gerar o CMK e armazená-lo em uma variável de ambiente, use o seguinte comando para gerar o CMK:

    openssl rand -base64 32
    

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

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

    openssl rand -base64 32 > <path_to_key_file>
    

    Após 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 um CMK, armazene-o em um local seguro e permanente antes de continuar. Perder a CMK após criptografar o banco de dados interno pode resultar na perda da instância.

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

  • Se você estiver armazenando o 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ê armazenar o 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. Perder a CMK após criptografar o banco de dados interno pode resultar na perda da instância.

Instalar o aplicativo Looker

  1. Criar o grupo looker.

    sudo groupadd looker
    
  2. Crie o usuário looker e o diretório principal 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 inicial.

    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ário estiverem em /home, a saída desse comando será /home/looker/looker.

  7. Faça o download dos arquivos JAR do Looker desejados por meio de um dos métodos na página de documentação Como fazer o download dos arquivos JAR do Looker. Confira se os dois arquivos JAR são a mesma versão. O uso de versões diferentes 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 neste repositório do GitHub. Se você quiser executar o Looker na inicialização do sistema, faça o download 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 a quantidade de memória Java a ser alocada para o Looker. Se você quiser personalizar esse valor manualmente, consulte a página de documentação Configurações recomendadas de memória 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 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 de comandos de inicialização, use:

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

    Use https no URL, porque isso criará um aviso de segurança que será ignorado. Esse aviso continuará existindo até que um certificado SSL válido seja instalado no servidor.

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

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

Criar um registro DNS

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

Como implantar o Looker automaticamente

O Looker pode ser implantado usando uma ferramenta de gerenciamento de configuração, como Ansible ou Chef. Um exemplo de papel 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 VMware, talvez seja necessário fazer algum ajuste de desempenho. Consulte o guia de práticas recomendadas do Java do VMware.

Em outras plataformas de virtualização, o desempenho pode ser melhor para reservar a memória do host do Looker do hipervisor. Isso não é controlado no Amazon EC2. No entanto, para outros fornecedores, você deve consultar a documentação para mais informações.

Como configurar um banco de dados de back-end opcional do MySQL

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

Próximas etapas

Depois de instalar o Looker, você estará pronto para configurar as opções de inicialização do Looker.