Instala la aplicación Looker

En esta página, se describe cómo instalar la aplicación de Looker para una implementación alojada por el cliente.

Alojar la aplicación de Looker es independiente de la ubicación de tus datos; estos siempre permanecen en la base de datos y no se copian en la instancia de Looker.

Especificaciones de la Deployment

Si vas a ejecutar Looker en una red que no se conecta a Internet, es posible que debas configurar un servidor proxy para comunicarte con el servidor de licencias de Looker o usar servicios web sin servidores que solo realizan llamadas web, como BigQuery.

Instala la aplicación de Looker en una máquina dedicada que cumpla con los siguientes requisitos mínimos:

  • CPU de 1.2 GHz; Looker recomienda tener dos o más núcleos.
  • 8 GB de RAM libre.
  • 10 GB de espacio libre en disco
  • 2 GB de espacio para archivos de intercambio
  • Linux. Usamos Ubuntu Linux (versiones LTS) para nuestro hosting interno de Looker y la recomendamos para los clientes que no prefieren Linux. Sin embargo, admitimos Looker en versiones de actualización de todas las distribuciones empresariales principales de Linux, incluidas Red Hat, CentOS y Amazon Linux. Looker solo es compatible con versiones de Linux con conjuntos de instrucciones x64.
  • Java OpenJDK 11.0.12 y versiones posteriores, OpenJDK 8.0.181 y versiones posteriores, o HotSpot 1.8 actualización 161 y versiones posteriores. Looker usa OpenJDK (versión 11) para mejorar el rendimiento y el uso de memoria. Looker recomienda el JDK, en lugar del JRE, para aprovechar las herramientas adicionales de solución de problemas. Además, Looker recomienda que realices la transición a las nuevas actualizaciones de Java a medida que se lanzan. Otras versiones de Java, Oracle JDK y OpenJDK no son compatibles por el momento.

  • libssl y libcrypt.so deben estar presentes en el sistema.

  • Debes permitir el tráfico entrante a tu instancia de Looker a través del puerto TCP 9999.

  • Si los usuarios requieren acceso a la API, debes permitir el tráfico entrante a tu instancia de Looker a través del puerto TCP 19999.

  • Si Looker se conecta a AWS Redshift desde una red privada VCP de AWS, debes configurar la MTU en 1,500. Para obtener más información sobre esta configuración, consulta la sección Configura la MTU de una instancia de este artículo de Amazon Web Services. Si Looker detecta que el parámetro de configuración de MTU es superior a 1,500 durante una prueba de conexión de la base de datos, mostrará el siguiente error:

    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.
    
  • La siguiente configuración de keepalive de TCP. Para conservar la actividad tras un reinicio, estos deben configurarse en /etc/sysctl.conf o en un archivo del directorio /etc/sysctl.d:

    net.ipv4.tcp_keepalive_time=200
    net.ipv4.tcp_keepalive_intvl=200
    net.ipv4.tcp_keepalive_probes=5
    
  • Un usuario llamado looker en el grupo llamado looker para ejecutar la aplicación de Looker

  • Un ulimit para el usuario looker de 4096 o superior Para hacerlo, agrega las siguientes líneas a /etc/security/limits.conf:

    looker     soft     nofile     4096
    looker     hard     nofile     4096
    
  • Sincronización de tiempo mediante NTP o equivalente.

  • La carpeta /tmp no se debe activar con la opción noexec.

  • El directorio principal looker no se debe activar en un volumen de NFS.

  • Se recomienda configurar la zona horaria del servidor en UTC, pero no es obligatorio.

  • Se requiere Git 2.39.1 o una versión posterior para Looker 23.6 y versiones posteriores.

  • Aunque no es obligatorio, Netcat puede ser útil para solucionar problemas de conectividad de red. Para instalar Netcat en, por ejemplo, un servidor basado en Ubuntu, puedes usar un comando común:

    sudo apt-get install netcat
    
  • Si es necesario, puedes configurar un servidor proxy para controlar las solicitudes HTTP(S) que Looker debe poder realizar como “núcleo” en localhost. Para comunicarte con el servidor proxy local de Looker, debes agregar algunos argumentos especiales en lookerstart.cfg: agrega http.nonProxyHosts=localhost para habilitar el acceso al localhost de Looker sin pasar por el proxy.

A fin de evitar conflictos de mantenimiento y recursos, no debes usar el servidor de Looker para alojar otras aplicaciones.

Habilitar ntpd o chronyd

NTP es la sigla en inglés de protocolo NTP. Permite que el reloj del sistema de tu host mantenga siempre la hora correcta, que Looker necesita para funcionar correctamente. Looker no requiere el uso de ningún software de sincronización de hora en particular, siempre y cuando los tiempos permanezcan sincronizados. No es necesario ejecutar un servidor NTP; solo se necesita el cliente NTP. Puedes sustituir chronyd por NTP.

Consulta la documentación de tu proveedor del SO para obtener información sobre cómo habilitar ntpd o chronyd.

Crea una clave de encriptación

Looker usa la encriptación AES-256 Galois/Counter Mode (GCM) para encriptar los datos sensibles que se almacenan de forma interna, lo que incluye lo siguiente:

  • Copias de seguridad de la base de datos interna de Looker
  • Información de conexión de la base de datos y los servicios
  • Información de autenticación del usuario
  • Valores de atributos de usuario
  • Datos del cliente que se almacenan en caché o se preparan para la entrega

Para obtener una lista detallada de los datos que encripta Looker, abre una solicitud de asistencia.

Los datos se encriptan con una clave de datos única y contienen un sobre de encriptación firmado y con control de versiones para garantizar la verificación. Este modo requiere el uso de una clave maestra de cliente (CMK) externa. CMK se usa para derivar, encriptar y desencriptar la clave de encriptación de claves (KEK), que, a su vez, se usa para derivar, encriptar y desencriptar claves de datos.

La encriptación se usa solo para la base de datos y la caché internas de Looker. Las bases de datos de clientes no se ven afectadas por la encriptación de Looker de ninguna manera. Además, solo los datos estáticos (datos almacenados en el disco) se encriptan de esta manera.

Las instalaciones alojadas por el cliente pueden usar sus propias cuentas de KMS de AWS o sus propios sistemas de administración de claves personalizadas. Todas las claves de datos y la KEK se encriptan y se usan de forma interna en la instalación de Looker alojada por el cliente. Si no usas AWS KMS, el CMK externo debe mantenerse en una ubicación segura y permanente. La pérdida del CMK después de encriptar la base de datos interna puede provocar la pérdida de su instancia.

Si usas AWS KMS

Si usas AWS KMS, crea un CMK con la consola de administración de AWS o la API.

Después de crear el CMK, Looker recomienda crear un nuevo rol de IAM que sea único para tu CMK y adjuntarlo a tu instancia de Looker.

A continuación, se muestra un ejemplo de un rol de IAM que contiene los permisos mínimos requeridos para tu 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/*"
        }
    ]
}

Después de crear el CMK y el nuevo rol de IAM, configura la variable de entorno AWS_REGION como tu región de AWS y la variable de entorno LKR_AWS_CMK como el alias de tu CMK:

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

De manera opcional, también puedes establecer la variable de entorno LKR_AWS_CMK_EC para establecer un contexto de encriptación de AWS personalizado. Si no configuras esta variable de entorno, Looker usará el contexto de encriptación predeterminado, la cadena Looker_Encryption_Context.

export LKR_AWS_CMK_EC=<My_Encryption_Context>

Si no usas AWS KMS

Si no usas AWS KMS, genera una Base64 de 32 bytes CMK. Puedes almacenar el CMK en una variable de entorno o en un archivo:

  • Para generar el CMK y almacenarlo en una variable de entorno, puedes usar el siguiente comando:

    openssl rand -base64 32
    

    Después de generar el CMK, cópialo y usa el siguiente comando para almacenarlo en la variable de entorno LKR_MASTER_KEY_ENV (donde <CMK_value> es el CMK que generaste con el comando anterior):

    export LKR_MASTER_KEY_ENV=<CMK_value>
    
  • Para generar y almacenar el CMK en un archivo, puedes usar el siguiente comando (donde <path_to_key_file> es la ruta de acceso y el nombre de archivo para almacenar el CMK):

    openssl rand -base64 32 > <path_to_key_file>
    

    Después de generar el archivo CMK, configura los permisos del archivo de claves como el usuario actual de solo lectura:

    chmod 0400 <path_to_key_file>
    

Después de generar un CMK, asegúrate de guardarlo en una ubicación segura y permanente antes de continuar. La pérdida del CMK después de encriptar la base de datos interna puede provocar la pérdida de su instancia.

Una vez que hayas generado y almacenado el CMK, configura la variable de entorno LKR_MASTER_KEY_ENV:

  • Si almacenas tu CMK en una variable de entorno, establece la variable de entorno LKR_MASTER_KEY_ENV en el valor de CMK:

    export LKR_MASTER_KEY_ENV=<CMK_value>
    
  • Si almacenas el CMK en un archivo, configura la variable de entorno LKR_MASTER_KEY_FILE como la ruta de acceso al archivo CMK:

    export LKR_MASTER_KEY_FILE=<path_to_key_file>
    

Después de generar un CMK, asegúrate de guardarlo en una ubicación segura y permanente antes de continuar. La pérdida del CMK después de encriptar la base de datos interna puede provocar la pérdida de su instancia.

Instala la aplicación Looker

  1. Crear el grupo looker.

    sudo groupadd looker
    
  2. Crea el usuario looker y su directorio principal.

    sudo useradd -m  -g looker  looker
    
  3. Cambia al usuario looker y no ejecutes Looker como raíz.

    sudo su - looker
    
  4. Crea el subdirectorio looker en el directorio principal.

    mkdir ~/looker
    
  5. Cambia al subdirectorio looker.

    cd ~/looker
    
  6. Asegúrate de estar en el directorio correcto.

    pwd
    

    Si tus directorios de usuario están en /home, el resultado de este comando debería ser /home/looker/looker.

  7. Descarga los archivos JAR de Looker a través de uno de los métodos de la página de documentación Descarga los archivos JAR de Looker. Asegúrate de que ambos archivos JAR tengan la misma versión. El uso de versiones diferentes de los archivos JAR principales y de dependencia puede causar inestabilidad en la instalación de Looker.

  8. Descarga la secuencia de comandos de inicio más reciente en el repositorio de GitHub de código abierto de looker. Si deseas que Looker se ejecute al inicio del sistema, puedes descargar la secuencia de comandos looker_init y usar las opciones de secuencias de comandos systemd y init.

  9. Mueve la secuencia de comandos de inicio (llamada looker) y los archivos JAR de Looker (llamados looker-x.x.x.jar y looker-dependencies-x.x.x.jar, en los que x.x.x es el número de versión) al nuevo directorio ~/looker.

  10. Cambia el nombre de looker-x.x.x.jar a looker.jar y el de looker-dependencies-x.x.x.jar a looker-dependencies.jar.

  11. La secuencia de comandos de inicio determina automáticamente cuánta memoria Java asignar a Looker. Si quieres personalizar este valor de forma manual, consulta la página de documentación Configuración recomendada de memoria Java para obtener más información.

  12. Haz que la secuencia de comandos de inicio de Looker sea ejecutable (establece los permisos en 0750).

    chmod 0750 looker
    
  13. Inicia el proceso de Looker desde la shell como el usuario looker.

    ./looker start
    
  14. Para obtener ayuda con la marca de inicio, usa lo siguiente:

    java -jar looker.jar --help
    

    O bien, para obtener ayuda con el comando de inicio, usa lo siguiente:

    java -jar looker.jar help
    
  15. Abre un navegador en https://hostname:9999, en el que hostname es el nombre de DNS del host que ejecuta Looker.

    Debes usar https en la URL, lo que creará una advertencia de seguridad que deberás omitir. Esta advertencia persistirá hasta que se instale un certificado SSL válido en el servidor.

  16. Ingresa la clave de licencia que te proporcionó tu analista de Looker.

  17. Ingresa un nombre, un correo electrónico y una contraseña para crear tu primera cuenta.

Crea un registro DNS

Agrega un registro DNS looker.[yourdomain].com para el servidor. Este paso es opcional, pero se recomienda.

Implementa Looker automáticamente

Looker se puede implementar con una herramienta de administración de configuración, como Ansible o Chef. En la página de documentación de Herramientas de administración de configuración, se encuentra disponible un ejemplo de rol de Ansible para la implementación automatizada.

Ajuste de hipervisor

Looker se ejecuta como una máquina virtual de Java. Si tu instancia de Looker está en un invitado de VMware, es posible que debas ajustar el rendimiento. Consulta la guía de prácticas recomendadas para Java de VMware.

En otras plataformas de virtualización, es posible que se mejore el rendimiento para reservar la memoria del host de Looker desde el hipervisor. Esto no se puede controlar en Amazon EC2; sin embargo, para otros proveedores, debes consultar su documentación para obtener más información.

Configura una base de datos de backend de MySQL opcional

De forma predeterminada, Looker usa una base de datos HyperSQL en memoria para almacenar la configuración, los usuarios y otros datos. Sin embargo, puedes usar una base de datos de MySQL externa para almacenar la información interna de Looker. Consulta la página de documentación Migra a MySQL para obtener información sobre cómo configurar y ajustar una base de datos de backend de MySQL.

Próximos pasos

Después de instalar Looker, podrás configurar sus opciones de inicio.