Installare l'applicazione Looker

Questa pagina descrive come installare l'applicazione Looker per un deployment ospitato dal cliente.

L'hosting dell'applicazione Looker è indipendente dal luogo in cui si trovano i dati; i dati rimangono sempre nel database e non vengono copiati nell'istanza di Looker.

Specifiche di deployment

Se esegui Looker su una rete che non si connette a Internet, potresti dover configurare un server proxy per comunicare con il server di licenze di Looker o utilizzare servizi web serverless che effettuano solo chiamate web, come BigQuery.

Installa l'applicazione Looker su una macchina dedicata che soddisfa i seguenti requisiti minimi:

  • CPU da 1,2 GHz; Looker consiglia due o più core.
  • 8 GB di RAM libera.
  • 10 GB di spazio su disco libero.
  • 2 GB di spazio di scambio.
  • Linux. Usiamo Ubuntu Linux (versioni LTS) per il nostro hosting interno Looker e lo consigliamo per i clienti che non hanno una preferenza Linux. Tuttavia, supportiamo Looker sulle versioni di rilascio di tutte le principali distribuzioni Linux aziendali, tra cui RedHat, CentOS e Amazon Linux.
  • Java OpenJDK 11.0.12+, OpenJDK 8.0.181+ o HotSpot 1.8 aggiornamento 161+. Looker utilizza OpenJDK (versione 11) per prestazioni e prestazioni di utilizzo della memoria. Looker consiglia JDK, invece di JRE, per sfruttare gli strumenti aggiuntivi per la risoluzione dei problemi. Inoltre, Looker ti consiglia di passare ai nuovi aggiornamenti di Java non appena vengono rilasciati. Altre versioni di Java, Oracle JDK e OpenJDK non sono attualmente supportate.
  • libssl e libcrypt.so devono essere presenti nel sistema.
  • Devi consentire il traffico in entrata alla tua istanza di Looker tramite la porta TCP 9999.
  • Se gli utenti richiedono l'accesso API, devi consentire il traffico in entrata alla tua istanza di Looker tramite la porta TCP 19999.
  • Se Looker si connette ad AWS Redshift da una rete privata AWS VCP, devi impostare la MTU su 1500. Per ulteriori informazioni su questa impostazione, consulta la sezione sulla configurazione della MTU di un'istanza di questo articolo di Amazon Web Services. Se Looker rileva che l'impostazione MTU è maggiore di 1500 durante un test di connessione al database, visualizza il seguente errore:

    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.
    
  • Le seguenti impostazioni keepalive TCP. Per rimanere attivi durante un riavvio, il criterio deve essere impostato in /etc/sysctl.conf o in un file nella directory /etc/sysctl.d:

    net.ipv4.tcp_keepalive_time=200
    net.ipv4.tcp_keepalive_intvl=200
    net.ipv4.tcp_keepalive_probes=5
    
  • Un utente di nome looker nel gruppo denominato looker per eseguire l'applicazione Looker.

  • Un limite per l'utente looker di 4096 o superiore. Puoi farlo aggiungendo le seguenti righe a /etc/security/limits.conf:

    looker     soft     nofile     4096
    looker     hard     nofile     4096
    
  • Sincronizzazione dell'ora tramite NTP o equivalente.

  • La cartella /tmp non deve essere montata con l'opzione noexec.

  • La home directory looker non deve essere montata su un volume NFS.

  • Si consiglia di impostare il fuso orario del server su UTC ma non obbligatorio.

  • È richiesto Git 1.8 o versioni successive. Sebbene la versione stabile più recente di Git non sia richiesta, può essere utile per la risoluzione dei problemi.

  • Sebbene non sia obbligatorio, Netcat può essere utile per la risoluzione dei problemi di connettività di rete. Per installare Netcat su, ad esempio, un server basato su Ubuntu, un comando comune è:

    sudo apt-get install netcat
    
  • Se necessario, puoi configurare un server proxy per gestire le richieste HTTP(S) che Looker deve essere in grado di eseguire su 'core' su localhost. Per comunicare con il server proxy locale di Looker è necessario aggiungere alcuni argomenti speciali in lookerstart.cfg: aggiungi http.nonProxyHosts=localhost per abilitare l'accesso all'host locale di Looker senza passare attraverso il proxy. L'argomento Connessione di Looker a BigQuery tramite un argomento della community proxy web include un esempio di come creare questa connessione.

Per evitare conflitti di manutenzione e di risorse, non utilizzare il server Looker per ospitare altre applicazioni.

Attiva ntpd o chronyd

NTP è l'acronimo di Network Time Protocol. Consente all'orologio di sistema dell'host di mantenere sempre l'ora corretta, che deve funzionare correttamente. Looker non richiede l'utilizzo di alcun software di sincronizzazione temporale specifico a condizione che i tempi rimangano sincronizzati. Non è necessario eseguire un server NTP, è necessario solo il client NTP. Puoi sostituire chronyd per NTP.

Per informazioni sull'attivazione di ntpd o chronyd, consulta la documentazione del fornitore del sistema operativo.

Crea una chiave di crittografia

Looker utilizza la crittografia AES-256 Galois/Counter Mode (GCM) per criptare i dati sensibili archiviati internamente, tra cui:

  • Backup del database interno di Looker
  • Informazioni su database e connessioni di servizio
  • Informazioni di autenticazione dell'utente
  • Valori degli attributi utente
  • Dati dei clienti memorizzati nella cache o pronti per la consegna

Per un elenco dettagliato dei dati criptati da Looker, contatta il tuo account manager Looker o apri una richiesta di supporto nel Centro assistenza di Looker facendo clic su Contact (Contattaci).

I dati vengono criptati utilizzando una chiave di dati univoca e contengono una busta con crittografia firmata e con controllo delle versioni per garantire la verifica. Questa modalità richiede l'uso di una chiave master cliente (CMK) esterna. CMK viene utilizzata per ricavare, criptare e decriptare la chiave di crittografia della chiave (KEK), che a sua volta viene utilizzata per ricavare, criptare e decriptare le chiavi di dati.

La crittografia viene utilizzata solo per la cache e il database interni di Looker. I database dei clienti non sono in alcun modo interessati dalla crittografia di Looker. Inoltre, solo i dati statici (dati archiviati su disco) vengono criptati in questo modo.

Le installazioni ospitate dal cliente possono utilizzare i propri account AWS KMS o i propri sistemi di gestione delle chiavi personalizzati. Tutte le chiavi di dati e la KEK sono criptate e utilizzate internamente nell'installazione di Looker ospitata dal cliente. Se non utilizzi AWS KMS, il CMK esterno deve essere conservato in una posizione sicura e permanente. La perdita della CMK dopo la crittografia del database interno può causare la perdita dell'istanza.

Se utilizzi AWS KMS

Se utilizzi AWS KMS, crea un CMK utilizzando AWS Management Console o l'API.

Dopo aver creato la CMK, Looker ti consiglia di creare un nuovo ruolo IAM univoco per la tua CMK e di allegarla con la tua istanza di Looker.

Di seguito è riportato un esempio di ruolo IAM che contiene le autorizzazioni minime richieste per la 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/*"
        }
    ]
}

Dopo aver creato la CMK e il nuovo ruolo IAM, imposta la variabile di ambiente AWS_REGION sulla tua area geografica AWS e la variabile di ambiente LKR_AWS_CMK sull'alias di CMK:

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

Facoltativamente, puoi anche impostare la variabile di ambiente LKR_AWS_CMK_EC in modo da impostare un contesto di crittografia AWS personalizzato. Se non imposti questa variabile di ambiente, Looker utilizzerà il contesto di crittografia predefinito, la stringa Looker_Encryption_Context.

export LKR_AWS_CMK_EC=<My_Encryption_Context>

Se non utilizzi AWS KMS

Se non utilizzi AWS KMS, genera un CMK Base64 a 32 byte. Puoi archiviare la CMK in una variabile di ambiente o in un file:

  • Per generare la CMK e archiviarla in una variabile di ambiente, puoi utilizzare il comando seguente per generarla:

    openssl rand -base64 32
    

    Dopo aver generato la CMK, copiala e utilizza il seguente comando per archiviare la CMK nella variabile di ambiente LKR_MASTER_KEY_ENV (dove <CMK_value> è la CMK generata con il comando precedente):

    export LKR_MASTER_KEY_ENV=<CMK_value>
    
  • Per generare e archiviare la CMK in un file, puoi utilizzare il seguente comando (dove <path_to_key_file> è il percorso e il nome del file per l'archiviazione della CMK):

    openssl rand -base64 32 > <path_to_key_file>
    

    Dopo aver generato il file CMK, imposta le autorizzazioni del file della chiave sull'attuale utente in sola lettura:

    chmod 0400 <path_to_key_file>
    

Dopo aver generato un CMK, assicurati di conservarlo in un luogo sicuro e permanente prima di continuare. La perdita della CMK dopo la crittografia del database interno può causare la perdita dell'istanza.

Dopo aver generato e archiviato la CMK, imposta la variabile di ambiente LKR_MASTER_KEY_ENV:

  • Se stai archiviando la CMK in una variabile di ambiente, imposta la variabile di ambiente LKR_MASTER_KEY_ENV sul valore di CMK:

    export LKR_MASTER_KEY_ENV=<CMK_value>
    
  • Se stai archiviando la CMK in un file, imposta la variabile di ambiente LKR_MASTER_KEY_FILE sul percorso del file CMK:

    export LKR_MASTER_KEY_FILE=<path_to_key_file>
    

Dopo aver generato un CMK, assicurati di conservarlo in un luogo sicuro e permanente prima di continuare. La perdita della CMK dopo la crittografia del database interno può causare la perdita dell'istanza.

Installa l'applicazione Looker

  1. Crea gruppo looker.

    sudo groupadd looker
    
  2. Crea l'utente looker e la relativa directory home.

    sudo useradd -m  -g looker  looker
    
  3. Passa all'utente looker; non eseguire Looker come root.

    sudo su - looker
    
  4. Crea la sottodirectory looker nella home directory.

    mkdir ~/looker
    
  5. Passa alla sottodirectory looker.

    cd ~/looker
    
  6. Assicurati di essere nella directory corretta.

    pwd
    

    Se le directory degli utenti sono sotto /home, l'output di questo comando dovrebbe essere /home/looker/looker.

  7. Scarica i file JAR di Looker tramite uno dei metodi nella pagina della documentazione Download dei file JAR di Looker. Assicurati che entrambi i file JAR siano la stessa versione; l'utilizzo di versioni diverse del core e dei file JAR delle dipendenze può causare instabilità nell'installazione di Looker.

  8. Scarica lo script di avvio più recente in questo repository GitHub. Se vuoi che Looker venga eseguito all'avvio del sistema, puoi scaricare e utilizzare le opzioni script systemd e init.

  9. Sposta lo script di avvio (denominato looker) e i file JAR di Looker (chiamati looker-x.x.x.jar e looker-dependencies-x.x.x.jar, dove x.x.x è il numero della versione) nella nuova directory ~/looker.

  10. Rinomina looker-x.x.x.jar in looker.jar e looker-dependencies-x.x.x.jar in looker-dependencies.jar.

  11. Lo script di avvio determina automaticamente la quantità di memoria Java da allocare a Looker. Se vuoi personalizzare questo valore manualmente, consulta la pagina Documentazione consigliata sulle impostazioni di memoria Java per ulteriori informazioni.

  12. Rendi eseguibile lo script di avvio di Looker (imposta le autorizzazioni su 0750).

    chmod 0750 looker
    
  13. Avvia il processo Looker dalla shell come utente looker.

    ./looker start
    
  14. Per assistenza sul flag dell'avvio, utilizza:

    java -jar looker.jar --help
    

    Oppure, per la guida dei comandi di avvio, utilizza:

    java -jar looker.jar help
    
  15. Apri un browser in https://hostname:9999 dove hostname è il nome DNS dell'host che esegue Looker.

    Devi utilizzare https nell'URL, altrimenti verrà creato un avviso di sicurezza che dovrai ignorare. Questo avviso persisterà finché non viene installato un certificato SSL valido sul server.

  16. Inserisci il codice licenza ottenuto dall'analista Looker.

  17. Inserisci un nome, un indirizzo email e una password per creare il tuo primo account.

Crea un record DNS

Aggiungi un record DNS looker.[yourdomain].com per il server. Questo passaggio è facoltativo, ma consigliato.

Deployment automatico di Looker

È possibile implementare Looker utilizzando uno strumento di gestione della configurazione come Ansible o Chef. Un esempio di ruolo Ansible per il deployment automatico è disponibile nella pagina della documentazione Strumenti di gestione della configurazione.

Tuning di hypervisor

Looker viene eseguito come una macchina virtuale Java. Se la tua istanza di Looker si trova su un host VMware, potresti dover eseguire alcune ottimizzazioni delle prestazioni. Consulta la guida alle best practice per Java di VMware.

Su altre piattaforme di virtualizzazione, può migliorare le prestazioni per prenotare la memoria dell'host Looker dall'hypervisor. Questo non è controllabile su Amazon EC2; tuttavia, per altri fornitori, consulta la relativa documentazione per ulteriori informazioni.

Configurazione di un database di backend MySQL facoltativo

Per impostazione predefinita, Looker utilizza un database in memoria HyperSQL per archiviare la configurazione, gli utenti e altri dati. Puoi utilizzare un database MySQL esterno, tuttavia, per archiviare le informazioni interne di Looker. Per informazioni sulla configurazione e l'ottimizzazione di un database di backend MySQL, consulta la pagina della documentazione relativa alla migrazione a MySQL.

Passaggi successivi

Dopo aver installato Looker, è tutto pronto per configurare le opzioni di avvio di Looker.