Installazione dell'applicazione Looker

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

L'hosting dell'applicazione Looker è indipendente dalla posizione dei dati, che rimangono sempre nel database e non vengono copiati nell'istanza Looker.

Specifiche di deployment

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

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

  • CPU da 1,2 GHz; Looker consiglia due o più core.
  • 8 GB di RAM libera.
  • 10 GB di spazio libero su disco.
  • 2 GB di spazio per i file di scambio.
  • Linux. Utilizziamo Ubuntu Linux (release LTS) per il nostro hosting interno di Looker e lo consigliamo ai clienti che non hanno una preferenza per Linux. Tuttavia, supportiamo Looker nelle versioni release di tutte le principali distribuzioni Linux aziendali, tra cui RedHat, CentOS e Amazon Linux. Looker è supportato solo sulle versioni di Linux con set di istruzioni x64.
  • Java OpenJDK 11.0.12 o HotSpot 1.8 aggiornamento 161 o versioni successive. Looker utilizza OpenJDK (versione 11) per migliorare le prestazioni e l'utilizzo della memoria. Looker consiglia di utilizzare JDK anziché JRE per usufruire degli strumenti di risoluzione dei problemi aggiuntivi. Inoltre, Looker consiglia di eseguire la transizione ai nuovi aggiornamenti di Java man mano che vengono rilasciati. Altre versioni di Java, Oracle JDK e OpenJDK non sono supportate al momento.

  • Nel sistema devono essere presenti libssl e libcrypt.so.

  • Devi consentire il traffico in entrata alla tua istanza Looker tramite la porta TCP 9999.

  • Se gli utenti richiedono l'accesso all'API, devi consentire il traffico in entrata alla tua istanza Looker tramite la porta TCP 19999.

  • Se Looker si connette ad AWS Redshift da una rete privata VPC AWS, devi impostare l'MTU su 1500. Per ulteriori informazioni su questa impostazione, consulta la sezione Configurare la MTU di un'istanza di questo articolo di Amazon Web Services. Se durante un test di connessione al database Looker rileva che l'impostazione MTU è superiore a 1500, viene visualizzato 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 essere mantenuti dopo un riavvio, devono essere impostati 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 denominato looker nel gruppo denominato looker per eseguire l'applicazione Looker.

  • Un ulimit per l'utente looker di 4096 o versioni successive. 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.

  • L'impostazione del fuso orario del server su UTC è consigliata, ma non obbligatoria.

  • Per Looker 23.6 e versioni successive è necessario Git 2.39.1 o versioni successive.

  • Sebbene non sia obbligatorio, Netcat può essere utile per risolvere i problemi di connettività di rete. Per installare Netcat, ad esempio su 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 poter inviare a "core" su localhost. Per comunicare con il server proxy locale di Looker, devi aggiungere alcuni argomenti speciali in lookerstart.cfg: aggiungi http.nonProxyHosts=localhost per consentire l'accesso all'host locale di Looker senza passare per il proxy.

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

Attiva ntpd o chronyd

NTP sta per Network Time Protocol. Consente all'orologio di sistema dell'host di mantenere sempre l'ora corretta, necessaria per il corretto funzionamento di Looker. Looker non richiede l'utilizzo di un software di sincronizzazione dell'ora specifico, purché i tempi rimangano sincronizzati. Non è necessario eseguire un server NTP; è necessario solo il client NTP. Puoi sostituire chronyd con NTP.

Consulta la documentazione del fornitore del sistema operativo per informazioni su come attivare ntpd o chronyd.

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 sulla connessione del database e del servizio
  • Informazioni sull'autenticazione utente
  • Valori degli attributi utente
  • Dati dei clienti memorizzati nella cache o pronti per la pubblicazione

Per un elenco dettagliato dei dati criptati da Looker, apri una richiesta di assistenza.

I dati vengono criptati utilizzando una chiave di dati univoca e contengono un'envelope di crittografia firmata e con versione per garantire la verifica. Questa modalità richiede l'utilizzo di una chiave principale del cliente (CMK) esterna. La 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 il database e la cache interni di Looker. I database dei clienti non sono interessati in alcun modo 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 vengono criptate e utilizzate internamente nell'installazione di Looker ospitata dal cliente. Se non utilizzi AWS KMS, la CMK esterna deve essere conservata in una posizione sicura e permanente. La perdita della CMK dopo la crittografia del database interno può comportare la perdita dell'istanza.

Se utilizzi AWS KMS

Se utilizzi AWS KMS, crea una CMK utilizzando la console di gestione AWS o l'API.

Dopo aver creato il CMK, Looker consiglia di creare un nuovo ruolo IAM univoco per il CMK e di collegarlo all'istanza 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 regione AWS e la variabile di ambiente LKR_AWS_CMK sull'alias della CMK:

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

Se vuoi, puoi anche impostare la variabile d'ambiente LKR_AWS_CMK_EC per 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 una CMK Base64 di 32 byte. Puoi memorizzare la CMK in una variabile di ambiente o in un file:

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

    openssl rand -base64 32
    

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

    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 su sola lettura per l'utente corrente:

    chmod 0400 <path_to_key_file>
    

Dopo aver generato un CMK, assicurati di memorizzarlo in una posizione sicura e permanente prima di continuare. La perdita della CMK dopo la crittografia del database interno può comportare la perdita dell'istanza.

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

  • Se memorizzi la CMK in una variabile di ambiente, imposta la variabile di ambiente LKR_MASTER_KEY_ENV sul valore della CMK:

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

    export LKR_MASTER_KEY_FILE=<path_to_key_file>
    

Dopo aver generato un CMK, assicurati di memorizzarlo in una posizione sicura e permanente prima di continuare. La perdita della CMK dopo la crittografia del database interno può comportare la perdita dell'istanza.

Installa l'applicazione Looker

  1. Crea gruppo looker.

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

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

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

    mkdir ~/looker
    
  5. Passa alla sottodirectory looker.

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

    pwd
    

    Se le directory utente si trovano in /home, l'output di questo comando dovrebbe essere /home/looker/looker.

  7. Scarica i file JAR di Looker scelti utilizzando uno dei metodi descritti nella pagina della documentazione Scaricamento dei file JAR di Looker. Assicurati che entrambi i file JAR siano della stessa versione. L'utilizzo di versioni diverse dei file JAR di base e delle dipendenze può causare instabilità nell'installazione di Looker.

  8. Scarica lo script di avvio più recente dal repository GitHub looker-open-source. Se vuoi che Looker venga eseguito all'avvio del sistema, puoi scaricare lo script looker_init e utilizzare entrambe le opzioni di script systemd e init.

  9. Sposta lo script di avvio (chiamato 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 di 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. Per personalizzare questo valore manualmente, consulta la pagina della documentazione Impostazioni di memoria Java consigliate 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 di avvio, utilizza:

    java -jar looker.jar --help
    

    In alternativa, per la guida al comando di avvio, utilizza:

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

    Devi utilizzare https nell'URL, in modo da creare un avviso di sicurezza che dovrai ignorare. Questo avviso rimarrà visualizzato finché sul server non verrà installato un certificato SSL valido.

  16. Inserisci la chiave di licenza ottenuta dall'analista di Looker.

  17. Inserisci un nome, un'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.

Eseguire il deployment di Looker automaticamente

Looker può essere implementato 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 degli strumenti di gestione della configurazione.

Ottimizzazione dell'hypervisor

Looker viene eseguito come macchina virtuale Java. Se l'istanza di Looker si trova su un guest VMware, potrebbe essere necessario ottimizzare le prestazioni. Consulta la guida alle best practice di Java di VMware.

Su altre piattaforme di virtualizzazione, potrebbe essere utile riservare la memoria dell'host di Looker dall'hypervisor per migliorare le prestazioni. Questo valore 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-memory HyperSQL per archiviare la configurazione, gli utenti e altri dati. Tuttavia, puoi utilizzare un database MySQL esterno per archiviare le informazioni interne di Looker. Per informazioni sulla configurazione e sull'ottimizzazione di un database di backend MySQL, consulta la pagina della documentazione Migrazione a MySQL.

Passaggi successivi

Dopo aver installato Looker, puoi configurare le opzioni di avvio di Looker.