Installer l'application Looker

Cette page explique comment installer l'application Looker dans le cadre d'un déploiement hébergé par un client.

L'hébergement de l'application Looker est indépendant de l'emplacement de vos données ; les données restent toujours dans la base de données et ne sont pas copiées sur l'instance Looker.

Spécifications du déploiement

Si vous allez exécuter Looker sur un réseau qui ne se connecte pas à Internet, vous devrez peut-être configurer un serveur proxy pour communiquer avec le serveur de licences de Looker ou utiliser des services Web sans serveur, tels que BigQuery, qui ne font que passer des appels Web.

Installez l'application Looker sur un ordinateur dédié répondant aux exigences minimales suivantes:

  • Processeur de 1,2 GHz ; Looker recommande au moins deux cœurs.
  • 8 Go de RAM libre.
  • 10 Go d'espace disque libre.
  • 2 Go d'espace pour le fichier d'échange
  • Linux. Nous utilisons les versions Ubuntu Linux (LTS) pour notre hébergement Looker interne, et nous le recommandons aux clients qui n'ont pas de préférence Linux. Toutefois, nous prenons en charge Looker sur les versions de toutes les principales distributions Linux pour les entreprises, y compris RedHat, CentOS et Amazon Linux. Looker n'est compatible qu'avec les versions Linux avec des ensembles d'instructions x64.
  • Java OpenJDK 11.0.12 ou version ultérieure, OpenJDK 8.0.181 ou version ultérieure, ou HotSpot 1.8 mise à jour 1.8 ou version ultérieure. Looker utilise OpenJDK (version 11) pour améliorer les performances et l'utilisation de la mémoire. Looker recommande le JDK, plutôt que le JRE, pour bénéficier des outils de dépannage supplémentaires. De plus, Looker vous recommande d'effectuer la transition vers les nouvelles mises à jour Java dès leur publication. Les autres versions de Java, Oracle JDK et OpenJDK ne sont pas compatibles pour le moment.

  • libssl et libcrypt.so doivent être présents sur le système.

  • Vous devez autoriser le trafic entrant vers votre instance Looker via le port TCP 9999.

  • Si les utilisateurs ont besoin d'un accès à l'API, vous devez autoriser le trafic entrant vers votre instance Looker via le port TCP 19999.

  • Si Looker se connecte à AWS Redshift depuis un réseau privé VCP AWS, vous devez définir la MTU sur 1 500. Pour plus d'informations sur ce paramètre, consultez la section Configurer la MTU d'une instance de cet article sur Amazon Web Services. Si Looker détecte que le paramètre MTU est supérieur à 1 500 lors d'un test de connexion à la base de données, il affiche l'erreur suivante:

    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.
    
  • Les paramètres de message keepalive TCP suivants. Pour persister après un redémarrage, vous devez définir ces éléments dans /etc/sysctl.conf ou dans un fichier du répertoire /etc/sysctl.d:

    net.ipv4.tcp_keepalive_time=200
    net.ipv4.tcp_keepalive_intvl=200
    net.ipv4.tcp_keepalive_probes=5
    
  • Un utilisateur nommé looker dans le groupe looker pour exécuter l'application Looker.

  • ulimit pour l'utilisateur looker de 4096 ou version ultérieure. Pour ce faire, ajoutez les lignes suivantes à /etc/security/limits.conf:

    looker     soft     nofile     4096
    looker     hard     nofile     4096
    
  • Synchronisation temporelle via NTP ou équivalent.

  • Le dossier /tmp ne doit pas être installé avec l'option noexec.

  • Le répertoire d'accueil looker ne doit pas être installé sur un volume NFS.

  • Il est recommandé, mais pas obligatoire de définir le fuseau horaire du serveur sur UTC.

  • Git 2.39.1 ou version ultérieure est requis pour Looker 23.6 et versions ultérieures.

  • Bien que cela ne soit pas obligatoire, Netcat peut être utile pour résoudre les problèmes de connectivité réseau. Pour installer Netcat sur un serveur basé sur Ubuntu, par exemple, une commande courante est la suivante:

    sudo apt-get install netcat
    
  • Si nécessaire, vous pouvez configurer un serveur proxy pour gérer les requêtes HTTP(S) que Looker doit pouvoir envoyer à "core" sur localhost. Pour communiquer avec le serveur proxy local de Looker, vous devez ajouter des arguments spéciaux dans lookerstart.cfg: ajoutez http.nonProxyHosts=localhost pour autoriser l'accès à l'hôte local de Looker sans passer par le proxy.

Pour éviter les conflits de maintenance et de ressources, vous ne devez pas utiliser le serveur Looker pour héberger d'autres applications.

Activer ntpd ou chronyd

NTP est l'abréviation de Network Time Protocol. Elle permet à l'horloge système de votre hôte de conserver en permanence l'heure, dont Looker a besoin pour fonctionner correctement. Looker ne nécessite pas l'utilisation d'un logiciel de synchronisation d'heure particulier tant que les heures restent synchronisées. Il n'est pas nécessaire d'exécuter un serveur NTP. Seul le client NTP est nécessaire. Vous pouvez remplacer chronyde par NTP.

Pour en savoir plus sur l'activation de ntpd ou chronyd, consultez la documentation du fournisseur de votre système d'exploitation.

Créer une clé de chiffrement

Looker utilise le chiffrement AES-256 Galois/Counter Mode (GCM) pour chiffrer les données sensibles stockées en interne, y compris:

  • Sauvegardes de la base de données interne de Looker
  • Informations sur la connexion au service et à la base de données
  • Informations d'authentification des utilisateurs
  • Valeurs des attributs utilisateur
  • Données client mises en cache ou prêtes à être envoyées

Pour obtenir une liste détaillée des données que Looker chiffre, ouvrez une demande d'assistance.

Les données sont chiffrées à l'aide d'une clé unique et contiennent une enveloppe de chiffrement signée avec versions gérées pour garantir la validation. Ce mode nécessite l'utilisation d'une clé principale client (CMK) externe. La clé CMK permet d'extraire, de chiffrer et de déchiffrer la clé de chiffrement de clé (KEK), qui à son tour sert à dériver, chiffrer et déchiffrer les clés de données.

Le chiffrement n'est utilisé que pour la base de données et le cache internes de Looker. Les bases de données des clients ne sont en aucun cas affectées par le chiffrement de Looker. En outre, seules les données statiques (données stockées sur le disque) sont chiffrées de cette manière.

Les installations hébergées par le client peuvent utiliser leurs propres comptes AWS KMS ou leurs propres systèmes de gestion de clés personnalisés. Toutes les clés de données et la KEK sont chiffrées et utilisées en interne lors de l'installation de Looker hébergée par le client. Si vous n'utilisez pas AWS KMS, la clé CMK externe doit être conservée dans un emplacement sûr et permanent. La perte de la clé CMK après le chiffrement de la base de données interne peut entraîner la perte de votre instance.

Si vous utilisez AWS KMS

Si vous utilisez AWS KMS, créez une clé CMK à l'aide de la console de gestion AWS ou de l'API.

Après avoir créé la clé CMK, Looker vous recommande de créer un rôle IAM unique pour votre clé CMK et de l'associer à votre instance Looker.

Voici un exemple de rôle IAM contenant les autorisations minimales requises pour votre clé 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/*"
        }
    ]
}

Après avoir créé la clé CMK et le nouveau rôle IAM, définissez la variable d'environnement AWS_REGION sur votre région AWS et la variable d'environnement LKR_AWS_CMK sur l'alias de votre clé CMK:

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

Vous pouvez également définir la variable d'environnement LKR_AWS_CMK_EC pour définir un contexte de chiffrement AWS personnalisé. Si vous ne définissez pas cette variable d'environnement, Looker utilise le contexte de chiffrement par défaut, à savoir la chaîne Looker_Encryption_Context.

export LKR_AWS_CMK_EC=<My_Encryption_Context>

Si vous n'utilisez pas AWS KMS

Si vous n'utilisez pas AWS KMS, générez une clé CMK en base64 de 32 octets. Vous pouvez stocker la clé CMK dans une variable d'environnement ou dans un fichier:

  • Pour générer la clé CMK et la stocker dans une variable d'environnement, vous pouvez utiliser la commande suivante:

    openssl rand -base64 32
    

    Après avoir généré la clé CMK, copiez-la et exécutez la commande suivante pour la stocker dans la variable d'environnement LKR_MASTER_KEY_ENV (où <CMK_value> correspond à la clé CMK générée avec la commande précédente):

    export LKR_MASTER_KEY_ENV=<CMK_value>
    
  • Pour générer et stocker la clé CMK dans un fichier, vous pouvez utiliser la commande suivante (où <path_to_key_file> correspond au chemin d'accès et au nom du fichier de stockage de la clé CMK):

    openssl rand -base64 32 > <path_to_key_file>
    

    Après avoir généré le fichier CMK, définissez les autorisations du fichier de clé sur l'utilisateur actuel en lecture seule:

    chmod 0400 <path_to_key_file>
    

Après avoir généré une clé CMK, veillez à la stocker dans un emplacement sûr et permanent avant de continuer. La perte de la clé CMK après le chiffrement de la base de données interne peut entraîner la perte de votre instance.

Une fois que vous avez généré et stocké votre clé CMK, définissez la variable d'environnement LKR_MASTER_KEY_ENV:

  • Si vous stockez la clé CMK dans une variable d'environnement, définissez la variable d'environnement LKR_MASTER_KEY_ENV sur la valeur de la clé CMK:

    export LKR_MASTER_KEY_ENV=<CMK_value>
    
  • Si vous stockez votre clé CMK dans un fichier, définissez la variable d'environnement LKR_MASTER_KEY_FILE sur le chemin d'accès de ce fichier:

    export LKR_MASTER_KEY_FILE=<path_to_key_file>
    

Après avoir généré une clé CMK, veillez à la stocker dans un emplacement sûr et permanent avant de continuer. La perte de la clé CMK après le chiffrement de la base de données interne peut entraîner la perte de votre instance.

Installer l'application Looker

  1. Créer le groupe looker.

    sudo groupadd looker
    
  2. Créez l'utilisateur looker et son répertoire d'accueil.

    sudo useradd -m  -g looker  looker
    
  3. Passez à l'utilisateur looker. N'exécutez pas Looker en tant que racine.

    sudo su - looker
    
  4. Créez un sous-répertoire looker dans le répertoire d'accueil.

    mkdir ~/looker
    
  5. Accédez au sous-répertoire looker.

    cd ~/looker
    
  6. Vérifiez que vous êtes dans le bon répertoire.

    pwd
    

    Si vos répertoires d'utilisateurs se trouvent sous /home, cette commande doit renvoyer /home/looker/looker.

  7. Téléchargez les fichiers JAR Looker souhaités à l'aide de l'une des méthodes de la page de documentation Télécharger les fichiers JAR Looker. Assurez-vous que les deux fichiers JAR sont de la même version. L'utilisation de versions différentes des fichiers JAR de base et de dépendance peut entraîner une instabilité dans votre installation Looker.

  8. Téléchargez le dernier script de démarrage dans le dépôt GitHub Open Source Looker. Si vous souhaitez que Looker s'exécute au démarrage du système, vous pouvez télécharger le script Looker_init et utiliser les options de script systemd et init.

  9. Déplacez le script de démarrage (nommé looker) et les fichiers JAR Looker (nommés looker-x.x.x.jar et looker-dependencies-x.x.x.jar, où x.x.x correspond au numéro de version) vers le nouveau répertoire ~/looker.

  10. Renommez looker-x.x.x.jar en looker.jar et looker-dependencies-x.x.x.jar en looker-dependencies.jar.

  11. Le script de démarrage détermine automatiquement la quantité de mémoire Java à allouer à Looker. Si vous souhaitez personnaliser cette valeur manuellement, consultez la page de documentation Paramètres de mémoire Java recommandés pour en savoir plus.

  12. Rendez le script de démarrage Looker exécutable (définissez les autorisations sur 0750).

    chmod 0750 looker
    
  13. Démarrez le processus Looker à partir de l'interface système en tant qu'utilisateur looker.

    ./looker start
    
  14. Pour obtenir de l'aide sur l'indicateur de démarrage, utilisez:

    java -jar looker.jar --help
    

    Pour obtenir de l'aide sur la commande de démarrage, utilisez:

    java -jar looker.jar help
    
  15. Ouvrez un navigateur sur https://hostname:9999, où hostname est le nom DNS de l'hôte qui exécute Looker.

    Utilisez https dans l'URL. Cela entraînera la création d'un avertissement de sécurité que vous devrez ignorer. Cet avertissement s'affiche jusqu'à ce qu'un certificat SSL valide soit installé sur le serveur.

  16. Saisissez la clé de licence obtenue auprès de votre analyste Looker.

  17. Saisissez un nom, une adresse e-mail et un mot de passe pour créer votre premier compte.

Créer un enregistrement DNS

Ajoutez un enregistrement DNS looker.[yourdomain].com pour le serveur. Cette étape est facultative, mais recommandée.

Déployer Looker automatiquement

Looker peut être déployé à l'aide d'un outil de gestion de configuration comme Ansible ou Chef. Vous trouverez un exemple de rôle Ansible pour le déploiement automatisé sur la page de documentation Outils de gestion de la configuration.

Réglage de l'hyperviseur

Looker s'exécute comme une machine virtuelle Java. Si votre instance Looker se trouve sur un invité VMware, vous devrez peut-être ajuster les performances. Consultez le guide des bonnes pratiques Java pour VMware.

Sur d'autres plates-formes de virtualisation, réserver la mémoire de l'hôte Looker à l'hyperviseur peut améliorer les performances. Cela n'est pas contrôlable sur Amazon EC2. Toutefois, pour les autres fournisseurs, vous devez consulter leur documentation pour en savoir plus.

Configurer une base de données backend MySQL facultative

Par défaut, Looker utilise une base de données en mémoire HyperSQL pour stocker sa configuration, ses utilisateurs et d'autres données. Vous pouvez toutefois utiliser une base de données MySQL externe pour stocker les informations internes de Looker. Consultez la page de documentation Migrating to MySQL (Migrer vers MySQL) pour en savoir plus sur la configuration et le réglage d'une base de données backend MySQL.

Étapes suivantes

Après avoir installé Looker, vous pouvez configurer les options de démarrage de Looker.