監控方式

Private Cloud v. 4.16.05 專用 Edge

本文說明 Apigee Edge 在內部部署環境中支援的元件監控技術。

啟用 JMX 驗證和 設定 JMX 密碼

Management Server、Message Processor、Qpid 和 Postgres 的監控程序 請使用 JMX預設會啟用 JMX,遠端 JMX 存取不需要密碼。

如要啟用 JMX 驗證,每個元件都有一個 change_jmx_auth 動作,供您使用 啟用/停用驗證,以及設定 JMX 憑證。

如要啟用 JMX 驗證,請使用下列指令:

>  /<inst_root>/apigee/apigee-service/bin/apigee-service comp change_jmx_auth optionsOrConfigFile

其中:

  • comp 可以是 edge-management-server、edge-message-processor、edge-router、edge-qpid-server、 edge-postgres-server
  • 以下是可用選項:
    • -u:使用者名稱
    • -p:密碼
    • -e:y (啟用) 或 n (可穩定)
  • 設定檔包括:
    • JMX_USERNAME=使用者名稱
    • JMX_ENABLED=y/n
    • JMX_PASSWORD=password (如果未設定或並未以 -p 傳入,系統會提示您)

舉例來說,如要在指令列中使用選項:

> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -u foo -p bar -e y

如果有設定檔:

> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -f configFile

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

日後如要停用 JMX 驗證,請使用下列指令:

> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -e n

管理伺服器

使用 JConsole 監控系統健康狀態檢查和處理資訊

使用 JConsole (與 JMX 相容的工具) 管理及監控健康狀態檢查和程序統計資料。 您可以透過 JConsole 使用管理伺服器 (或任何伺服器) 所公開的 JMX 統計資料, 以圖形介面顯示這些對話方塊如要進一步瞭解 JConsole 的使用方式,請參閱 http://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html

使用 JConsole 和下列服務網址監控 JMX 屬性 (MBeans) 會透過 JMX 提供。

service:jmx:rmi:///jndi/rmi://<ip address>:<port>/platform

其中 <ip address> 是管理伺服器的 IP 位址 (或 個別伺服器)。管理伺服器的通訊埠預設為 1099。

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

JMX MBeans

JMX 屬性

記憶體

HeapMemoryUsage

NonHeapMemoryUsage

用量

注意:屬性值將以下列四個值顯示:已承諾、 init、max 和 used。

使用 Edge Application API 檢查

您可以叫用以下指令,對管理伺服器 (或任何伺服器) 執行 API 檢查 CURL 指令:

curl http://<host>:8080/v1/servers/self/up

其中 &lt;host&gt; 是管理階層的 IP 位址 伺服器

這個呼叫會傳回「true」和「false」如為 true,表示節點已啟動,且 Java 服務為 備用資源

如果您沒有收到 HTTP 200 (OK) 回應,Edge 就無法回應通訊埠 8080 要求。

疑難排解

  1. 登入伺服器並執行下列指令:
    /&lt;inst_root&gt;/apigee/apigee-service/bin/apigee-service Edge Management-server 狀態
  2. 如果服務未執行,請啟動服務:
    /&lt;inst_root&gt;/apigee/apigee-service/bin/apigee-service Edge Management-server start

使用 Edge 應用程式 - 使用者、組織與部署作業檢查

管理伺服器扮演重要角色,必須針對每個地端部署環境將所有其他包裹分開 安裝。您可以在管理伺服器上查看使用者、機構和部署狀態 執行下列指令:

curl -u userEmail:password http://localhost:8080/v1/users
curl -u userEmail:password http://localhost:8080/v1/organizations
curl -u userEmail:password http://localhost:8080/v1/organizations/orgname/deployments

系統應為所有呼叫顯示「已部署」狀態。如果失敗,請進行 包括:

  1. 查看管理伺服器記錄檔 (網址為 &lt;inst_root&gt;/apigee/var/log/edge-management-server) 是否有任何錯誤
  2. 對管理伺服器發出呼叫,檢查該伺服器是否正常運作 正確做法。
  3. 請從 ELB 中移除伺服器,然後重新啟動管理伺服器。
    /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server restart

路由器

您可以叫用以下 CURL,在路由器 (或任何伺服器) 上執行 API 檢查 指令:

curl http://<host>:8081/v1/servers/self/up

其中,主機是路由器的 IP 位址。

這個呼叫會傳回「true」和「false」如為 true,表示節點已啟動,且 Java 服務為 備用資源

如果您沒有收到 HTTP 200 (OK) 回應,Edge 就無法回應通訊埠 8081 要求。

疑難排解

  1. 登入伺服器並執行下列指令:
    /&lt;inst_root&gt;/apigee/apigee-service/bin/apigee-service 邊緣路由器狀態
  2. 如果服務目前未執行,請
    /&lt;inst_root&gt;/apigee/apigee-service/bin/apigee-service Edge-router start
  3. 如果服務正在執行,請測試是否可正常運作。叢集狀態的監控作業 根據 availableCount 檢查 memberCount,並通知所有含有 'memberCount != availableCount'
    curl -v -u &lt;userEmail&gt;:&lt;password&gt;http://localhost:port/v1/cluster

    地點連接埠 – 8081 (路由器) 和 8082 (訊息處理器)。上述的輸出內容 CURL 指令如下所示:
    {
    「memberCount」:12、
    「pod」: "rea1gw001",
    &quot;reachableCount&quot;:12、
    「region」: "us-east-1",
    「類型」: [ "management-server"]
    * 連線 #0 以託管 ms05 Apigee 完整連線
    * 正在關閉連線 #0
    }
  4. 如果無法運作,請執行下列指令檢查失敗,或 違規的會員。
    curl http://localhost:port/v1/cluster/members

    地點連接埠 – 8081 (路由器) 和 8082 (訊息處理器)。上述的輸出內容 CURL 指令會如下所示:
    {
    &quot;lastChange&quot;:0、
    「延遲」:0、
    「州」: "已連結",
    「uuid」:"9c4c8bde-0015-4dc5-82d2-59fb326c4074"
    }, {
    「地址」: "/192.168.5.209:4526",
    &quot;clusterType&quot;: "router,message-processor",
    &quot;lastChange&quot;:1350658037228、
    「延遲」: 3、
    「pod」: "rea1gw001",
    「region」: "us-east-1",
    「serverType」: "訊息處理器",
    「州」: "已連結",
    「uuid」:"f1c663a1-2bb8-469f-b5fd-69a5c5aa91c5"
    }, {
    「地址」: "/192.168.5.29:4526",
    &quot;clusterType&quot;: "router,message-processor",
    &quot;lastChange&quot;: 1350623005057、
    「延遲」: 1、
    「pod」: "rea1gw001",
    「region」: "us-east-1",
    「serverType」: "訊息處理器",
    「州」: "中斷連線,
    「uuid」:"4cfe932b-f644-4581-b1ae-df338af9c7ce"
    }, {
    「地址」: "/192.168.4.182:4526",
    &quot;clusterType&quot;: "router,message-processor",
    &quot;lastChange&quot;: 1350657730535、
    「延遲」: 1、
    「pod」: "rea1gw001",
    「region」: "us-east-1",
    「serverType」: "訊息處理器",
    「州」: "已連結",
    「uuid」:"cba063d5-b8a4-409f-9e0b-f5d403e02091"
    }
  5. 請注意,IP 位址 192.168.5.29 已中斷連線。重新啟動伺服器
    /&lt;inst_root&gt;/apigee/apigee-service/bin/apigee-service Edge-router 重新啟動

    注意:如果路由器處於中斷連線狀態,請從 ELB 中移除路由器, 然後再重新啟動
  6. 重新啟動後,請檢查裝置是否正常運作
    curl -v 版 http://localhost:port/v1/cluster

    其中連接埠的路由器是 8081,訊息處理器則是 8082。

訊息處理器

使用 透過 JConsole 監控系統健康狀態檢查和程序資訊

請按照上述的管理伺服器操作做法操作。

注意:請務必使用通訊埠 1101。

使用 Edge Application API 檢查

請按照上述步驟設定路由器。

注意:請務必使用通訊埠 8082。

使用 JMX 郵件流檢查

請按照上述步驟啟用管理伺服器。

注意:請務必使用 1101 這個通訊埠。

Qpid 伺服器

使用 JConsole 監控系統健康狀態檢查和處理資訊

請按照上述的管理伺服器操作做法操作。

注意:請務必使用通訊埠 1102。

使用 Edge Application API 檢查

請按照上述的管理伺服器操作做法操作。

注意:請務必使用通訊埠 8083。以下 CURL 指令為 也支援 Qpid 伺服器:

curl http://<qpid_IP>:8083/v1/servers/self

Postgres 伺服器

使用 透過 JConsole 監控系統健康狀態檢查和程序資訊

請按照上述的管理伺服器操作做法操作。

注意:請務必使用通訊埠 1103。

使用 Edge Application API 檢查

請按照上述的管理伺服器操作做法操作。

注意:請務必使用通訊埠 8084。以下 CURL 指令為 同樣支援 Postgres 伺服器:

curl http://<postgres_IP>:8084/v1/servers/self

使用 Edge 應用程式組織與環境檢查

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

curl http:// <postgres_IP>:8084/v1/servers/self/organizations

注意:請務必使用 8084 通訊埠。

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

使用 Edge Application axstatus 確認

你可以傳送下列 CURL 來驗證分析伺服器的狀態 指令

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

系統應顯示所有分析伺服器的「成功」狀態。上述 CURL 的輸出內容 指令如下所示:

{
  "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 資料庫

使用 check_postgres.pl 指令碼

如要監控 PostgreSQL 資料庫,您可以使用標準監控指令碼 check_postgres.pl,網址是: http://bucardo.org/wiki/Check_postgres.

注意:每個 Postgres 中必須安裝 check_postgres.pl 指令碼 節點。

執行指令碼之前:

  1. 確認您已安裝 perl-Time-HiRes.x86_64,這個 Perl 模組 執行高解析度鬧鐘、睡眠、取得時間和間歇計時器。舉例來說, 可以使用以下指令進行安裝:
    安裝 perl-Time-HiRes.x86_64

使用指令碼進行 API 呼叫的預設輸出內容,check_postgres.pl 與 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 -actiondisk_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(*) 是結果 來自 pg_tables,其中 schemaname='analytics'和資料表名稱,例如「%fact」--warning='80' --重要='90'--valtype=integer

注意:請參閱 http://bucardo.org/check_postgres/check_postgres.pl.html 讓您在使用上述指令時需要協助嗎?

DB 檢查

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

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

然後執行下列指令:

\d analytics."<org>.<env>.fact"

查看 postgres 的健康狀態 處理程序

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

http://<postgres_IP>:8084/v1/servers/self/health/

注意:請務必使用通訊埠 8084。

當 postgres 程序啟用時,會傳回「ACTIVE」。如果 Postgres 未啟動並執行,會傳回「INACTIVE」狀態。

Postgres 資源

Apache Cassandra

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

使用 JConsole 和下列服務網址監控 JMX 屬性 (MBeans) 會透過 JMX 提供。

service:jmx:rmi:///jndi/rmi://<ip address>:7199/jmxrmi

其中 <ip address> 是 Cassandra 的 IP 伺服器

根據預設,Cassandra 會啟用 JMX,且 Cassandra 的遠端 JMX 存取權不需要密碼。

如何啟用 JMX 驗證以新增密碼:

  1. 編輯 /&lt;inst_root&gt;/apigee/customer/application/cassandra.properties。 如果檔案不存在,請建立一個。
  2. 請將以下內容加入檔案:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. 儲存檔案。
  4. 將下列檔案從 $JAVA_HOME 目錄複製到 /&lt;inst_root&gt;/apigee/data/apigee-cassandra/:
    cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password

    cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access
  5. 編輯 jmxremote.password 和 在檔案中新增使用者名稱和密碼:
    卡桑德拉 密碼

    其中 password 是 JMX 密碼。
  6. 編輯 jmxremote.access 和 新增下列角色:
    卡桑德拉 讀寫
  7. 請確定檔案的擁有者為「apigee」檔案模式為 400:
    &gt;Chown apigee:apigee /&lt;inst_root&gt;/apigee/data/apigee-cassandra/jmxremote.*
    &gt;chmod 400/<inst_root>/apigee/data/apigee-cassandra/jmxremote。*
  8. 執行 configure Cassandra:
    &gt; /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra 設定
  9. 重新啟動 Cassandra:
    &gt; /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra 重新啟動

如何日後停用驗證功能:

  1. 編輯 /&lt;inst_root&gt;/apigee/customer/application/cassandra.properties
  2. 在檔案中移除下列這行程式碼:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. 在 Cassandra 上執行 configure:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  4. 重新啟動 Cassandra:
    &gt; /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra 重新啟動

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 的指令列介面,用於管理 叢集節點您可在 &lt;inst_root&gt;/apigee/apigee-cassandra/bin 找到此公用程式。

如要進一步瞭解 Nodetool 公用程式,請參閱 http://www.datastax.com/docs/1.0/references/nodetool

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

  1. 一般環狀資訊 (單一 Cassandra 節點也可能出現):請查看所有節點的「Up」和「Normal」。
    [host]# nodetool -h localhost 響鈴

    上述指令的輸出內容如下所示:
    資料中心地址 機架狀態載入擁有 權杖
    192.168.124.201 dc1 ra1 正常值:1.67 MB 33,33% 0
    192.168.124.202 dc1 ra1 正常值:1.68 MB 33,33% 56713727820156410577229101238628035242
    192.168.124.203 dc1 ra1 正常值:1.67 MB 33,33% 113427455640312821154458202477256070484
  2. 節點的一般資訊 (每個節點呼叫一次)
    nodetool -h localhost info

    上述指令的輸出內容如下:
    權杖 :0
    閒聊中 :true
    負載 :1.67 MB
    世代編號 :1361968765
    上線時間 (秒) :78108
    堆記憶體 (MB) :46,80 / 772,00
    資料中心 :dc1
    機架 :ra1
    例外狀況 :0
  3. 等待伺服器的狀態 (提供用戶端 API)
    host]# nodetool -h localhost 狀態竊取

    上述指令的輸出內容會顯示為「執行中」。
  4. 資料串流作業狀態:觀察 Cassandra 的流量 nodes
    nodetool -h localhost netstats 203 年 192.168.124.203

    上述指令的輸出內容如下所示:
    模式:一般
    無串流至 /192.168.124.203
    203 年 192.168.124.203 期間沒有串流播放任何內容
    集區名稱運作中,但尚未完成
    不適用指令 0 1688
    回覆數:無 292277 年

Cassandra 監控 (UI)

請參閱 Datastax 作業中心網址:http://www.datastax.com/products/opscenter

Cassandra 資源

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

Apache ZooKeeper

正在檢查 ZooKeeper 狀態

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

使用 ZooKeeper 四字詞

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

如要進一步瞭解 ZooKeeper 指令,請參閱 http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands

例如:

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

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

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

    傳回:
    模擬
  2. 執行四個字母的指令,以列出伺服器效能和連線的用戶端 統計資料。
    echo stat | nc <host> 2181

    傳回:
    Zookeeper 版本:3.4.5-1392090,
    建構於 2012 年 9 月 30 日 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

    附註:有時需要查看 ZooKeeper 是否處於 Mode:leader、follower 或 observer。
  3. 如果無法使用 netcat (nc),您可以使用 Python 做為替代方案。建立檔案 名稱為 zookeeper.py 包含下列項目:
    匯入時間、通訊端,
    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)
    列印 c.recv(512)


    現在執行以下 Python 程式碼:
    Python Zookeeper.py 192.168.124.201 魯克
    python Zookeeper.py 192.168.124.201 統計資料

OpenLDAP

LDAP 層級測試

您可以監控 OpenLDAP,瞭解特定要求是否正確放送。於 意即尋找傳回正確結果的特定搜尋。

  1. 使用「ldapsearch」ldapsearch (yum 安裝 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 管理員密碼:
    輸入 LDAP 密碼:

    輸入密碼後,您會看到以下回應:
    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@apigee.com
  2. 檢查管理伺服器是否仍連線至 LDAP 問題:
    curl -u <userEMail>:<password> http://localhost:8080/v1/users/<ADMIN>

    傳回:
    {
    "emailId" : <ADMIN>,
    "firstName" : "admin",
    "lastName" : "admin"
    }

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