This page describes how to install the Looker application for a customer-hosted deployment.
Hosting the Looker application is independent of where your data resides; data always remains in-database and is not copied to the Looker instance.
If you’re going to run Looker on a network that does not connect to the Internet, you may need to set up a proxy server to communicate with Looker’s license server or use serverless web services that only make web calls, like BigQuery.
Install the Looker application on a dedicated machine that meets the following minimum requirements:
- 1.2GHz CPU; Looker recommends two or more cores.
- 8 GB free RAM.
- 10 GB free disk space.
- 2 GB swap file space.
- Linux. We use Ubuntu Linux (LTS releases) for our internal Looker hosting, and recommend it for customers who do not have a Linux preference. However, we support Looker on release versions of all major enterprise Linux distributions, including RedHat, CentOS and Amazon Linux.
- Java HotSpot 1.8 update 161+ or OpenJDK 8 181+. Java 1.8 is specifically required. We recommend installing either the Oracle JDK (version 8) or OpenJDK (version 8) instead of the JRE for the extra troubleshooting tools. We also recommend transitioning to new Java Hotspot 1.8 updates as they are released. Java 1.9, Oracle JDK version 9, and other versions of OpenJDK are not supported at this time.
libcrypt.somust be present on the system.
- Network access from users to TCP port
- If API access is required, network access from users to TCP port
If connecting to AWS Redshift from an AWS VPC private network, an MTU setting of 1500. For more information about this setting, see this AWS article. If Looker detects that the MTU is greater than 1500 during a database connection test, it displays the following 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.
The following TCP keepalive settings. To persist through a reboot these should be set in
/etc/sysctl.confor a file in the
net.ipv4.tcp_keepalive_time=200 net.ipv4.tcp_keepalive_intvl=200 net.ipv4.tcp_keepalive_probes=5
A user named
lookerin the group named
lookerto run the Looker application.
A ulimit for the
4096or higher. You can do this by adding the following lines to
looker soft nofile 4096 looker hard nofile 4096
Time synchronization via NTP or equivalent
/tmpfolder must NOT be mounted with the noexec option.
lookerhome directory should NOT be mounted on an NFS volume.
- Setting the server’s time zone to UTC is recommended but not required.
- Git 1.8 or later is required. Though not required, the most recent stable version of Git can be helpful for troubleshooting Git issues.
Though not required, Netcat can be helpful for troubleshooting network connectivity issues. To install Netcat, for example, on a Ubuntu-based server, a common command is:
sudo apt-get install netcat
If needed, you can set up a proxy server to handle the HTTP(S) requests that Looker needs to be able to make to ‘core’ on localhost. To communicate with Looker’s local proxy server requires that you add some special arguments in
http.nonProxyHosts=localhostto enable access to Looker’s localhost without going through the proxy. See an example of how to connect Looker to Big Query using a web proxy in this Community topic.
In order to avoid maintenance and resource conflicts, you should not use the Looker server to host other applications.
Enable ntpd or chronyd
NTP stands for Network Time Protocol. It enables your host’s system clock to always maintain the correct time, which is important for Looker to function correctly. Looker does not require any particular time synchronization software be used as long as times remain in sync. It is NOT necessary to run an NTP server; only the NTP client is needed. You may substitute chronyd for NTP.
Consult your OS vendor’s documentation for information on enabling ntpd or chronyd.
Install the Looker Application
sudo groupadd looker
lookerand its home directory.
sudo useradd -m -g looker looker
Switch to the
lookeruser; do not run Looker as root.
sudo su - looker
lookersubdirectory in the home directory.
Change to the
Make sure you are in the correct directory.
If your user directories are under
/home, the output of this command should be
Download the desired Looker JAR files through one of the methods on the Downloading the Looker JAR Files documentation page. Ensure that both JAR files are the same version; using different versions of the core and dependency JAR files can cause instability in your Looker installation.
Download the latest startup script at this GitHub repo. If you would like Looker to run at system startup, you can download and use both the
Move the startup script (named
looker) and Looker JAR files, named
x.x.xis the version number, to the new
The startup script automatically determines how much Java memory to allocate to Looker. If you would like to customize this value manually, see Recommended Java Memory Settings for more information.
Make the Looker startup script executable (set the permissions to
chmod 0750 looker
Start the Looker process from shell as the
For startup flag help, use:
java -jar looker.jar --help
Or, for startup command help, use:
java -jar looker.jar help
Open a browser to
hostnameis the DNS name of the host running Looker.
You should use
httpsin the URL, which will create a security warning that you will need to bypass. This warning will persist until a valid SSL certificate is installed on the server.
Enter the license key obtained from your Looker analyst.
Enter a name, an email, and a password to create your first account.
Create a DNS Record
looker.[yourdomain].com DNS record for the server. This step is optional, but recommended.
Deploying Looker Automatically
Looker may be deployed using a configuration management tool such as Ansible or Chef. An example Ansible role for automated deployment is available on the Configuration Management Tools documentation page.
Looker runs as a Java virtual machine. If your Looker instance is on a VMware guest, you may need to do some performance tuning. Please see the VMware Java best practices guide.
On other virtualization platforms, it may improve performance to reserve the Looker host’s memory from the hypervisor. This is not controllable on Amazon EC2; however, for other vendors, please consult their documentation.
Setting Up an Optional MySQL Backend Database
By default, Looker uses a HyperSQL in-memory database to store its configuration, users, and other data. You can use an external MySQL database, however, to store Looker’s internal information. See the Migrating to MySQL documentation page for information about configuring and tuning a MySQL backend database.
After you have installed Looker, you’re ready to configure Looker startup options.