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 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 dan libcrypt.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 bernama looker 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: 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.

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

  1. Buat grup looker.

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

    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 bawah /home, output perintah ini seharusnya adalah /home/looker/looker.

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

  8. 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 dan init.

  9. Pindahkan skrip startup (bernama looker) dan file Looker JAR (bernama looker-x.x.x.jar dan looker-dependencies-x.x.x.jar, dengan x.x.x sebagai nomor versinya) 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 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.

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

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

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