如何監控

Private Cloud v4.19.01 版

本文件說明內部部署系統支援的元件監控技術 Apigee Edge 的部署作業

總覽

Edge 支援多種取得服務詳細資料及檢查服務 狀態。下表列出每個符合資格的檢查項目類型 服務:

管理 API
服務 記憶體用量 [JMX*] 服務檢查 使用者/機構/ 部署作業狀態 axstatus 資料庫檢查 apigee-service 狀態 apigee-monit**
管理伺服器
訊息處理器
Postgres
Qpid
路由器
更多資訊 更多資訊 更多資訊 更多資訊 更多資訊 更多資訊 更多資訊

* 您必須先啟用 JMX , 詳細說明請參閱啟用 JMX

** apigee-monit 服務會檢查元件是否更新,並會嘗試 如果不是,請重新啟動。如需詳細資訊,請參閱使用自我修復 apigee-monit

JMX and Management API 監控通訊埠

每個元件都支援不同通訊埠的 JMX and Management API 監控呼叫。 下表列出每種伺服器類型的 JMX and Management API 通訊埠:

元件 JMX 通訊埠 Management API 通訊埠
管理伺服器 1099 8080
路由器 1100 8081
訊息處理器 1101 8082
Qpid 1102 8083
Postgres 1103 8084

使用 JMX 監控

Management Server、Message Processor、Qpid 和 Postgres 的監控程序 請使用 JMX不過,JMX 預設只會針對 Cassandra 啟用,而且所有 其他 Edge 元件因此,您必須先為每個元件分別啟用 JMX 能夠加以監控

預設未啟用 JMX 驗證。您可以為所有使用者啟用 JMX 驗證 元件。如果是 Cassandra,請按照 為 Cassandra 啟用 JMX 驗證

啟用 JMX

只有 Cassandra 會預設啟用 JMX,其他 Edge 則預設為停用。 元件。本節說明如何為其他 Edge 元件啟用 JMX。

如何啟用 JMX:

  1. 編輯元件的設定檔。這個檔案位於 opt/apigee/edge-component_name/bin/start。實際運作中 環境,這些設定檔都位於不同的機器上。

    請在每個伺服器上的檔案位置中選擇:

    • 管理伺服器:/opt/apigee/edge-management-server/bin/start
    • 訊息處理器:/opt/apigee/edge-message-processor/bin/start
    • Postgres:/opt/apigee/edge-postgres-server/bin/start
    • Qpid:/opt/apigee/edge-qpid-server/bin/start
    • 路由器:/opt/apigee/edge-router/bin/start

    舉例來說,管理伺服器伺服器上的設定檔位於 /opt/apigee/edge-management-server/bin/start

  2. 將下列 com.sun.management.jmxremote 選項新增至 exec 啟動元件的一行:
    -Dcom.sun.management.jmxremote \
      -Dcom.sun.management.jmxremote.port=port_number \
      -Dcom.sun.management.jmxremote.local.only=false \
      -Dcom.sun.management.jmxremote.authenticate=false \
      -Dcom.sun.management.jmxremote.ssl=false

    其中 port_number 是服務的 JMX 通訊埠。如要取得服務的 JMX 通訊埠編號,請參閱 JMX and Management API 監控通訊埠

    舉例來說,如要在管理伺服器上啟用 JMX,請將下列字串新增至「管理」應用程式 伺服器的設定檔:

    exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts \
      -Djava.security.auth.login.config=$conf_path/jaas.config \
      -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path \
      -Ddata.dir=$data_dir \
      -Dcom.sun.management.jmxremote \
      -Dcom.sun.management.jmxremote.port=1099 \
      -Dcom.sun.management.jmxremote.local.only=false \
      -Dcom.sun.management.jmxremote.authenticate=false \
      -Dcom.sun.management.jmxremote.ssl=false \
       $* $debug_options com.apigee.kernel.MicroKernel

    這個範例會指定 Management Server 的通訊埠 1099。如前所述 服務有自己的通訊埠編號

    設定檔中編輯的程式碼如下所示:

    exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts -Djava.security.auth.login.config=$conf_path/jaas.config -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false $* $debug_options com.apigee.kernel.MicroKernel
  3. 儲存設定檔。
  4. 使用 restart 指令重新啟動元件。

    舉例來說,如要重新啟動管理伺服器,請執行下列指令:

    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

根據預設,系統不會啟用 JMX 驗證功能。您可以為所有使用者啟用 JMX 驗證 元件中的操作說明,方法請見啟用 JMX 驗證。啟用 JMX Cassandra 驗證機制,請參閱 為 Cassandra 啟用 JMX 驗證

啟用 JMX 驗證

預設未啟用 JMX 驗證。您可以為所有使用者啟用 JMX 驗證 元件。如果是 Cassandra,請按照 為 Cassandra 啟用 JMX 驗證

如要啟用 JMX 驗證,請針對所有用戶端執行下列 change_jmx_auth 動作 節點:

/opt/apigee/apigee-service/bin/apigee-service component change_jmx_auth [options|-f config_file]

在此情況下:

  • component 是下列其中一項:
    • edge-management-server
    • edge-message-processor
    • edge-postgres-server
    • edge-qpid-server
    • edge-router
  • options 會指定下列內容:
    • -u username
    • -p password
    • -e [y|n] (啟用或停用)
  • config_file 會指定您定義的設定檔位置 包括:
    • JMX_USERNAME=username
    • JMX_ENABLED=y|n
    • JMX_PASSWORD=password (如果未設定或未在 -p,系統會提示您)

您可以使用指令列選項或設定檔來定義使用者名稱。 以及啟用/停用狀態您無法同時指定選項和設定 檔案。

下列範例使用以下指令為管理伺服器啟用 JMX 驗證 路線選項:

/opt/apigee/apigee-service/bin/apigee-service edge-management-server
    change_jmx_auth -u foo -p bar -e y

下列範例使用設定檔而非指令列選項:

/opt/apigee/apigee-service/bin/apigee-service edge-management-server
    change_jmx_auth -f /tmp/my-config-file

如果您在多個節點上執行 Edge,請在所有節點上執行指令,並指定相同的 使用者名稱和密碼

如要透過指令列停用 JMX 驗證,請使用「-e n」選項,如下所示 範例如下所示:

/opt/apigee/apigee-service/bin/apigee-service edge-management-server
    change_jmx_auth -e n

使用 JConsole 監控

使用 JConsole (與 JMX 相容的工具) 管理及監控健康狀態檢查和程序統計資料。 透過 JConsole,您可以使用伺服器揭露的 JMX 統計資料,並將這些統計資料顯示在 圖形介面。若需更多資訊,請參閲 使用 JConsole

JConsole 會使用下列服務網址來監控透過 JMX:

service:jmx:rmi:///jndi/rmi://IP_address:port_number/jmxrmi

在此情況下:

  • IP_address 是您要監控的伺服器 IP 位址。
  • port_number 是您要授予的伺服器 JMX 通訊埠編號 監控功能

舉例來說,若要監控管理伺服器,發出類似如下的指令 (假設 伺服器的 IP 位址為 216.3.128.12):

service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi

請注意,這個範例指定了通訊埠 1099,也就是管理伺服器 JMX 通訊埠。如果您不是 通訊埠,請參閱 JMX and Management API 監控通訊埠

下表列出一般 JMX 統計資料:

JMX MBeans JMX 屬性

記憶體

HeapMemoryUsage

NonHeapMemoryUsage

用量

使用 Management API 監控

Edge 提供多個 API,可讓您用於在伺服器上執行服務檢查,以及 檢查使用者、機構和部署作業本節將說明這些 API。

執行服務檢查

Management API 提供多個端點,用以監控和診斷 免費 Google Cloud 服務這些端點包括:

端點 說明
/servers/self/up

檢查服務是否正在執行。您不必執行這項 API 呼叫, 並進行驗證。

如果服務正在執行,此端點會傳回下列回應:

<ServerField>
  <Up>true</Up>
</ServerField>

如果服務並未執行,您會收到類似以下的回應 (視服務類型和檢查方式而定):

curl: Failed connect to localhost:port_number; Connection refused
/servers/self

傳回服務的相關資訊,包括:

  • 設定屬性
  • 開始時間和開始時間
  • 建構、RPM 和 UUID 資訊
  • 內部和外部主機名稱和 IP 位址
  • 區域和 Pod
  • <isUp> 屬性,表示服務是否正在執行

這個 API 呼叫需要用 Apigee 管理員憑證進行驗證。

如要使用這些端點,請透過使用curl 語法如下:

curl http://host:port_number/v1/servers/self/up -H "Accept: [application/json|application/xml]"
curl http://host:port_number/v1/servers/self -u username:password -H "Accept: [application/json|application/xml]"

在此情況下:

  • host 是您要檢查的伺服器 IP 位址。如果您已經登入 伺服器可以使用「localhost」否則,請一併指定伺服器的 IP 位址 做為使用者名稱和密碼
  • port_number 是您要檢查伺服器的 Management API 通訊埠。這是 為每個元件類型使用不同的通訊埠舉例來說,管理伺服器的 Management API 通訊埠為 8080。如需要使用的 Management API 通訊埠編號清單,請參閱 JMX and Management API 監控通訊埠

如要變更回應格式,您可以將 Accept 標頭指定為 &quot;application/json&quot;或「application/xml」

以下範例會取得 localhost (通訊埠 8081) 上的路由器狀態:

curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"

下列範例會取得 216.3.128.12 (通訊埠) 的訊息處理者資訊 8082):

curl http://216.3.128.12:8082/v1/servers/self -u sysAdminEmail:password
  -H "Accept: application/xml"

監控使用者、機構及部署狀態

您可以使用 Management API 監控使用者、機構及部署狀態 執行下列指令,管理管理伺服器和訊息處理器上的 Proxy:

curl http://host:port_number/v1/users -u sysAdminEmail:password
curl http://host:port_number/v1/organizations -u sysAdminEmail:password
curl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password

其中 port_number 為管理伺服器 (管理伺服器) 8080 或 8082 (訊息) 處理器。

這個呼叫需要您透過系統管理使用者名稱進行驗證 密碼。

伺服器應會傳回「已部署」的。如果上述方法失敗,請執行以下操作:

  1. 查看伺服器記錄,瞭解是否有任何錯誤。記錄位於:
    • 管理伺服器:opt/apigee/var/log/edge-management-server
    • 訊息處理器:opt/apigee/var/log/edge-message-processor
  2. 對伺服器發出呼叫,檢查該伺服器是否正常運作。
  3. 將伺服器從 ELB 中移除,然後重新啟動:
    /opt/apigee/apigee-service/bin/apigee-service service_name restart

    其中 service_name 為:

    • edge-management-server
    • edge-message-processor

使用 apigee-service 指令檢查狀態

您可以在以下情況下使用 apigee-service 指令排解 Edge 服務問題: 使用者登入執行服務的伺服器。

如要使用 apigee-service 查看服務狀態,請按照下列步驟操作:

  1. 登入伺服器並執行下列指令:
    /opt/apigee/apigee-service/bin/apigee-service service_name status

    其中 service_name 為下列其中一項:

    • 管理伺服器:edge-management-server
    • 訊息處理器:edge-message-processor
    • Postgres:edge-postgres-server
    • Qpid:edge-qpid-server
    • 路由器:edge-router

    例如:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
  2. 如果服務未執行,請啟動服務:
    /opt/apigee/apigee-service/bin/apigee-service service_name start
  3. 重新啟動服務後,使用 先前使用的 apigee-service status 指令,或透過 Management API 執行 相關說明請參閱「使用 Management API 監控」一文。

    例如:

    curl -v http://localhost:port_number/v1/servers/self/up

    其中 port_number 是服務的 Management API 通訊埠

    這個範例假設您已登入伺服器,且可以使用「localhost」作為 主機名稱。如要使用 Management API 遠端檢查狀態,您必須指定 IP 位址 位址,並在 API 中納入系統管理員的使用者名稱和密碼 呼叫。

Postgres 監控

Postgres 支援多種公用程式,可用來查看其狀態。這些公用程式 都會在後續章節中說明。

查看 Postgres 上的機構和環境

您可以查看已加入 Postgres 伺服器的機構和環境名稱 執行下列 curl 指令:

curl -v http://postgres_IP:8084/v1/servers/self/organizations

系統應會顯示機構和環境名稱。

驗證數據分析狀態

您可以發出以下項目,驗證 Postgres 和 Qpid 分析伺服器的狀態 curl 指令:

curl -u userEmail:password http://host:port_number/v1/organizations/orgname/environments/envname/provisioning/axstatus

系統應會顯示所有分析伺服器的成功狀態,如以下範例所示 顯示:

{
  "environments" : [ {
    "components" : [ {
      "message" : "success at Thu Feb 28 10:27:38 CET 2013",
      "name" : "pg",
      "status" : "SUCCESS",
      "uuid" : "[c678d16c-7990-4a5a-ae19-a99f925fcb93]"
     }, {
      "message" : "success at Thu Feb 28 10:29:03 CET 2013",
      "name" : "qs",
      "status" : "SUCCESS",
      "uuid" : "[ee9f0db7-a9d3-4d21-96c5-1a15b0bf0adf]"
     } ],
    "message" : "",
    "name" : "prod"
   } ],
  "organization" : "acme",
  "status" : "SUCCESS"
}

PostgreSQL 資料庫

本節說明您可以專門用於監控 Postgres 的技術 資料庫

使用 check_postgres.pl 指令碼

如要監控 PostgreSQL 資料庫,可以使用標準監控指令碼 check_postgres.pl。若需更多資訊,請參閲 http://bucardo.org/wiki/Check_postgres.

執行指令碼之前:

  1. 您必須在每個 Postgres 節點上安裝 check_postgres.pl 指令碼。
  2. 確認您已安裝 perl-Time-HiRes.x86_64。 執行高解析度鬧鐘、睡眠、取得時間和間歇計時器。舉例來說, 可以使用以下指令進行安裝:
    yum install perl-Time-HiRes.x86_64
  3. CentOS 7:在 CentOS v7 上使用 check_postgres.pl 前,請先安裝 每分鐘 perl-Data-Dumper.x86_64 轉。

check_postgres.pl 輸出

使用 check_postgres.pl 的 API 呼叫預設輸出內容為 Nagios 相容。安裝指令碼後,請進行以下檢查:

  1. 檢查資料庫大小:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -include=apigee -action database_size --warning='800 GB' --critical='900 GB'
  2. 檢查資料庫連入連線數量,並與允許的數量上限進行比較 連線:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
  3. 檢查資料庫是否正在執行並且可供使用:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
  4. 檢查磁碟空間:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
  5. 檢查在 Postgres 節點中登入的機構和環境數量:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action=custom_query --query="select count(*) as result from pg_tables where schemaname='analytics' and tablename like '%fact'" --warning='80' --critical='90' --valtype=integer

執行資料庫檢查

您可以驗證是否已在 PostgreSQL 資料庫中建立適當的資料表。登入 PostgreSQL 建立資料庫

psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee

接著執行:

\d analytics."org.env.fact"

查看 postgres 程序的健康狀態

您可以叫用下列 curl,在 Postgres 機器上執行 API 檢查 指令:

curl -v http://postgres_IP:8084/v1/servers/self/health

這個指令會在 postgres 程序執行時傳回 ACTIVE 狀態。如果 Postgres 程序未執行,會傳回 INACTIVE 狀態。

Postgres 資源

如要進一步瞭解如何監控 Postgres 服務,請參閱以下資訊:

Apache Cassandra

Cassandra 預設會啟用 JMX,遠端 JMX 存取 Cassandra 不需要 密碼。

為 Cassandra 啟用 JMX 驗證

您可以為 Cassandra 啟用 JMX 驗證。執行完成後,系統會要求您 將使用者名稱和密碼傳遞給所有對 nodetool 公用程式的呼叫。

如何為 Cassandra 啟用 JMX 驗證:

  1. 建立及編輯 cassandra.properties 檔案:
    1. 編輯 /opt/apigee/customer/application/cassandra.properties 檔案。如果 檔案不存在,請建立該檔案。
    2. 請將以下內容新增到該檔案:
      conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
      conf_cassandra-env_com.sun.management.jmxremote.password.file=${APIGEE_ROOT}/data/apigee-cassandra/jmxremote.password
      conf_cassandra-env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/data/apigee-cassandra/jmxremote.access
    3. 儲存 cassandra.properties 檔案。
    4. 將檔案擁有者變更為「apigee:apigee」,如以下範例所示:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties

    如要進一步瞭解如何使用屬性檔案設定符記,請參閱 如何設定 Edge

  2. 建立及編輯 jmx_auth.sh
    1. 如果檔案不存在,請於以下位置建立檔案:
      /opt/apigee/customer/application/jmx_auth.sh
    2. 在檔案中新增下列屬性:
      export CASS_JMX_USERNAME=JMX_USERNAME
      export CASS_JMX_PASSWORD=JMX_PASSWORD
    3. 儲存 jmx_auth.sh 檔案。
    4. 檔案來源:
      source /opt/apigee/customer/application/jmx_auth.sh
  3. 複製並編輯 jmxremote.password 檔案:
    1. 將下列檔案從 $JAVA_HOME 目錄複製到 /opt/apigee/data/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password
    2. 編輯 jmxremote.password 檔案,並新增 JMX 使用者名稱和密碼 使用下列語法:
      JMX_USERNAME JMX_PASSWORD

      其中 JMX_USERNAMEJMX_PASSWORD 是 JMX 使用者名稱和 密碼。

    3. 請確定檔案的擁有者為「apigee」並且檔案模式為 400:
      chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.password
      chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.password
  4. 複製並編輯 jmxremote.access 檔案:
    1. 將下列檔案從 $JAVA_HOME 目錄複製到 /opt/apigee/data/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access
    2. 編輯 jmxremote.access 檔案並新增下列角色:
      JMX_USERNAME readwrite
    3. 請確定檔案的擁有者為「apigee」並且檔案模式為 400:
      chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.access
      chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.access
  5. 在 Cassandra 上執行 configure
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. 重新啟動 Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. 對所有其他 Cassandra 節點重複這項程序。

啟用 JMX 密碼加密

如要啟用 JMX 密碼加密,請按照下列步驟操作:

  1. 開啟 source/conf/casssandra-env.sh 檔案。
  2. 取消註解檔案中的下列幾行:
    • JVM_OPTS="$JVM_OPTS -Djava.security.auth.login.config={T}conf_cassandra-env_java.security.auth.login.config{/T}"
    • JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.login.config=ApigeeSecureFileLoginModule"
  3. 在指令列中輸入文字,產生所需密碼的 SHA1 雜湊 echo -n 'Secret' | openssl dgst -sha1
  4. 根據 jmxremote.password 中的使用者名稱設定密碼。
  5. cassandra-env.sh 檔案變更回唯讀狀態。

停用 Cassandra 的 JMX 驗證

如何為 Cassandra 停用 JMX 驗證:

  1. 編輯 /opt/apigee/customer/application/cassandra.properties
  2. 請在檔案中移除下列這一行:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. 在 Cassandra 上執行設定:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  4. 重新啟動 Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  5. 對所有其他 Cassandra 節點重複這項程序。

使用 JConsole:監控工作統計資料

使用 JConsole 和下列服務網址,監控透過 JMX:

service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi

其中 IP_address 是 Cassandra 伺服器的 IP。

Cassandra JMX 統計資料

JMX MBeans JMX 屬性

ColumnFamilies/apprepo/environments

ColumnFamilies/apprepo/organizations

ColumnFamilies/apprepo/apiproxy_revisions

ColumnFamilies/apprepo/apiproxies

ColumnFamilies/audit/audits

ColumnFamilies/audit/audits_ref

PendingTasks

MemtableColumnsCount

MemtableDataSize

ReadCount

RecentReadLatencyMicros

TotalReadLatencyMicros

WriteCount

RecentWriteLatencyMicros

TotalWriteLatencyMicros

TotalDiskSpaceUsed

LiveDiskSpaceUsed

LiveSSTableCount

BloomFilterFalsePositives

RecentBloomFilterFalseRatio

BloomFilterFalseRatio

使用 nodetool 管理叢集節點

nodetool 公用程式是 Cassandra 的指令列介面,負責管理 Cassandra 叢集節點您可以在 /opt/apigee/apigee-cassandra/bin 找到這個公用程式。

可以對所有 Cassandra 叢集節點進行下列呼叫:

  1. 一般環狀資訊 (適用於單一 Cassandra 節點):請找出 「向上」和「Normal」適用於所有節點
    nodetool [-u username -pw password] -h localhost ring

    只有在下列情況下,您才需要傳送使用者名稱和密碼 為 Cassandra 啟用 JMX 驗證

    上述指令的輸出內容如下所示:

    Datacenter: dc-1
    ==========
    Address            Rack     Status State   Load    Owns    Token
    192.168.124.201    ra1      Up     Normal  1.67 MB 33,33%  0
    192.168.124.202    ra1      Up     Normal  1.68 MB 33,33%  5671...5242
    192.168.124.203    ra1      Up     Normal  1.67 MB 33,33%  1134...0484

  2. 節點的一般資訊 (每個節點的呼叫)
    nodetool [-u username -pw password]  -h localhost info

    上述指令的輸出內容如下所示:

    ID                     : e2e42793-4242-4e82-bcf0-oicu812
    Gossip active          : true
    Thrift active          : true
    Native Transport active: true
    Load                   : 273.71 KB
    Generation No          : 1234567890
    Uptime (seconds)       : 687194
    Heap Memory (MB)       : 314.62 / 3680.00
    Off Heap Memory (MB)   : 0.14
    Data Center            : dc-1
    Rack                   : ra-1
    Exceptions             : 0
    Key Cache              : entries 150, size 13.52 KB, capacity 100 MB, 1520781 hits, 1520923 requests, 1.000 recent hit rate, 14400 save period in seconds
    Row Cache              : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds
    Counter Cache          : entries 0, size 0 bytes, capacity 50 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds
    Token                  : 0
  3. 等待伺服器的狀態 (提供用戶端 API)
    nodetool [-u username -pw password] -h localhost statusthrift

    上述指令的輸出內容如下所示:

    running

  4. 資料串流作業狀態:觀察 Cassandra 節點的流量:
    nodetool [-u username -pw password] -h localhost netstats

    上述指令的輸出內容如下所示:

    Mode: NORMAL
    Not sending any streams.
    Read Repair Statistics:
    Attempted: 151612
    Mismatch (Blocking): 0
    Mismatch (Background): 0
    Pool Name                    Active   Pending      Completed   Dropped
    Commands                        n/a         0              0         0
    Responses                       n/a         0              0       n/a

如要進一步瞭解 nodetool,請參見 關於 nodetool 公用程式

Cassandra 資源

請參閱以下網址:http://www.datastax.com/docs/1.0/operations/monitoring

Apache ZooKeeper

查看 ZooKeeper 狀態

  1. 確認 ZooKeeper 程序正在執行。ZooKeeper 會將 PID 檔案寫入 opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid
  2. 測試 ZooKeeper 通訊埠,以確保您可以建立與通訊埠 2181 及 3888 美元。
  3. 確認您可以從 ZooKeeper 資料庫讀取值。使用 ZooKeeper 連線 用戶端程式庫 (或 /opt/apigee/apigee-zookeeper/bin/zkCli.sh),並讀取
  4. 檢查狀態:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status

使用 ZooKeeper 字母字詞

透過傳送一組命令 (四個字母的單字) 即可監控 ZooKeeper,而指令會傳送至 通訊埠 2181 使用 netcat (nc) 或 telnet

如要進一步瞭解 ZooKeeper 指令,請參閱 Apache ZooKeeper 指令參考資料

例如:

  • srvr:列出伺服器的完整詳細資料。
  • stat:列出伺服器和已連線用戶端的簡要詳細資料。

您可以對 ZooKeeper 連接埠發出以下指令:

  1. 只要執行四個字母的指令 ruok,即可測試伺服器是否在非錯誤狀態下執行。A 罩杯 成功的回應會傳回「imok」
    echo ruok | nc host 2181

    傳回:

    imok
  2. 執行四字母指令 stat,即可列出伺服器效能並保持連線 客戶統計資料:
    echo stat | nc host 2181

    傳回:

    Zookeeper version: 3.4.5-1392090, built on 09/30/2012 17:52 GMT
    Clients:
    /0:0:0:0:0:0:0:1:33467[0](queued=0,recved=1,sent=0)
    /192.168.124.201:42388[1](queued=0,recved=8433,sent=8433)
    /192.168.124.202:42185[1](queued=0,recved=1339,sent=1347)
    /192.168.124.204:39296[1](queued=0,recved=7688,sent=7692)
    Latency min/avg/max: 0/0/128
    Received: 26144
    Sent: 26160
    Connections: 4
    Outstanding: 0
    Zxid: 0x2000002c2
    Mode: follower
    Node count: 283
  3. 如果無法使用 netcat (nc),您可以使用 Python 做為替代方案。建立檔案 名為 zookeeper.py,包含下列內容:
    import time, socket,
    sys c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    c.connect((sys.argv[1], 2181))
    c.send(sys.argv[2])
    time.sleep(0.1)
    print c.recv(512)

    現在執行下列 Python 程式碼:

    python zookeeper.py 192.168.124.201 ruok
    python zookeeper.py 192.168.124.201 stat

LDAP 層級測試

您可以監控 OpenLDAP,確認特定要求是否已正確提供。於 意即尋找傳回正確結果的特定搜尋。

  1. 使用 ldapsearch (yum install openldap-clients) 查詢項目 系統管理員的角色此項目可用來驗證所有 API 呼叫。
    ldapsearch -b "uid=admin,ou=users,ou=global,dc=apigee,dc=com" -x -W -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -LLL

    系統隨即會提示您輸入 LDAP 管理員密碼:

    Enter LDAP Password:

    輸入密碼後,您會在表單中看到回應:

    dn:
    uid=admin,ou=users,ou=global,dc=apigee,dc=com
    objectClass: organizationalPerson
    objectClass: person
    objectClass: inetOrgPerson
    objectClass: top
    uid: admin
    cn: admin
    sn: admin
    userPassword:: e1NTSEF9bS9xbS9RbVNXSFFtUWVsU1F0c3BGL3BQMkhObFp2eDFKUytmZVE9PQ=
     =
    mail: opdk@google.com
  2. 請使用以下指令檢查 Management Server 是否仍與 LDAP 連線:
    curl -u userEMail:password http://localhost:8080/v1/users/ADMIN

    傳回:

    {
      "emailId" : ADMIN,
      "firstName" : "admin",
      "lastName" : "admin"
    }

您也可以監控 OpenLDAP 快取,進而減少存取磁碟的次數 進而改善系統效能然後調整 Cloud Storage 中的 OpenLDAP 伺服器可能會嚴重影響目錄伺服器的效能。您可以查看記錄檔 檔案 (opt/apigee/var/log) 來取得快取相關資訊。