Installation d’un logiciel de rendu hébergée par le client

Looker a besoin d'un logiciel de rendu appelé Chromium pour envoyer ou télécharger des données dans des formats basés sur des images (fichiers HTML et PNG ou PDF) et pour utiliser des fonctionnalités telles que la taille de papier et Développer les tables. Cette page explique comment installer un logiciel de rendu sur une instance Looker hébergée par un client.

Chromium est déjà installé pour les instances hébergées par Looker.

Le rendu Chromium attend que toutes les ressources demandées par la page soient terminées avant d'envoyer l'état "finished" qui invite Looker à produire le contenu affiché. En raison du nombre et de la fréquence de ces demandes de ressources, certains réseaux peuvent signaler à tort les requêtes comme malveillantes, ce qui entraîne leur abandon, ce qui retarde les jobs affichés.

Le projet Chromium est un projet Open Source lancé par Google pour partager les parties non propriétaires de Google Chrome.

Configuration requise et prérequis pour l'installation de Chromium

Looker prend en charge les versions de toutes les principales distributions d'entreprise Linux, y compris Ubuntu, Debian, RedHat, CentOS et Amazon Linux. Cette page fournit des instructions d'installation de Chromium sous Ubuntu, Debian et RedHat/CentOS/Amazon Linux.

Chromium doit être installé dans un chemin d'accès exécutable sur la machine qui héberge l'instance Looker. L'application Looker doit accéder à Chromium à l'aide de la commande chromium ou d'un chemin d'accès personnalisé défini avec la variable d'environnement CHROMIUM_PATH.

Pour exécuter Chromium sur une instance Looker, vous devez disposer de Chromium 86 ou d'une version ultérieure, mais Looker recommande spécifiquement d'utiliser Chromium 102.x. Si votre instance Looker est installée sur Debian, Chromium nécessite Debian 9 (Stretch) ou une version ultérieure.

Si vous installez Chromium sur une installation Looker en cluster, la version de Chromium sur chaque nœud doit être totalement identique. Même des différences mineures, telles que des numéros de build différents, peuvent interférer avec les capacités de rendu de Looker.

Si vos données contiennent des caractères qui n'existent pas en anglais, installez le package Google Noto Fonts (de plusieurs Go) en plus de Chromium. Pour installer ce package de polices, exécutez les commandes suivantes dans votre ligne de commande:

mkdir -p /tmp/fonts
cd /tmp/fonts
curl -O https://noto-website-2.storage.googleapis.com/pkgs/Noto-unhinted.zip
unzip Noto-unhinted.zip
mkdir -p /usr/share/fonts/opentype/noto
cp *.otf *.otc /usr/share/fonts/opentype/noto   # Ignore any *.otc not found errors
mkdir -p /usr/share/fonts/truetype/noto
cp *.ttf /usr/share/fonts/truetype/noto
chmod a+r -R /usr/share/fonts/*/noto
fc-cache -f -v

Si l'opération réussit:

cd $HOME
rm -rf /tmp/fonts

Installer Chromium sur Ubuntu

L'application Looker doit accéder à Chromium à l'aide de la commande chromium ou d'un chemin d'accès personnalisé défini avec la variable d'environnement CHROMIUM_PATH. Pour les installations Ubuntu, vous devez installer le navigateur Web Chromium, puis définir un alias afin que l'application Looker puisse trouver l'installation.

Looker vous recommande d'utiliser la commande sudo lorsque vous effectuez des étapes nécessitant des autorisations élevées. N'installez pas Chromium lorsque vous êtes connecté en tant qu'utilisateur racine. Si vous installez Chromium en étant connecté en tant qu'utilisateur racine, Looker risque de ne pas pouvoir exécuter le rendu PDF ou PNG.

  1. Les polices doivent être installées sur le système pour que Chromium puisse démarrer. Vous pouvez installer des polices à l'aide de l'interface de ligne de commande. Par exemple, la commande suivante installe les polices par défaut sur Ubuntu 16.04 LTS:

    apt-get install fonts-freefont-otf
    
  2. Pour installer Chromium, exécutez la commande suivante:

    apt-get update && apt-get install -y chromium-browser
    
  3. Vous devez créer l'alias chromium-browser en tant que chromium ou exporter la variable d'environnement CHROMIUM_PATH. Pour ajouter l'alias chromium-browser en tant que chromium, placez le code suivant dans le fichier ~/.bashrc:

    alias chromium='chromium-browser'
    

    Pour communiquer cet alias à Looker, exécutez la commande suivante dans la ligne de commande:

    sudo ln -s /usr/bin/chromium-browser /usr/bin/chromium
    
  4. Après avoir défini les variables d'environnement facultatives, redémarrez l'application Looker pour qu'elles soient prises en compte. Vous devrez peut-être également redémarrer toutes les sessions de terminal ouvertes ou exécuter source ~/.bash_profile pour que le terminal puisse lire la nouvelle configuration.

Après avoir installé Chromium, vous devriez obtenir une réponse valide de chromium --version si vous n'avez pas défini la variable d'environnement CHROMIUM_PATH ou $CHROMIUM_PATH --version si vous avez défini la variable d'environnement CHROMIUM_PATH.

Installer Chromium sur Debian

Looker vous recommande d'utiliser la commande sudo lorsque vous effectuez des étapes nécessitant des autorisations élevées. N'installez pas Chromium lorsque vous êtes connecté en tant qu'utilisateur racine. Si vous installez Chromium en étant connecté en tant qu'utilisateur racine, Looker risque de ne pas pouvoir exécuter le rendu PDF ou PNG.

Chromium nécessite Debian 9 (Stretch) ou une version ultérieure.

Si votre instance Looker utilise Docker avec une installation Debian simple, installez procps et vérifiez que vous n'êtes pas en mode root.

  1. Les polices doivent être installées sur le système pour que Chromium puisse démarrer. Vous pouvez installer des polices à l'aide de l'interface de ligne de commande en exécutant la commande suivante:

    apt-get install fonts-freefont-otf
    
  2. Pour installer Chromium, exécutez la commande suivante:

    apt-get update && apt-get install -y chromium
    
  3. Après avoir défini les variables d'environnement facultatives, redémarrez l'application Looker pour qu'elles soient prises en compte. Vous devrez peut-être également redémarrer toutes les sessions de terminal ouvertes ou exécuter source ~/.bash_profile pour que le terminal puisse lire la nouvelle configuration.

Après avoir installé Chromium, vous devriez obtenir une réponse valide de chromium --version si vous n'avez pas défini la variable d'environnement CHROMIUM_PATH ou $CHROMIUM_PATH --version si vous avez défini la variable d'environnement CHROMIUM_PATH.

Variables d'environnement Chromium facultatives

  • CHROMIUM_PATH : chemin d'accès au binaire Chromium. Valeur par défaut : chromium.

  • CHROMIUM_PID_DIR: chemin d'accès à l'emplacement où la bibliothèque peut stocker les fichiers PID Chromium. La valeur par défaut est chromium_pid_files dans le répertoire de travail de l'application Looker.

  • CHROMIUM_PORT_RANGE_START et CHROMIUM_PORT_RANGE_END: l'application Chromium a besoin d'une plage de ports pour communiquer entre les processus sur la machine locale. La plage par défaut est comprise entre 40 000 et 40 500, mais vous pouvez la remplacer en définissant ces deux variables d'environnement. Les ports inutilisés sont sélectionnés de manière aléatoire dans la plage et ne sont utilisés que pendant la durée d'un seul rendu.

  • DISABLE_EXTERNAL_RENDER_ACCESS: les administrateurs d'instances ou de serveurs Looker hébergés par le client qui n'ont pas d'accès Internet externe ou bloqué doivent définir DISABLE_EXTERNAL_RENDER_ACCESS=true. En règle générale, le moteur de rendu Chromium attend que toutes les ressources demandées par la page soient terminées avant d'envoyer le message "finished" qui invite Looker à produire le contenu. Certaines de ces requêtes peuvent être abandonnées en raison d'un manque de connexion, entraînant des délais avant expiration ou des délais d'affichage très longs. Définir cette variable d'environnement sur true empêche le moteur de rendu d'attendre que toutes les requêtes soient terminées. Certaines visualisations de carte et certaines visualisations personnalisées installées à partir de Looker Marketplace peuvent nécessiter un accès à Internet.