本頁面說明如何為客戶代管的部署作業安裝 Looker 應用程式。
託管 Looker 應用程式與資料存放位置無關;資料一律會保留在資料庫中,不會複製到 Looker 執行個體。
部署規格
如果您要在未連上網際網路的網路上執行 Looker,可能需要設定 Proxy 伺服器,以便與 Looker 授權伺服器進行通訊,或是使用只進行網頁呼叫的無伺服器網頁服務,例如 BigQuery。
請在符合下列最低需求的專用機器上安裝 Looker 應用程式:
- 1.2 GHz CPU;Looker 建議使用兩個以上的核心。
- 8 GB 可用 RAM。
- 10 GB 可用磁碟空間。
- 2 GB 交換檔案空間。
- Linux。我們使用 Ubuntu Linux (LTS 版本) 進行內部 Looker 代管作業,並建議不偏好 Linux 的客戶使用。不過,我們支援所有主要企業版 Linux 發行版的 Looker 發布版本,包括 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
。您必須允許 Looker 執行個體透過 TCP 通訊埠
9999
接收流量。如果使用者需要 API 存取權,您必須允許 Looker 執行個體透過 TCP 通訊埠
19999
接收流量。如果 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
使用者 (4096
以上版本) 的 ulimit。如要執行上述動作,請在/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 需要向本機主機上的「core」傳送的 HTTP(S) 要求。如要與 Looker 本機 Proxy 伺服器通訊,您必須在
lookerstart.cfg
中加入一些特殊引數:加入http.nonProxyHosts=localhost
,即可在不經過 Proxy 的情況下存取 Looker 本機。
為避免維護和資源衝突,請勿使用 Looker 伺服器代管其他應用程式。
啟用 ntpd 或 chronyd
NTP 代表網路時間通訊協定。這可讓主機的系統時鐘始終維持正確時間,Looker 需要正確的時間才能正常運作。只要時間保持同步,Looker 就不需要使用任何特定的時間同步處理軟體。您不必執行 NTP 伺服器,只需要 NTP 用戶端即可。您可以將 chronyd 替換為 NTP。
如要瞭解如何啟用 ntpd 或 chronyd,請參閱作業系統供應商的說明文件。
建立加密金鑰
Looker 會使用 AES-256 Galois/計數器模式 (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 角色,並將該角色附加至 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,請產生 32 位元組的 Base64 CMK。您可以將 CMK 儲存在環境變數或檔案中:
如要產生 CMK 並儲存在環境變數中,您可以使用下列指令產生 CMK:
openssl rand -base64 32
產生 CMK 後,請複製該 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 開放原始碼 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
使用者身分,從 Shell 啟動 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 啟動選項。