Menginstal aplikasi Looker

Halaman ini menjelaskan cara menginstal aplikasi Looker untuk deployment yang dihosting pelanggan.

Hosting aplikasi Looker tidak bergantung pada lokasi data Anda; data akan selalu berada di dalam database dan tidak disalin ke instance Looker.

Spesifikasi deployment

Jika Anda akan menjalankan Looker di jaringan yang tidak terhubung ke Internet, Anda mungkin perlu menyiapkan server proxy untuk berkomunikasi dengan server lisensi Looker atau menggunakan layanan web serverless yang hanya melakukan panggilan web, seperti BigQuery.

Instal aplikasi Looker di komputer khusus yang memenuhi persyaratan minimum berikut:

  • CPU 1,2 GHz; Looker merekomendasikan dua core atau lebih.
  • RAM kosong 8 GB.
  • Ruang disk kosong 10 GB.
  • Ruang file swap 2 GB.
  • Linux. Kami menggunakan Ubuntu Linux (rilisan LTS) untuk hosting Looker internal kami, dan kami merekomendasikannya untuk 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 di versi Linux dengan set instruksi x64.
  • Java OpenJDK 11.0.12+ atau HotSpot 1.8 update 161+. Looker menggunakan OpenJDK (versi 11) untuk peningkatan performa dan penggunaan memori. Looker merekomendasikan JDK, bukan JRE, untuk memanfaatkan alat pemecahan masalah tambahan. Selain itu, Looker merekomendasikan agar Anda beralih ke update Java baru saat dirilis. Versi Java, Oracle JDK, dan OpenJDK lainnya tidak didukung saat ini.

  • libssl dan libcrypt.so harus ada di 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 VPC, Anda harus menyetel MTU ke 1500. Untuk mengetahui informasi selengkapnya tentang setelan ini, lihat bagian Mengonfigurasi MTU instance dalam artikel Amazon Web Services ini. Jika Looker mendeteksi bahwa setelan MTU lebih besar dari 1500 selama uji koneksi database, Looker akan menampilkan error berikut:

    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 mempertahankan setelan ini saat mulai ulang, setelan 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 dalam grup bernama looker untuk menjalankan aplikasi Looker.

  • Ulimit untuk pengguna looker sebesar 4096 atau 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 beranda looker tidak boleh dipasang pada volume NFS.

  • Menetapkan zona waktu server ke UTC direkomendasikan, 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 membantu 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 perlu dilakukan Looker ke 'core' di localhost. Untuk berkomunikasi dengan server proxy lokal Looker, Anda harus menambahkan beberapa argumen khusus di lookerstart.cfg: tambahkan http.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.

Mengaktifkan ntpd atau chronyd

NTP adalah singkatan dari Network Time Protocol. Hal ini memungkinkan jam sistem host Anda selalu mempertahankan waktu yang benar, yang diperlukan Looker agar berfungsi dengan benar. Looker tidak memerlukan penggunaan software sinkronisasi waktu tertentu selama waktu tetap disinkronkan. Server NTP tidak diperlukan; hanya klien NTP yang dibutuhkan. Anda dapat mengganti chronyd dengan NTP.

Lihat dokumentasi vendor OS Anda untuk mendapatkan informasi tentang cara mengaktifkan ntpd atau chronyd.

Buat kunci enkripsi

Looker menggunakan enkripsi Galois/Counter Mode (GCM) AES-256 untuk mengenkripsi data sensitif yang disimpan secara internal, termasuk:

  • Pencadangan database internal Looker
  • Informasi koneksi database dan layanan
  • Informasi autentikasi pengguna
  • Nilai atribut pengguna
  • Data pelanggan yang di-cache atau disiapkan untuk pengiriman

Untuk melihat daftar lengkap data yang dienkripsi Looker, buka permintaan dukungan.

Data dienkripsi menggunakan kunci data unik dan berisi envelope enkripsi yang ditandatangani dan diberi versi untuk memastikan verifikasi. Mode ini memerlukan penggunaan Kunci Master Pelanggan (CMK) eksternal. CMK digunakan untuk mendapatkan, mengenkripsi, dan mendekripsi Kunci Enkripsi Kunci (KEK), yang kemudian digunakan untuk mendapatkan, mengenkripsi, dan mendekripsi kunci data.

Enkripsi hanya digunakan untuk cache dan database 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 mereka sendiri atau sistem pengelolaan kunci kustom mereka sendiri. Semua kunci data dan KEK dienkripsi dan digunakan secara internal pada penginstalan Looker yang dihosting pelanggan. Jika Anda tidak menggunakan AWS KMS, CMK eksternal harus disimpan di lokasi yang aman dan permanen. Kehilangan CMK setelah mengenkripsi database internal dapat menyebabkan hilangnya instance Anda.

Jika Anda menggunakan AWS KMS

Jika Anda menggunakan AWS KMS, buat CMK menggunakan AWS Management Console atau API.

Setelah Anda membuat CMK, Looker merekomendasikan agar Anda membuat peran IAM baru yang unik untuk CMK Anda dan melampirkannya dengan instance Looker Anda.

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 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>

Secara opsional, Anda juga dapat menetapkan variabel lingkungan LKR_AWS_CMK_EC untuk menetapkan konteks enkripsi AWS kustom. Jika Anda tidak menyetel 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 Base64 32 byte. 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 membuat CMK, salin CMK tersebut 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 hanya baca untuk pengguna saat ini:

    chmod 0400 <path_to_key_file>
    

Setelah Anda membuat CMK, pastikan untuk menyimpannya di lokasi yang aman dan permanen sebelum melanjutkan. Kehilangan CMK setelah mengenkripsi database internal dapat menyebabkan hilangnya instance Anda.

Setelah Anda 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 Anda membuat CMK, pastikan untuk menyimpannya di lokasi yang aman dan permanen sebelum melanjutkan. Kehilangan CMK setelah mengenkripsi database internal dapat menyebabkan hilangnya instance Anda.

Menginstal aplikasi Looker

  1. Buat grup looker.

    sudo groupadd looker
    
  2. Buat pengguna looker dan direktori home-nya.

    sudo useradd -m  -g looker  looker
    
  3. Beralih ke pengguna looker; jangan jalankan Looker sebagai root.

    sudo su - looker
    
  4. Buat subdirektori looker di direktori beranda.

    mkdir ~/looker
    
  5. Ubah ke subdirektori looker.

    cd ~/looker
    
  6. Pastikan Anda berada di direktori yang benar.

    pwd
    

    Jika direktori pengguna Anda berada di bagian /home, output perintah ini harus berupa /home/looker/looker.

  7. Download file JAR Looker yang dipilih melalui salah satu metode di halaman dokumentasi Mendownload file JAR Looker. Pastikan kedua file JAR memiliki versi yang sama; menggunakan versi file JAR inti dan dependensi yang berbeda dapat menyebabkan ketidakstabilan dalam penginstalan Looker Anda.

  8. Download skrip startup terbaru di repo GitHub looker-open-source. Jika ingin Looker berjalan saat sistem dimulai, Anda dapat mendownload skrip looker_init dan menggunakan opsi skrip systemd dan init.

  9. Pindahkan skrip startup (bernama looker) dan file JAR Looker (bernama looker-x.x.x.jar dan looker-dependencies-x.x.x.jar, dengan x.x.x adalah nomor versi) ke direktori ~/looker baru.

  10. Mengganti nama looker-x.x.x.jar menjadi looker.jar, dan looker-dependencies-x.x.x.jar menjadi looker-dependencies.jar.

  11. Skrip startup secara otomatis menentukan jumlah memori Java yang akan dialokasikan ke Looker. Jika Anda ingin menyesuaikan nilai ini secara manual, lihat halaman dokumentasi Setelan memori Java yang direkomendasikan untuk mengetahui informasi selengkapnya.

  12. Jadikan skrip startup Looker dapat dieksekusi (tetapkan izin ke 0750).

    chmod 0750 looker
    
  13. Mulai proses Looker dari shell sebagai pengguna looker.

    ./looker start
    
  14. Untuk bantuan tanda startup, gunakan:

    java -jar looker.jar --help
    

    Atau, untuk bantuan perintah startup, gunakan:

    java -jar looker.jar help
    
  15. Buka browser ke https://hostname:9999 dengan hostname adalah nama DNS host yang menjalankan Looker.

    Anda harus menggunakan https di URL, yang akan membuat peringatan keamanan yang harus Anda lewati. Peringatan ini akan tetap ada hingga sertifikat SSL yang valid diinstal di server.

  16. Masukkan kunci lisensi yang diperoleh dari analis Looker Anda.

  17. Masukkan nama, email, dan sandi untuk membuat akun pertama Anda.

Membuat 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 mesin virtual Java. Jika instance Looker Anda berada di tamu VMware, Anda mungkin perlu melakukan beberapa penyesuaian performa. Lihat panduan praktik terbaik Java VMware.

Di platform virtualisasi lainnya, performa dapat ditingkatkan dengan mencadangkan memori host Looker dari hypervisor. Hal ini tidak dapat dikontrol di Amazon EC2; namun, untuk vendor lain, Anda harus melihat dokumentasi mereka untuk mengetahui informasi selengkapnya.

Menyiapkan database backend MySQL opsional

Secara default, Looker menggunakan database dalam memori HyperSQL untuk menyimpan konfigurasi, pengguna, dan data lainnya. Namun, Anda dapat menggunakan database MySQL eksternal untuk menyimpan informasi internal Looker. Lihat halaman dokumentasi Bermigrasi ke MySQL untuk mengetahui informasi tentang cara mengonfigurasi dan menyetel database backend MySQL.

Langkah berikutnya

Setelah menginstal Looker, Anda siap mengonfigurasi opsi startup Looker.