監控 Looker

雖然 Looker 應用程式監控功能並非必要,但在客戶代管的執行個體上設定這項功能非常重要。在極少數情況下,如果您的伺服器發生問題,除非您能提供事件發生時的適當監控資訊,否則 Looker 通常很難或無法協助您修正問題。

應用程式監控

網址

驗證 Looker 執行個體是否正在執行,有兩種簡單的方法。

  1. /alive 附加至 Looker 執行個體的網址,如下所示:

    https://instance_name.looker.com/alive

    如果執行個體能夠回應網頁要求,您就會收到 200 OK HTTP 狀態碼。

  2. /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 備份