雖然 Looker 應用程式監控功能並非必要,但在客戶代管的執行個體上設定這項功能非常重要。在極少數情況下,如果您的伺服器發生問題,除非您能提供事件發生時的適當監控資訊,否則 Looker 通常很難或無法協助您修正問題。
應用程式監控
網址
驗證 Looker 執行個體是否正在執行,有兩種簡單的方法。
將
/alive
附加至 Looker 執行個體的網址,如下所示:https://instance_name.looker.com/alive
如果執行個體能夠回應網頁要求,您就會收到 200 OK HTTP 狀態碼。
將
/availability
附加至 Looker 執行個體的網址,如下所示:https://instance_name.looker.com/availability
這個網址會對多個基礎子系統執行更完整的檢查,如果一切正常,也會回應 200 OK HTTP 狀態碼。
JMX
您可以透過 JMX 監控執行 Looker 的 Java 虛擬機器。
許多監控應用程式 (例如 Zabbix 和 Nagios) 都支援 JMX。詳情請參閱監控應用程式的說明文件。
編輯 Looker 開機指令碼
如要啟用 JMX 監控功能,您必須編輯 Looker 啟動指令碼。預設名稱為:
/home/looker/looker/looker
請查看 Java 啟動參數:
java \
-XX:+UseG1GC -XX:MaxGCPauseMillis=2000 \
-Xms$JAVAMEM -Xmx$JAVAMEM \
-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps \
-Xloggc:/tmp/gc.log ${JAVAARGS} \
-jar looker.jar start ${LOOKERARGS}
從 Looker 6.18 開始,Looker JAR 檔案已拆分為兩個獨立的 JAR 檔案:Looker 核心 JAR 檔案和 Looker 依附元件 JAR 檔案。啟動後,核心 JAR 檔案會自動啟動依附元件 JAR 檔案。兩個 JAR 檔案必須位於相同目錄,核心 JAR 檔案才能順利找到並啟動相依 JAR 檔案。
根據預設,系統不會設定 --no-daemonise
啟動選項。如果您尚未設定 --no-daemonise
選項,請在以 -Xms$JAVAMEM
開頭的程式碼行後方新增一節:
-Dcom.sun.akuma.jvmarg.com.sun.management.jmxremote \
-Dcom.sun.akuma.jvmarg.com.sun.management.jmxremote.port=9910 \
-Dcom.sun.akuma.jvmarg.com.sun.management.jmxremote.ssl=false \
-Dcom.sun.akuma.jvmarg.com.sun.management.jmxremote.local.only=false \
-Dcom.sun.akuma.jvmarg.com.sun.management.jmxremote.authenticate=true \
-Dcom.sun.akuma.jvmarg.com.sun.management.jmxremote.access.file=${HOME}/.lookerjmx/jmxremote.access \
-Dcom.sun.akuma.jvmarg.com.sun.management.jmxremote.password.file=${HOME}/.lookerjmx/jmxremote.password \
如果您已設定 --no-daemonise
啟動選項,請在開頭為 -Xms$JAVAMEM
的行後方新增一節:
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9910 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.access.file=${HOME}/.lookerjmx/jmxremote.access \
-Dcom.sun.management.jmxremote.password.file=${HOME}/.lookerjmx/jmxremote.password \
建立 .lookerjmx
目錄
接著,請在 Looker 使用者的主目錄下建立 .lookerjmx
目錄,並設定權限:
sudo su - looker
mkdir ~/.lookerjmx
chmod 700 ~/.lookerjmx
cd ~/.lookerjmx
建立 JMX 檔案
使用您慣用的文字編輯器,在名為 jmxremote.access
的新目錄中建立檔案,並在其中加入下列內容 (您可以依環境自訂):
monitorRole readonly
controlRole readwrite \
create javax.management.monitor.*,javax.management.timer.* \
unregister
接著,請在同一個目錄中建立名為 jmxremote.password
的檔案,並在當中加入下列內容,使用您自己的安全密碼:
monitorRole some_password_here
controlRole some_password_here
設定權限
如果檔案權限允許任何人 (除了 Looker 使用者) 讀取密碼檔案,Java (以及 Looker) 就不會啟動。
chmod 400 jmxremote.*
重新啟動 Looker
您必須重新啟動 Looker,才能啟用 JMX。請務必以 *Looker 使用者身分,而非 root 身分*執行這項操作:
cd ~/looker
./looker restart
Looker 執行個體現在已設定為使用您提供的密碼,透過 9910 通訊埠進行遠端 JMX 監控。您可能需要修改防火牆設定或網路存取控制清單 (ACL),讓監控伺服器能夠透過這個通訊埠取得網路存取權。
主機監控
對於執行 Looker 應用程式的每個主機,建議您至少收集、繪製圖表並發出警示,以便監控下列成效指標:
- CPU 使用率:負載和 CPU 使用率
- 記憶體使用率:已用總量和已用交換用量
- 磁碟使用情形
警示門檻
如要建立合適的警示門檻,請先建立基準。在正常負載下執行 Looker 例項,收集效能資料。請查看成效圖表,觀察高峰。您需要多久的時間來建立基準,取決於您的業務和 Looker 使用模式。部分公司可能會在每週的營業時間內,以穩定可重複的模式使用 Looker。其他人可能會在特定時間 (例如每個月結束時) 大量使用 Looker。
一般來說,只有可採取行動的事件才應傳送警報。在沒有任何需要處理的情況下傳送快訊,會掩蓋重要警示的重要性。
您可以使用下列門檻做為警示的起點。如果超過下列值 15 分鐘或更久,可能就需要手動介入。
指標 | 警告 | 重大 | 註解 |
---|---|---|---|
CPU 負載 | 2 | 4 | 對於單核心系統,負載通常應為 1 以下。持續高負載會導致效能不佳。 |
已使用的 CPU 百分比 | 80 | 90 | CPU 使用率偏高會導致效能不佳。 |
已使用的記憶體百分比 | 60 | 70 | 如果記憶體用量偏高,可能表示為 Java 分配的記憶體過多。 |
磁碟使用率百分比 | 80 | 90 | 確認磁碟未滿。 |
其他注意事項:
- 核心數量超過一個的系統可以處理高 CPU 負載,且不會降低效能。一般來說,持續負載不得超過處理器核心數量。
- 系統在效能降低前,CPU 總使用時間的百分比會隨著系統中的 CPU 核心數量而調整。換句話說,當 CPU 使用率達到 80% 時,單核心系統的效能可能會變差,而十六核心主機則可能在使用率達到 95% 時仍可正常運作。
- 您可以更新主機硬體或升級至較大的執行個體,解決持續高 CPU 使用率的問題。有時,您可以減少或提高大量排程外觀或長查詢衍生表格的效率,以改善效能。
後續步驟
設定監控後,即可設定 Looker 備份。