Private Cloud v. 4.17.09 版本
本文件說明內部部署系統支援的元件監控技術 Apigee Edge 的部署作業
啟用 JMX
Cassandra 預設會啟用 JMX,其他 Edge 則預設為停用。 元件。因此,您必須分別為每個元件啟用 JMX。
每個元件都支援不同通訊埠的 JMX。下表列出 JMX 通訊埠和 ,以啟用該通訊埠的 JMX:
元件 | JMX 通訊埠 | 檔案 |
---|---|---|
管理伺服器 | 1099 | /opt/apigee/edge-management-server/bin/start |
路由器 | 1100 | /opt/apigee/edge-router/bin/start |
訊息處理器 | 1101 | /opt/apigee/edge-message-processor/bin/start |
Qpid | 1102 | /opt/apigee/edge-qpid-server/bin/start |
Postgres | 1103 | /opt/apigee/edge-postgres-server/bin/start |
舉例來說,如果要在管理伺服器上啟用 JMX, /opt/apigee/edge-management-server/bin/start。應該會看到下列程式碼 啟動管理伺服器:
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 $* $debug_options com.apigee.kernel.MicroKernel
編輯此行以新增以下內容:
-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
請注意,此行會將 Management Server 的 JMX 通訊埠號碼指定為 1099。將 。例如:
exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts -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 -Djava.security.auth.login.config=$conf_path/jaas.config -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir $* $debug_options com.apigee.kernel.MicroKernel
儲存檔案,然後重新啟動元件。例如:重新啟動 伺服器:
> /opt/apigee/apigee-service/bin/ apigee-service edge-management-server restart
啟用 JMX 驗證和 設定 JMX 密碼
Management Server、Message Processor、Qpid 和 Postgres 的監控程序 請使用 JMX預設會啟用 JMX,遠端 JMX 存取不需要密碼。
如要啟用 JMX 驗證,每個元件都有一個 change_jmx_auth 動作,供您使用 啟用/停用驗證,以及設定 JMX 憑證。
如要啟用 JMX 驗證,請使用下列指令:
> /opt/apigee/apigee-service/bin/apigee-service comp change_jmx_auth optionsOrConfigFile
其中:
- comp 可以是 edge-management-server、 Edge-message-processor Edge-qpid-server,或 edge-postgres-server.
- 可用選項包括:
- -u:使用者名稱
- -p:密碼
- -e:y (啟用) 或 n (可穩定)
- 設定檔包括:
- JMX_USERNAME=使用者名稱
- JMX_ENABLED=y/n
- JMX_PASSWORD=password (如果未設定或並未以 -p 傳入,系統會提示您)
舉例來說,如要在指令列中使用選項:
> /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 configFile
如果您在多個節點上執行 Edge,請在所有節點上執行這個指令,並指定相同的 使用者名稱和密碼
日後如要停用 JMX 驗證,請使用下列指令:
> /opt/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>/jmxrmi
其中 <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 -H "Accept: application/json"
其中 <host> 是管理伺服器的 IP 位址。 您可以將 Accept 類型指定為 application/json 或 application/xml。
這個呼叫會傳回「true」和「false」如為 true,表示節點已啟動,且 Java 服務為 備用資源
如果您沒有收到 HTTP 200 (OK) 回應,Edge 就無法回應通訊埠 8080 要求。
疑難排解
- 登入伺服器並執行下列指令:
/opt/apigee/apigee-service/bin/apigee-service Edge Management-server 狀態 - 如果服務未執行,請啟動服務:
/opt/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
系統應會顯示「已部署」。如果失敗,請進行 包括:
- 查看管理伺服器記錄檔 (網址為 opt/apigee/var/log/edge-management-server) 是否有任何錯誤
- 對管理伺服器發出呼叫,檢查該伺服器是否正常運作 正確做法。
- 請從 ELB 中移除伺服器,然後重新啟動管理伺服器。
/opt/apigee/apigee-service/bin/apigee-service Edge-management-server restart
路由器
您可以叫用以下 CURL,在路由器 (或任何伺服器) 上執行 API 檢查 指令:
curl http://<host>:8081/v1/servers/self/up
其中,主機是路由器的 IP 位址。
這個呼叫會傳回「true」和「false」如為 true,則代表節點已啟動,且路由器已啟動 服務是否正在運作
如果您沒有收到 HTTP 200 (OK) 回應,Edge 就無法回應通訊埠 8081 要求。
疑難排解
- 登入伺服器並執行下列指令:
/<inst_root>/apigee/apigee-service/bin/apigee-service 邊緣路由器狀態 - 如果服務目前未執行,請
/<inst_root>/apigee/apigee-service/bin/apigee-service Edge-router start - 重新啟動後,請檢查裝置是否正常運作
curl -v 版 http://localhost:port/v1/servers/self/up
其中連接埠的路由器是 8081,訊息處理器則是 8082。
使用 透過 JConsole 監控系統健康狀態檢查和程序資訊
請按照上述的管理伺服器操作做法操作。
注意:請務必使用通訊埠 1100。
訊息處理器
使用 透過 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 指令碼 節點。
執行指令碼之前:
- 確認您已安裝 perl-Time-HiRes.x86_64,這個 Perl 模組
執行高解析度鬧鐘、睡眠、取得時間和間歇計時器。舉例來說,
可以使用以下指令進行安裝:
安裝 perl-Time-HiRes.x86_64
使用指令碼進行 API 呼叫的預設輸出內容,check_postgres.pl 與 Nagios 相容。更新後 安裝指令碼時,請進行以下檢查:
- 資料庫大小 - 檢查資料庫大小:
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' - 資料庫的連入連線 – 檢查與
並與資料庫的連線數量上限比較:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action 後端 - 資料庫可用性和效能 – 檢查資料庫是否正在執行,以及
可用價格:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action 連線 - 磁碟空間 - 檢查磁碟空間:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -actiondisk_space --warning='80%' --Critical='90%' - 完成註冊的機構/環境:檢查機構數量和
安裝在 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 讓您在使用上述指令時需要協助嗎?
資料庫檢查
您可以驗證是否已在 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 資源
- http://www.postgresql.org/docs/9.0/static/monitoring.html
- http://www.postgresql.org/docs/9.0/static/diskusage.html
- http://bucardo.org/check_postgres/check_postgres.pl.html
Apache Cassandra
使用 JConsole – 監控工作 統計資料
使用 JConsole 和下列服務網址監控 JMX 屬性 (MBeans) 會透過 JMX 提供。
service:jmx:rmi:///jndi/rmi://<ip address>:7199/jmxrmi
其中 <ip address> 是 Cassandra 的 IP 伺服器
Cassandra 預設會啟用 JMX,遠端 JMX 存取 Cassandra 不需要 密碼。
如何啟用 JMX 驗證以新增密碼:
- 編輯 /opt/apigee/customer/application/cassandra.properties。 如果檔案不存在,請建立一個。
- 請將以下內容加入檔案:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - 儲存檔案。
- 將下列檔案從 $JAVA_HOME 目錄複製到
/opt/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 - 編輯 jmxremote.password 和
在檔案中新增使用者名稱和密碼:
卡桑德拉 密碼
其中 password 是 JMX 密碼。 - 編輯 jmxremote.access 和
新增下列角色:
卡桑德拉 讀寫 - 請確定檔案的擁有者為「apigee」檔案模式為 400:
>Chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.*
>chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote。* - 執行 configure
Cassandra:
> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure - 重新啟動 Cassandra:
> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart - 對所有其他 Cassandra 節點重複這項程序。
如何日後停用驗證功能:
- 編輯 /opt/apigee/customer/application/cassandra.properties。
- 在檔案中移除下列這行程式碼:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - 在 Cassandra 上執行設定:
> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra 克服 - 重新啟動 Cassandra:
> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart - 對所有其他 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 的指令列介面,用於管理 叢集節點您可以在 opt/apigee/apigee-cassandra/bin 找到這個公用程式。
如要進一步瞭解 Nodetool 公用程式,請參閱 http://www.datastax.com/docs/1.0/references/nodetool。
可以對所有 Cassandra 叢集節點進行下列呼叫:
- 一般環狀資訊 (適用於單一 Cassandra 節點):請找出
「向上」和「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 - 節點的一般資訊 (每個節點的呼叫)
nodetool -h localhost 資訊
上述指令的輸出內容如下所示:
權杖 :0
已啟用八卦分享:是
載入:1.67 MB
第 1 代:1361968765
運作時間 (秒):78108
堆積記憶體 (MB):46,80 / 772,00
資料中心:dc1
機架:ra1
例外狀況:0 - 等待伺服器的狀態 (提供用戶端 API)
host]# nodetool -h localhost 狀態竊取
上述指令的輸出內容會顯示為「執行中」。 - 資料串流作業狀態:觀察 Cassandra 的流量
節點
nodetool -h localhost netstats 203 年 192.168.124.203
上述指令的輸出內容如下所示:
模式:一般
無串流至 /192.168.124.203
203 年 192.168.124.203 期間沒有串流播放任何內容
集區名稱運作中,但尚未完成
不適用指令 0 1688
回覆數:無 292277 年
Cassandra 監控 (UI)
請參閱 Datastax opscenter 網址:http://www.datastax.com/products/opscenter。
Cassandra 資源
請參閱以下網址:http://www.datastax.com/docs/1.0/operations/monitoring。
Apache ZooKeeper
正在檢查 ZooKeeper 狀態
- 確認 ZooKeeper 程序正在執行。ZooKeeper 將 PID 檔案寫入 opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid。
- 測試 ZooKeeper 通訊埠,以確保您可以建立與通訊埠 2181 及 3888 美元。
- 確認您可以從 ZooKeeper 資料庫讀取值。使用 ZooKeeper 連線 用戶端程式庫 (或 /opt/apigee/apigee-zookeeper/bin/zkCli.sh) 並從資料庫中讀取值
- 檢查狀態:
> /opt/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 連接埠發出以下指令:
- 只要執行四個字母的指令 ruok,即可測試伺服器是否在非錯誤狀態下執行。A 罩杯
成功的回應會傳回「imok」
echo ruok |nc <主機> 2181
傳回:
模擬 - 執行四個字母的指令,以列出伺服器效能和連線的用戶端
統計資料。
echo 統計資料 |nc <主機> 2181
傳回:
Zookeeper 版本:3.4.5-1392090, 建立時間:2012 年 9 月 30 日 17:52 GMT
客戶:
/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)
延遲時間下限/平均值/上限:0/0/128
收到的時間:26144
已傳送:26160
連線數量:4
未付帳款:0
Zxid:0x2000002c2
模式:追蹤者
節點數量:283 個
注意:查看 ZooKeeper 是否處於「模式」時非常重要:負責人、 追蹤者或觀察者 - 如果無法使用 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,確認特定要求是否已正確提供。於 意即尋找傳回正確結果的特定搜尋。
- 使用「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」- 小時 ldap://localhost:10389 -LLL
系統隨即會提示您輸入 LDAP 管理員密碼:
輸入 LDAP 密碼:
輸入密碼後,畫面會顯示以下形式的回應:
dn: uid=admin,ou=users,ou=global,dc=apigee,dc=com
objectClass:organizationPerson
objectClass:person
objectClass:inetOrgPerson
objectClass:top
uid:admin
cn:admin
sn:admin
userPassword:e1NTSEF9bS9xbS9RbVNXSFFtUWVsU1F0c3BGL3BQMkhObFp2eDFKUytmZVE9PQ=
=
mail:opdk@google.com - 檢查管理伺服器是否仍與 LDAP 連線問題:
curl -u <userEMail>:<密碼>http://localhost:8080/v1/users/<ADMIN>
傳回:
{
"emailId": <管理員>,
「firstName」: "管理員",
「lastName」: "管理員"
}
您也可以監控 OpenLDAP 快取,進而減少存取磁碟的次數 進而改善系統效能然後調整 Cloud Storage 中的 OpenLDAP 伺服器可能會嚴重影響目錄伺服器的效能。您可以查看記錄檔 檔案 (opt/apigee/var/log) 取得快取相關資訊