本頁說明如何為客戶代管的部署作業安裝 Looker 應用程式。
Looker 應用程式的代管位置與資料所在位置無關;資料一律會保留在資料庫中,不會複製到 Looker 執行個體。
部署作業規格
如果要在無法連上網際網路的網路上執行 Looker,您可能需要設定 Proxy 伺服器,才能與 Looker 授權伺服器通訊,或是使用只會進行網路呼叫的無伺服器網路服務,例如 BigQuery。
在符合下列最低需求的專用電腦上安裝 Looker 應用程式:
- 1.2 GHz CPU;Looker 建議使用雙核心以上。
- 8 GB 可用 RAM。
- 10 GB 可用磁碟空間。
- 2 GB 交換檔案空間。
- Linux。我們內部 Looker 主機代管服務使用 Ubuntu Linux (LTS 版本),如果客戶沒有偏好的 Linux,我們建議使用這個版本。不過,我們支援所有主要企業 Linux 發行版的發行版本,包括 RedHat、CentOS 和 Amazon Linux。Looker 僅支援使用 x64 指令集的 Linux 版本。
Java OpenJDK 11.0.12 以上版本或 HotSpot 1.8 更新 161 以上版本。Looker 使用 OpenJDK (11 版) 提升效能及改善記憶體用量。Looker 建議使用 JDK,而非 JRE,以便運用額外的疑難排解工具。此外,Looker 建議您在發布新的 Java 更新時進行轉換。目前不支援其他版本的 Java、Oracle JDK 和 OpenJDK。
系統必須有
libssl
和libcrypt.so
。您必須允許透過 TCP 通訊埠
9999
將輸入流量傳送至 Looker 執行個體。如果使用者需要 API 存取權,您必須允許透過 TCP 連接埠
19999
將輸入流量傳送至 Looker 執行個體。如果 Looker 是從 AWS VPC 私人網路連線至 AWS Redshift,則必須將 MTU 設為 1500。如要進一步瞭解這項設定,請參閱這篇 Amazon Web Services 文章的「設定執行個體的 MTU」一節。如果 Looker 在資料庫連線測試期間偵測到 MTU 設定大於 1500,就會顯示下列錯誤:
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.
下列 TCP Keepalive 設定。如要在重新啟動後繼續使用這些設定,請在
/etc/sysctl.conf
或/etc/sysctl.d
目錄中的檔案中設定:net.ipv4.tcp_keepalive_time=200 net.ipv4.tcp_keepalive_intvl=200 net.ipv4.tcp_keepalive_probes=5
群組
looker
中的使用者looker
執行 Looker 應用程式。looker
使用者的 ulimit 為4096
以上。如要執行上述動作,請在/etc/security/limits.conf
中加入以下程式行:looker soft nofile 4096 looker hard nofile 4096
透過 NTP 或同等方式進行時間同步。
/tmp
資料夾不得以 noexec 選項掛接。looker
主目錄不得掛接在 NFS 磁碟區上。建議將伺服器的時區設為世界標準時間 (UTC),但並非必要。
如要使用 Looker 23.6 以上版本,必須安裝 Git 2.39.1 以上版本。
雖然不是必要工具,但 Netcat 有助於排解網路連線問題。如要在 Ubuntu 型伺服器上安裝 Netcat,一般指令如下:
sudo apt-get install netcat
如有需要,您可以設定 Proxy 伺服器,處理 Looker 需要傳送至 localhost 上「核心」的 HTTP(S) 要求。如要與 Looker 本機 Proxy 伺服器通訊,您需要在
lookerstart.cfg
中新增一些特殊引數:新增http.nonProxyHosts=localhost
即可存取 Looker localhost,不必經過 Proxy。
為避免維護和資源衝突,請勿使用 Looker 伺服器代管其他應用程式。
啟用 ntpd 或 chronyd
NTP 是指網路時間通訊協定,這項服務可確保主機的系統時鐘一律維持正確時間,Looker 必須有正確時間才能正常運作。只要時間保持同步,Looker 就不會要求使用任何特定的時間同步軟體。不需要執行 NTP 伺服器,只需要 NTP 用戶端。你可以使用 chronyd 取代 NTP。
如要瞭解如何啟用 ntpd 或 chronyd,請參閱作業系統廠商的說明文件。
建立加密金鑰
Looker 會使用 AES-256 Galois/Counter Mode (GCM) 加密,保護內部儲存的敏感資料,包括:
- Looker 內部資料庫的備份
- 資料庫和服務連線資訊
- 使用者驗證資訊
- 使用者屬性值
- 已快取或準備傳送的顧客資料
如需 Looker 加密資料的詳細清單,請開啟支援要求。
資料會使用專屬資料金鑰加密,並包含已簽署且經過版本控制的加密信封,確保驗證程序順利進行。這個模式需要使用外部客戶主金鑰 (CMK)。CMK 用於衍生、加密及解密金鑰加密金鑰 (KEK),而 KEK 則用於衍生、加密及解密資料金鑰。
加密機制僅適用於 Looker 內部資料庫和快取。客戶資料庫不會受到 Looker 加密影響。此外,只有靜態資料 (儲存在磁碟上的資料) 會以這種方式加密。
客戶代管的安裝項目可以使用自己的 AWS KMS 帳戶或自訂金鑰管理系統。所有資料金鑰和 KEK 都會經過加密,並在客戶代管的 Looker 安裝中用於內部用途。如果您未使用 AWS KMS,請務必將外部 CMK 保存在安全且永久的位置!加密內部資料庫後,如果遺失 CMK,執行個體就會遺失。
如果您使用 AWS KMS
如果您使用 AWS KMS,請使用 AWS 管理主控台或 API 建立 CMK。
建立 CMK 後,Looker 建議您建立新的 IAM 角色,該角色專屬於您的 CMK,並將其附加至 Looker 執行個體。
以下是包含 CMK 最低必要權限的 IAM 角色範例:
{
"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/*"
}
]
}
建立 CMK 和新的 IAM 角色後,請將 AWS_REGION
環境變數設為 AWS 區域,並將 LKR_AWS_CMK
環境變數設為 CMK 別名:
export AWS_REGION=<AWS_region>
export LKR_AWS_CMK=alias/<CMK_alias>
您也可以選擇設定 LKR_AWS_CMK_EC
環境變數,設定自訂 AWS 加密環境。如未設定這個環境變數,Looker 會使用預設的加密環境,也就是字串 Looker_Encryption_Context
。
export LKR_AWS_CMK_EC=<My_Encryption_Context>
如果未使用 AWS KMS
如果未使用 AWS KMS,請產生 Base64 編碼的 32 位元組 CMK。您可以將 CMK 儲存在環境變數或檔案中:
如要產生 CMK 並儲存在環境變數中,可以使用下列指令產生 CMK:
openssl rand -base64 32
產生 CMK 後,請複製並使用下列指令,將 CMK 儲存在
LKR_MASTER_KEY_ENV
環境變數中 (其中<CMK_value>
是您使用上一個指令產生的 CMK):export LKR_MASTER_KEY_ENV=<CMK_value>
如要產生 CMK 並儲存至檔案,可以使用下列指令 (其中
<path_to_key_file>
是儲存 CMK 的路徑和檔案名稱):openssl rand -base64 32 > <path_to_key_file>
產生 CMK 檔案後,請將金鑰檔案權限設為目前使用者唯讀:
chmod 0400 <path_to_key_file>
產生 CMK 後,請務必先將其儲存在安全且永久的位置,再繼續操作!加密內部資料庫後,如果遺失 CMK,執行個體就會遺失。
產生並儲存 CMK 後,請設定 LKR_MASTER_KEY_ENV
環境變數:
如果您將 CMK 儲存在環境變數中,請將
LKR_MASTER_KEY_ENV
環境變數設為 CMK 的值:export LKR_MASTER_KEY_ENV=<CMK_value>
如果將 CMK 儲存在檔案中,請將
LKR_MASTER_KEY_FILE
環境變數設為 CMK 檔案的路徑:export LKR_MASTER_KEY_FILE=<path_to_key_file>
產生 CMK 後,請務必先將其儲存在安全且永久的位置,再繼續操作!加密內部資料庫後,如果遺失 CMK,執行個體就會遺失。
安裝 Looker 應用程式
建立群組
looker
。sudo groupadd looker
建立使用者
looker
及其主目錄。sudo useradd -m -g looker looker
切換至
looker
使用者;請勿以超級使用者身分執行 Looker。sudo su - looker
在主目錄中建立
looker
子目錄。mkdir ~/looker
切換至
looker
子目錄。cd ~/looker
確認您位於正確的目錄。
pwd
如果使用者目錄位於
/home
下,這項指令的輸出內容應為/home/looker/looker
。透過「下載 Looker JAR 檔案」說明頁面上的其中一種方法,下載所選的 Looker JAR 檔案。請確認兩個 JAR 檔案的版本相同;如果核心和相依 JAR 檔案的版本不同,可能會導致 Looker 安裝不穩定。
前往 looker-open-source GitHub 存放區,下載最新的啟動指令碼。如要讓 Looker 在系統啟動時執行,可以下載 looker_init 指令碼,並使用
systemd
和init
指令碼選項。將啟動指令碼 (名為
looker
) 和 Looker JAR 檔案 (名為looker-x.x.x.jar
和looker-dependencies-x.x.x.jar
,其中x.x.x
是版本號碼) 移至新的~/looker
目錄。將
looker-x.x.x.jar
重新命名為looker.jar
,並將looker-dependencies-x.x.x.jar
重新命名為looker-dependencies.jar
。開機指令碼會自動決定要分配給 Looker 的 Java 記憶體量。如要手動自訂這個值,請參閱「建議的 Java 記憶體設定」說明文件頁面。
將 Looker 啟動指令碼設為可執行狀態 (將權限設為
0750
)。chmod 0750 looker
以
looker
使用者身分從殼層啟動 Looker 程序。./looker start
如需啟動標記說明,請使用:
java -jar looker.jar --help
如需啟動指令說明,請使用:
java -jar looker.jar help
開啟瀏覽器並前往
https://hostname:9999
,其中hostname
是執行 Looker 的主機 DNS 名稱。您應在網址中使用
https
,這會產生安全警告,您必須略過該警告。在伺服器上安裝有效的 SSL 憑證之前,這項警告會持續顯示。輸入 Looker 分析師提供的授權金鑰。
輸入名稱、電子郵件地址和密碼,建立第一個帳戶。
建立 DNS 記錄
為伺服器新增 looker.[yourdomain].com
DNS 記錄。這是選用步驟,但建議執行。
自動部署 Looker
您可以使用 Ansible 或 Chef 等設定管理工具部署 Looker。如需自動部署的 Ansible 角色範例,請參閱設定管理工具說明文件頁面。
管理程序調整
Looker 會以 Java 虛擬機器形式執行。如果 Looker 執行個體位於 VMware 客戶端,您可能需要進行一些效能調整。請參閱 VMware 的 Java 最佳做法指南。
在其他虛擬化平台上,從 Hypervisor 保留 Looker 主機的記憶體,可能有助於提升效能。這項設定無法在 Amazon EC2 上控管,但如果是其他供應商,請參閱相關說明文件瞭解詳情。
設定選用的 MySQL 後端資料庫
根據預設,Looker 會使用 HyperSQL 記憶體內資料庫儲存設定、使用者和其他資料。不過,您可以使用外部 MySQL 資料庫儲存 Looker 內部資訊。如要瞭解如何設定及調整 MySQL 後端資料庫,請參閱「遷移至 MySQL」說明文件頁面。
後續步驟
安裝 Looker 後,即可設定 Looker 啟動選項。