Instalar la aplicación Looker

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

El alojamiento de la aplicación Looker es independiente de la ubicación de tus datos. Los datos siempre permanecen en la base de datos y no se copian en la instancia de Looker.

Especificaciones de la implementación

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

Instala la aplicación Looker en un equipo dedicado que cumpla los siguientes requisitos mínimos:

  • CPU de 1,2 GHz.Looker recomienda dos o más núcleos.
  • 8 GB de RAM libre.
  • 10 GB de espacio libre en disco.
  • 2 GB de espacio para el archivo de intercambio.
  • Linux. Usamos Ubuntu Linux (versiones LTS) para nuestro alojamiento interno de Looker y lo recomendamos a los clientes que no tengan una preferencia por Linux. Sin embargo, Looker es compatible con las versiones de lanzamiento de las principales distribuciones de Linux para empresas, como Red Hat, CentOS y Amazon Linux. Looker solo es compatible con versiones de Linux con conjuntos de instrucciones x64.
  • Java OpenJDK 11.0.12 o versiones posteriores, o HotSpot 1.8 update 161 o versiones posteriores. Looker usa OpenJDK (versión 11) para mejorar el rendimiento y el uso de memoria. Looker recomienda usar el JDK en lugar del JRE para aprovechar las herramientas de solución de problemas adicionales. Además, Looker recomienda que cambies a las nuevas actualizaciones de Java a medida que se publiquen. Por el momento, no se admiten otras versiones de Java, Oracle JDK y OpenJDK.

  • 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 necesitan 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 de VPC de AWS, debes definir el MTU en 1500. Para obtener más información sobre este ajuste, consulta la sección Configurar la MTU de una instancia de este artículo de Amazon Web Services. Si Looker detecta que el ajuste de MTU es superior a 1500 durante una prueba de conexión de base de datos, muestra 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.
    
  • Los siguientes ajustes de TCP KeepAlive. Para que se mantengan después de reiniciar, deben definirse 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 Looker.

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

    looker     soft     nofile     4096
    looker     hard     nofile     4096
    
  • Sincronización de la hora mediante NTP o un protocolo equivalente.

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

  • El directorio principal lookerno debe montarse en un volumen NFS.

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

  • Se necesita 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 un servidor basado en Ubuntu, por ejemplo, se suele usar el siguiente comando:

    sudo apt-get install netcat
    
  • Si es necesario, puedes configurar un servidor proxy para gestionar las solicitudes HTTP(S) que Looker necesita para poder enviar a "core" en localhost. Para comunicarte con el servidor proxy local de Looker, debes añadir algunos argumentos especiales en lookerstart.cfg: añade http.nonProxyHosts=localhost para habilitar el acceso al localhost de Looker sin pasar por el proxy.

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

Habilitar ntpd o chronyd

NTP son las siglas de Network Time Protocol (protocolo de hora de red). Permite que el reloj del sistema de tu host mantenga siempre la hora correcta, que Looker necesita para funcionar correctamente. Looker no requiere que se utilice ningún software de sincronización de hora en concreto, siempre que las horas se mantengan sincronizadas. No es necesario ejecutar un servidor NTP, solo se necesita el cliente NTP. Puedes sustituir chronyd por NTP.

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

Crear una clave de cifrado

Looker usa el cifrado AES-256 Galois/Counter Mode (GCM) para cifrar los datos sensibles que se almacenan internamente, incluidos los siguientes:

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

Para ver una lista detallada de los datos que cifra Looker, abre una solicitud de asistencia.

Los datos se cifran con una clave de datos única y contienen un envoltorio de cifrado firmado y versionado para garantizar la verificación. Este modo requiere el uso de una clave maestra del cliente (CMK) externa. La CMK se usa para derivar, cifrar y descifrar la clave de cifrado de claves (KEK), que a su vez se usa para derivar, cifrar y descifrar claves de datos.

El cifrado solo se usa en la base de datos y la caché internas de Looker. Las bases de datos de los clientes no se ven afectadas por el cifrado de Looker de ninguna manera. Además, solo se cifran de esta forma los datos estáticos (datos almacenados en el disco).

Las instalaciones alojadas por el cliente pueden usar sus propias cuentas de AWS KMS o sus propios sistemas de gestión de claves personalizados. Todas las claves de datos y la KEK se cifran y se usan internamente en la instalación de Looker alojada por el cliente. Si no usas AWS KMS, la CMK externa debe conservarse en una ubicación segura y permanente. Si pierde la CMK después de cifrar la base de datos interna, puede perder su instancia.

Si usas AWS KMS

Si usas AWS KMS, crea una CMK con AWS Management Console o la API.

Después de crear la CMK, Looker recomienda que cree un rol de IAM único para su CMK y que lo asocie a su instancia de Looker.

A continuación, se muestra un ejemplo de un rol de gestión de identidades y accesos que contiene los permisos mínimos necesarios 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 la CMK y el nuevo rol de gestión de identidades y accesos, asigna a la variable de entorno AWS_REGION tu región de AWS y a la variable de entorno LKR_AWS_CMK el alias de tu CMK:

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

También puedes definir la variable de entorno LKR_AWS_CMK_EC para establecer un contexto de cifrado de AWS personalizado. Si no defines esta variable de entorno, Looker usará el contexto de cifrado 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 CMK de 32 bytes en Base64. Puedes almacenar la CMK en una variable de entorno o en un archivo:

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

    openssl rand -base64 32
    

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

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

    openssl rand -base64 32 > <path_to_key_file>
    

    Después de generar el archivo de CMK, define los permisos del archivo de clave como de solo lectura para el usuario actual:

    chmod 0400 <path_to_key_file>
    

Una vez que hayas generado una CMK, asegúrate de almacenarla en una ubicación segura y permanente antes de continuar. Si pierde la CMK después de cifrar la base de datos interna, puede perder su instancia.

Una vez que hayas generado y almacenado tu CMK, define la variable de entorno LKR_MASTER_KEY_ENV:

  • Si almacena su CMK en una variable de entorno, asigne a la variable de entorno LKR_MASTER_KEY_ENV el valor de la CMK:

    export LKR_MASTER_KEY_ENV=<CMK_value>
    
  • Si almacenas tu CMK en un archivo, asigna a la variable de entorno LKR_MASTER_KEY_FILE la ruta del archivo de la CMK:

    export LKR_MASTER_KEY_FILE=<path_to_key_file>
    

Una vez que hayas generado una CMK, asegúrate de almacenarla en una ubicación segura y permanente antes de continuar. Si pierde la CMK después de cifrar la base de datos interna, puede perder su instancia.

Instalar la aplicación Looker

  1. Crear 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. No ejecutes Looker como root.

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

    mkdir ~/looker
    
  5. Cambia al subdirectorio looker.

    cd ~/looker
    
  6. Asegúrate de que estás 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. Descargue los archivos JAR de Looker elegidos mediante uno de los métodos que se indican en la página de documentación Descargar los archivos JAR de Looker. Asegúrate de que ambos archivos JAR tengan la misma versión. Si usas versiones diferentes de los archivos JAR principales y de dependencia, la instalación de Looker puede ser inestable.

  8. Descarga la secuencia de comandos de inicio más reciente del repositorio de GitHub looker-open-source. Si quieres que Looker se ejecute al iniciar el sistema, puedes descargar la secuencia de comandos looker_init y usar las opciones de secuencia 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, donde 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 de looker-dependencies-x.x.x.jar a looker-dependencies.jar.

  11. La secuencia de comandos de inicio determina automáticamente la cantidad de memoria Java que se debe asignar a Looker. Si quieres personalizar este valor manualmente, consulta la página de documentación Configuración de memoria de Java recomendada 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 el shell como usuario looker.

    ./looker start
    
  14. Para obtener ayuda sobre las marcas de inicio, usa lo siguiente:

    java -jar looker.jar --help
    

    También puedes usar el siguiente comando para obtener ayuda sobre los comandos de inicio:

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

    Debe usar https en la URL, lo que generará una advertencia de seguridad que tendrá que omitir. Esta advertencia se mantendrá hasta que se instale un certificado SSL válido en el servidor.

  16. Introduce la clave de licencia que te haya proporcionado tu analista de Looker.

  17. Introduce un nombre, un correo y una contraseña para crear tu primera cuenta.

Crear un registro DNS

Añade un registro DNS looker.[yourdomain].com para el servidor. Este paso es opcional, pero recomendable.

Desplegar Looker automáticamente

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

Ajuste del hipervisor

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

En otras plataformas de virtualización, puede mejorar el rendimiento si reservas la memoria del host de Looker desde el hipervisor. No se puede controlar en Amazon EC2. Sin embargo, en el caso de otros proveedores, debes consultar su documentación para obtener más información.

Configurar una base de datos backend MySQL opcional

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

Pasos siguientes

Una vez que hayas instalado Looker, podrás configurar las opciones de inicio de Looker.