Menginstal aplikasi Looker

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

Menghosting aplikasi Looker tidak bergantung pada tempat data Anda berada; data selalu tetap berada dalam database dan tidak disalin ke instance Looker.

Spesifikasi deployment

Jika 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 (rilis LTS) untuk hosting Looker internal, 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 pada 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 bertransisi ke update Java baru saat dirilis. Versi Java, Oracle JDK, dan OpenJDK lainnya tidak didukung untuk 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 menetapkan MTU ke 1500. Untuk mengetahui informasi selengkapnya tentang setelan ini, lihat bagian Mengonfigurasi MTU instance di artikel Amazon Web Services ini. Jika Looker mendeteksi bahwa setelan MTU lebih besar dari 1.500 selama pengujian 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. Agar tetap ada setelah mulai ulang, setelan 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 dalam grup bernama looker untuk menjalankan aplikasi Looker.

  • Ulimit untuk pengguna looker dari 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 beranda looker tidak boleh dipasang di volume NFS.

  • Sebaiknya tetapkan 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 membantu memecahkan masalah konektivitas jaringan. Untuk menginstal Netcat, misalnya, di server berbasis Ubuntu, perintah umum adalah:

    sudo apt-get install netcat
    
  • Jika diperlukan, Anda dapat menyiapkan server proxy untuk menangani permintaan HTTP(S) yang harus dapat 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. Tindakan ini memungkinkan jam sistem host Anda selalu mempertahankan waktu yang benar, yang diperlukan Looker agar berfungsi dengan benar. Looker tidak memerlukan software sinkronisasi waktu tertentu selama waktu tetap sinkron. Anda tidak perlu menjalankan server NTP; hanya klien NTP yang diperlukan. 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:

  • 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 mengetahui daftar mendetail data yang dienkripsi Looker, buka permintaan dukungan.

Data dienkripsi menggunakan kunci data unik dan berisi amplop 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 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 mereka sendiri atau sistem pengelolaan kunci kustom mereka sendiri. Semua kunci data dan KEK dienkripsi dan digunakan secara internal di 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 membuat CMK, Looker merekomendasikan agar Anda membuat peran IAM baru yang unik untuk CMK dan melampirkannya dengan 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 membuat CMK dan peran IAM baru, tetapkan variabel lingkungan AWS_REGION ke region AWS 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 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 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 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, tetapkan izin file kunci ke hanya baca untuk 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 menyebabkan 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 menyebabkan hilangnya instance Anda.

Menginstal aplikasi Looker

  1. Buat grup looker.

    sudo groupadd looker
    
  2. Buat pengguna looker dan direktori berandanya.

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

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

    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. Buat 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 flag 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 abaikan. 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 virtual machine 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 membaca 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 menyesuaikan database backend MySQL.

Langkah berikutnya

Setelah menginstal Looker, Anda siap mengonfigurasi opsi startup Looker.