Halaman ini menjelaskan cara menginstal aplikasi Looker untuk deployment yang dihosting pelanggan.
Hosting aplikasi Looker tidak bergantung pada lokasi data Anda; data selalu tetap berada dalam database dan tidak disalin ke instance Looker.
Spesifikasi deployment
Jika akan menjalankan Looker pada jaringan yang tidak terhubung ke internet, Anda mungkin perlu menyiapkan server proxy untuk berkomunikasi dengan server lisensi Looker atau menggunakan layanan web tanpa server yang hanya melakukan panggilan web, seperti BigQuery.
Instal aplikasi Looker di mesin khusus yang memenuhi persyaratan minimum berikut:
- CPU 1,2 GHz; Looker merekomendasikan dua core atau lebih.
- RAM kosong 8 GB.
- 10 GB kapasitas disk kosong.
- Ruang file swap sebesar 2 GB.
- Linux. Kami menggunakan Ubuntu Linux (rilis LTS) untuk hosting Looker internal, dan kami merekomendasikannya bagi pelanggan yang tidak memiliki preferensi Linux. Namun, kami mendukung Looker pada versi rilis semua distribusi Linux perusahaan utama, termasuk RedHat, CentOS, dan Amazon Linux. Looker hanya didukung pada versi Linux dengan set petunjuk x64.
Java OpenJDK 11.0.12+, OpenJDK 8.0.181+, atau update HotSpot 1.8 161+. Looker menggunakan OpenJDK (versi 11) untuk meningkatkan performa dan penggunaan memori. Looker merekomendasikan JDK, bukan JRE, untuk memanfaatkan alat pemecahan masalah tambahan. Selain itu, Looker merekomendasikan agar Anda melakukan transisi ke update Java baru setelah dirilis. Versi Java, Oracle JDK, dan OpenJDK versi lain tidak didukung untuk saat ini.
libssl
danlibcrypt.so
harus ada pada sistem.Anda harus mengizinkan traffic masuk ke instance Looker melalui port TCP
9999
.Jika pengguna memerlukan akses API, Anda harus mengizinkan traffic masuk ke instance Looker melalui port TCP
19999
.Jika Looker terhubung ke AWS Redshift dari jaringan pribadi AWS VCP, Anda harus menetapkan MTU ke 1500. Untuk mengetahui informasi selengkapnya terkait setelan ini, lihat bagian Mengonfigurasi MTU instance dalam artikel Amazon Web Services ini. Jika Looker mendeteksi bahwa setelan MTU lebih besar dari 1500 selama pengujian koneksi database, error berikut akan ditampilkan:
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.
Setelan keepalive TCP berikut. Untuk mempertahankannya melalui mulai ulang, ini harus ditetapkan di
/etc/sysctl.conf
atau file di direktori/etc/sysctl.d
:net.ipv4.tcp_keepalive_time=200 net.ipv4.tcp_keepalive_intvl=200 net.ipv4.tcp_keepalive_probes=5
Pengguna bernama
looker
di grup bernamalooker
untuk menjalankan aplikasi Looker.Ulimit untuk pengguna
looker
4096
atau yang lebih tinggi. Anda dapat melakukannya dengan menambahkan baris berikut ke/etc/security/limits.conf
:looker soft nofile 4096 looker hard nofile 4096
Sinkronisasi waktu melalui NTP atau yang setara.
Folder
/tmp
tidak boleh dipasang dengan opsi noexec.Direktori utama
looker
tidak boleh dipasang pada volume NFS.Sebaiknya setel zona waktu server ke UTC, tetapi tidak wajib.
Git 2.39.1 atau yang lebih baru diperlukan untuk Looker 23.6 dan yang lebih baru.
Meskipun tidak diperlukan, Netcat dapat berguna untuk memecahkan masalah konektivitas jaringan. Untuk menginstal Netcat di, misalnya, server berbasis Ubuntu, perintah yang umum adalah:
sudo apt-get install netcat
Jika diperlukan, Anda dapat menyiapkan server proxy untuk menangani permintaan HTTP(S) yang harus dapat dibuat oleh Looker ke 'core' di localhost. Untuk berkomunikasi dengan server proxy lokal Looker, Anda harus menambahkan beberapa argumen khusus di
lookerstart.cfg
: tambahkanhttp.nonProxyHosts=localhost
untuk mengaktifkan akses ke localhost Looker tanpa melalui proxy.
Untuk menghindari konflik pemeliharaan dan resource, Anda tidak boleh menggunakan server Looker untuk menghosting aplikasi lain.
Aktifkan ntpd atau chronyd
NTP adalah singkatan dari {i>Network Time Protocol<i}. Hal ini memungkinkan jam sistem host Anda selalu mempertahankan waktu yang benar, yang diperlukan Looker untuk berfungsi dengan benar. Looker tidak memerlukan software sinkronisasi waktu tertentu digunakan selama waktu tetap sinkron. Tidak perlu menjalankan server NTP; hanya klien NTP yang diperlukan. Anda dapat mengganti chronyd dengan NTP.
Lihat dokumentasi vendor OS untuk mengetahui informasi tentang cara mengaktifkan ntpd atau chronyd.
Buat kunci enkripsi
Looker menggunakan enkripsi AES-256 Galois/Counter Mode (GCM) untuk mengenkripsi data sensitif yang disimpan secara internal, termasuk:
- Cadangan database internal Looker
- Informasi koneksi database dan layanan
- Informasi autentikasi pengguna
- Nilai atribut pengguna
- Data pelanggan yang di-cache atau disiapkan untuk dikirim
Untuk melihat daftar mendetail tentang data yang dienkripsi Looker, buka permintaan dukungan.
Data dienkripsi menggunakan kunci data unik dan berisi amplop enkripsi yang ditandatangani dan diberi versi untuk menjamin verifikasi. Mode ini memerlukan penggunaan Kunci Master Pelanggan (CMK) eksternal. CMK digunakan untuk memperoleh, mengenkripsi, dan mendekripsi Kunci Enkripsi Kunci (KEK), yang kemudian digunakan untuk memperoleh, mengenkripsi, dan mendekripsi kunci data.
Enkripsi hanya digunakan untuk database dan cache internal Looker. Database pelanggan tidak terpengaruh oleh enkripsi Looker dengan cara apa pun. Selain itu, hanya data statis (data yang disimpan di disk) yang dienkripsi dengan cara ini.
Penginstalan yang dihosting pelanggan dapat menggunakan akun AWS KMS atau sistem pengelolaan kunci kustom mereka sendiri. Semua kunci data dan KEK dienkripsi dan digunakan secara internal pada penginstalan Looker yang dihosting oleh pelanggan. Jika Anda tidak menggunakan AWS KMS, CMK eksternal harus disimpan di lokasi yang aman dan permanen. Kehilangan CMK setelah mengenkripsi database internal dapat mengakibatkan hilangnya instance Anda.
Jika Anda menggunakan AWS KMS
Jika Anda menggunakan AWS KMS, buat CMK menggunakan Konsol Pengelolaan AWS atau API.
Setelah membuat CMK, Looker merekomendasikan agar Anda membuat peran IAM baru yang unik untuk CMK dan melampirkannya ke instance Looker.
Berikut adalah contoh peran IAM yang berisi izin minimum yang diperlukan untuk CMK Anda:
{
"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/*"
}
]
}
Setelah Anda membuat CMK dan peran IAM baru, tetapkan variabel lingkungan AWS_REGION
ke region AWS Anda dan variabel lingkungan LKR_AWS_CMK
ke alias CMK Anda:
export AWS_REGION=<AWS_region>
export LKR_AWS_CMK=alias/<CMK_alias>
Atau, Anda juga dapat menetapkan variabel lingkungan LKR_AWS_CMK_EC
untuk menetapkan konteks enkripsi AWS kustom. Jika Anda tidak menetapkan variabel lingkungan ini, Looker akan menggunakan konteks enkripsi default, string Looker_Encryption_Context
.
export LKR_AWS_CMK_EC=<My_Encryption_Context>
Jika Anda tidak menggunakan AWS KMS
Jika Anda tidak menggunakan AWS KMS, buat CMK 32 byte Base64. Anda dapat menyimpan CMK dalam variabel lingkungan atau dalam file:
Untuk membuat CMK dan menyimpannya dalam variabel lingkungan, Anda dapat menggunakan perintah berikut untuk membuat CMK:
openssl rand -base64 32
Setelah Anda membuat CMK, salin dan gunakan perintah berikut untuk menyimpan CMK di variabel lingkungan
LKR_MASTER_KEY_ENV
(dengan<CMK_value>
adalah CMK yang Anda buat dengan perintah sebelumnya):export LKR_MASTER_KEY_ENV=<CMK_value>
Untuk membuat dan menyimpan CMK dalam file, Anda dapat menggunakan perintah berikut (dengan
<path_to_key_file>
adalah jalur dan nama file untuk menyimpan CMK):openssl rand -base64 32 > <path_to_key_file>
Setelah membuat file CMK, setel izin file kunci ke akses hanya baca pengguna saat ini:
chmod 0400 <path_to_key_file>
Setelah membuat CMK, pastikan untuk menyimpannya di lokasi yang aman dan permanen sebelum melanjutkan! Kehilangan CMK setelah mengenkripsi database internal dapat mengakibatkan hilangnya instance Anda.
Setelah membuat dan menyimpan CMK, tetapkan variabel lingkungan LKR_MASTER_KEY_ENV
:
Jika Anda menyimpan CMK dalam variabel lingkungan, tetapkan variabel lingkungan
LKR_MASTER_KEY_ENV
ke nilai CMK:export LKR_MASTER_KEY_ENV=<CMK_value>
Jika Anda menyimpan CMK dalam file, tetapkan variabel lingkungan
LKR_MASTER_KEY_FILE
ke jalur file CMK:export LKR_MASTER_KEY_FILE=<path_to_key_file>
Setelah membuat CMK, pastikan untuk menyimpannya di lokasi yang aman dan permanen sebelum melanjutkan! Kehilangan CMK setelah mengenkripsi database internal dapat mengakibatkan hilangnya instance Anda.
Menginstal aplikasi Looker
Buat grup
looker
.sudo groupadd looker
Buat
looker
pengguna dan direktori utamanya.sudo useradd -m -g looker looker
Beralihlah ke pengguna
looker
; jangan jalankan Looker sebagai root.sudo su - looker
Buat subdirektori
looker
di direktori utama.mkdir ~/looker
Ubah ke subdirektori
looker
.cd ~/looker
Pastikan Anda berada di direktori yang benar.
pwd
Jika direktori pengguna Anda berada di bawah
/home
, output perintah ini seharusnya adalah/home/looker/looker
.Download file Looker JAR yang diinginkan melalui salah satu metode di halaman dokumentasi Mendownload file Looker JAR. Pastikan kedua file JAR memiliki versi yang sama; menggunakan versi inti dan file JAR dependensi yang berbeda dapat menyebabkan ketidakstabilan dalam penginstalan Looker Anda.
Download skrip startup terbaru di repo GitHub open-source Looker. Jika ingin Looker dijalankan saat sistem dimulai, Anda dapat mendownload skrip Looker_init serta menggunakan opsi skrip
systemd
daninit
.Pindahkan skrip startup (bernama
looker
) dan file Looker JAR (bernamalooker-x.x.x.jar
danlooker-dependencies-x.x.x.jar
, denganx.x.x
sebagai nomor versinya) ke direktori~/looker
baru.Mengganti nama
looker-x.x.x.jar
menjadilooker.jar
, danlooker-dependencies-x.x.x.jar
menjadilooker-dependencies.jar
.Skrip startup secara otomatis menentukan berapa banyak memori Java yang akan dialokasikan ke Looker. Jika Anda ingin menyesuaikan nilai ini secara manual, lihat halaman dokumentasi Setelan memori Java yang direkomendasikan untuk informasi selengkapnya.
Buat skrip startup Looker dapat dieksekusi (tetapkan izin ke
0750
).chmod 0750 looker
Mulai proses Looker dari shell sebagai pengguna
looker
../looker start
Untuk bantuan tanda startup, gunakan:
java -jar looker.jar --help
Atau, untuk bantuan perintah startup, gunakan:
java -jar looker.jar help
Buka browser ke
https://hostname:9999
denganhostname
sebagai nama DNS host yang menjalankan Looker.Anda harus menggunakan
https
di URL, yang akan membuat peringatan keamanan yang harus Anda lewati. Peringatan ini akan berlanjut hingga sertifikat SSL yang valid diinstal di server.Masukkan kunci lisensi yang diperoleh dari analis Looker Anda.
Masukkan nama, email, dan sandi untuk membuat akun pertama Anda.
Buat data DNS
Tambahkan data DNS looker.[yourdomain].com
untuk server. Langkah ini bersifat opsional, tetapi direkomendasikan.
Men-deploy Looker secara otomatis
Looker dapat di-deploy menggunakan alat pengelolaan konfigurasi seperti Ansible atau Chef. Contoh peran Ansible untuk deployment otomatis tersedia di halaman dokumentasi Alat pengelolaan konfigurasi.
Penyesuaian Hypervisor
Looker berjalan sebagai virtual machine Java. Jika instance Looker Anda menggunakan tamu VMware, Anda mungkin perlu melakukan beberapa penyesuaian performa. Lihat Panduan praktik terbaik Java VMware.
Di platform virtualisasi lainnya, hal ini dapat meningkatkan performa untuk mencadangkan memori host Looker dari hypervisor. Hal ini tidak dapat dikontrol di Amazon EC2; namun, untuk vendor lain, Anda harus berkonsultasi dengan dokumentasi mereka untuk informasi lebih lanjut.
Menyiapkan database backend MySQL opsional
Secara default, Looker menggunakan database dalam memori HyperSQL untuk menyimpan konfigurasinya, pengguna, dan data lainnya. Namun, Anda dapat menggunakan database MySQL eksternal untuk menyimpan informasi internal Looker. Lihat halaman dokumentasi Bermigrasi ke MySQL untuk mendapatkan informasi tentang cara mengonfigurasi dan menyesuaikan database backend MySQL.
Langkah berikutnya
Setelah menginstal Looker, Anda siap untuk mengonfigurasi opsi startup Looker.