Sun ONE Application Server 7 管理員指南 |
第 6 章
監視 Sun ONE Application Server本章包含有關監視、簡單網路管理協定 (SNMP) 功能以及 Sun ONE Application Server 功能的資訊。
本章包含下列小節:
關於監視 Sun ONE Application Server您可以從系統的策略資料點中收集狀態統計資料來監視 Sun ONE Application Server。統計資料會顯示伺服器所處理的請求數,以及對這些請求的處理程度。您可以針對個別虛擬伺服器檢視某些統計資料,並針對整個應用程式伺服器實例檢視另一些統計資料。可以使用 asadmin 公用程式或 SNMP 監視 Sun ONE Application Server。
本章節論述以下主題:
統計資料
統計資料集合總處於啟動狀態,以用於多數 Sun ONE Application Server 應用程式元件和子系統,包括 HTTP 伺服器;因此,無需啟動任何功能。但是,某些統計資料僅當該子系統上的監視處於明確的啟用狀態,或僅當啟用了相關的功能時才會被收集。這些統計資料包括下列資料點:
可以經由管理介面為應用程式子系統或元件啟用監視,如監視應用程式元件與子系統中所述。
如果伺服器監視器報告伺服器正在處理大量的請求,可能需要您調整伺服器配置或系統的網路核心。如需有關調整伺服器配置的更多資訊,請參閱「Sun ONE Application Server Performance Tuning and Sizing Guide」。
SNMP
透過使用簡單網路管理協定 (SNMP) (該協定用於在網路之間交換管理與監視資訊) 的資訊收集工具,Sun ONE Application Server 可以提供網路管理資訊。透過使用 SNMP,名為 agents 的程式可以監視網路上的各種裝置 (如集線器、路由器、橋接器等等)。另一個程式從 agents 處收集資料。由監視作業建立的資料庫被稱為管理資訊庫 (MIB)。該資料用於檢查網路上的所有裝置是否都在正確地作業。
雖然使用 SNMP 僅可以監視 HTTP 伺服器;但使用指令行介面 (CLI) 卻可以監視所有的元件和系統
如需有關 SNMP 的更多資訊,請參閱關於 SNMP 與設定 SNMP。
監視 HTTP 伺服器
依預設,HTTP 伺服器監視總處於啟動狀態,這就意味著無需特意開啟監視。HTTP 伺服器監視以 XML 檔案為基礎,可以使用 asadmin 指令 (作為三個可監視屬性的集合) 對其進行存取。可監視的 HTTP 伺服器元素與可監視的 HTTP 伺服器屬性中描述此 XML 檔案的元素、子元素以及屬性。
如需關於使用 asadmin 的更多資訊,請參閱使用指令行介面。
監視應用程式元件與子系統
對於 Sun ONE Application Server 中的某些子系統或元件,無需啟動監視,因為總可以收集到相關的統計資料。例如,可以啟用或停用對應用程式元件 (如容器) 的監視。啟用監視後,除了總可以收集到的統計資料之外,還可以收集到有關所有 EJB 方法的附加統計資料。對 JDBC 連線區的監視總處於啟用狀態。首次存取連線區時便對其進行了初始化,在此之後,可以在任何時候監視相關的統計資料。
如需可監視資料點的完整清單,請參閱可監視屬性名稱。
您可以經由管理介面或指令行介面 (CLI),啟用對所選應用程式元件和子系統的監視。例如,若要經由 EJB 容器的 CLI 啟用監視,請在終端機視窗中鍵入下列指令:
其中,server1 為實例名稱。
在 [Containers] 節點下的管理介面上可以存取對等的功能。
本章節論述以下主題:
監視容器子系統
至於 EJB 容器,啟用了監視之後,便可以收集與所有實體 Bean、有狀態階段作業 Bean 以及無狀態階段作業 Bean 方法有關的統計資料。這些統計資料包括:
總能收集容器子系統的所有其他統計資料。某些受監視資料點包括的統計資料為:
監視 ORB 服務
對於 ORB 服務,受監視資料點包括為 ORB 連線與 ORB 執行緒儲存區收集的統計資料。總可以收集到 ORB 統計資料,因此,無需啟用對 ORB 服務的監視。
監視作業事件服務
對於 Java Transaction Service (JTS) 服務,受監視資料點包括:
請參閱使用 CLI 管理作業事件服務,以取得進一步資訊。
服務品質 (QOS)
服務品質是指您為伺服器實例虛擬伺服器類別或虛擬伺服器設定的效能範圍。例如,如果您是網際網路服務提供者 (ISP),可能會依據所提供的頻寬對虛擬伺服器收取不同的費用。您可以限定兩個方面:頻寬量與連線數。
Sun ONE Application Server 提供的服務品質資訊用於確定伺服器在執行期間的效率,包括:
如需更多資訊,請參閱使用 CLI 管理作業事件服務。
使用 CLI 擷取監視資料透過 asadmin 指令,您可以經由使用 list 與 get 指令,經由指令行介面 (CLI) 擷取受監視資料。
註
如使用 CLI 管理作業事件服務中所述,set 指令僅用於設定對作業事件服務的監視。
本章節討論下列主題:
list --monitor 指令
list 指令提供關於目前正在受監視的指定伺服器實例名稱應用程式元件與子系統的資訊。使用該指令,您可以檢視伺服器實例的可監視元件與子元件。
範例
asadmin> list --monitor server1
傳回下列已經啟用監視的應用程式元件與子系統清單:
iiop-service
transaction-service
application.converter
application.myApp
http-server您也可以列示指定伺服器實例中目前被監視的應用程式。這對於使用 get 指令從應用程式中尋找特定的監視統計資料很有幫助。
範例
asadmin> list --monitor server1.application
傳回:
converter
myApp如需更為詳細的範例,請參閱 Petstore 範例。
get --monitor 指令
該指令擷取下列受監視資訊:
當特定元件或子系統所需的屬性不存在時,便會傳回錯誤。同樣,當元件或子系統所需的特定屬性不在作用中時,也會傳回錯誤。
請參閱 CLI 名稱對映,以取得有關使用 get 指令的更多資訊。
範例 1
嘗試從特定屬性的子系統中取得全部屬性:
asadmin> get --monitor server1.iiop-service.orb.system.orb-connection.*
total-inbound-connections=1
total-outbound-connections=1範例 2
嘗試從 J2EE 應用程式中取得全部屬性:
asadmin> get --monitor server1.application.converter.*
Attribute name(s) not found
J2EE 應用程式層級上看不到可監視屬性,因此指令失敗。
範例 3
嘗試從子系統中取得特定屬性:
asadmin> get --monitor server1.transaction-service.inflight-tx
Attribute name = inflight-tx Value = No active transaction found.
範例 4
嘗試從一個子系統屬性中取得不明的屬性:
asadmin> get --monitor server1.iiop-service.orb.system.orb-connection.bad-name
Could not get the attribute
Execution failed for the command:get --monitor server1.iiop-service.orb-connection.bad-name
CLI 名稱對映
Sun ONE Application Server 使用樹狀結構追蹤可監視物件。樹上的每個節點都具有名稱和類型。如果類型為單一型,則任何父節點下僅能有一個該類型的節點。如需有關此樹中節點類型的更多資訊,請參閱可監視物件類型。
樹中的根物件由 Sun ONE Application Server 實例名稱表示。例如,名為 server1 的實例之根監視物件為:
然後,使用點 (.) 字元作為分隔符號來命名所有子物件。如果子節點為單一型,則僅需要監視物件類型來命名物件;否則,會需要形式為 type.name 的名稱來命名物件。
例如,http-server 為一種有效的可監視物件類型,並且為單一型。若要命名表示實例 server1 之 http-server 的單一型子節點,則稱為:
另一個範例,application 為有效的可監視物件類型,但並非單一型。若要命名表示應用程式 Petstore 的非單一型子節點,名稱為:
CLI 名稱也可以命名可監視物件中的特定屬性。例如,http-server 具有名為 summary 的可監視屬性。以下名稱可以命名 summary 屬性:
對於監視物件中的屬性名稱,沒有固定的命名慣例。
您無需瞭解 CLI 使用的有效名稱。list 指令可讓您檢查可用的可監視物件,而與萬用字元參數配合使用的 get 指令可讓您檢查任何可監視物件上的所有可用屬性。
下面的範例闡明一些用戶端名稱對映方案:
Petstore 範例
一個使用者想要檢查呼叫 Petstore 應用程式中方法的次數,該應用程式部署在名為 server1 的 Sun ONE Application Server 實例上。配合使用 list 與 get 指令來存取所需的方法統計資料。
- 以多種模式呼叫 CLI。
- 設定一些有用的環境變數,以避免為每個指令輸入這些變數:
asadmin>export AS_ADMIN_USER=admin AS_ADMIN_PASSWORD=admin123
asadmin>export AS_ADMIN_HOST=localhost AS_ADMIN_PORT=4848
- 列示實例 server1 的可監視元件:
asadmin> list --monitor server1
輸出的內容為:
iiop-service
transaction-service
application.CometEJB
application.ConverterApp
application.petstore
http-server
resources可監視元件的清單包括 iiop-service、http-server、transaction-service、resources 以及所有已部署 (或已啟用) 的應用程式。
- 列示 Petstore 應用程式中的可監視子元件 (可以使用 -m 代替 --monitor):
asadmin>list -m server1.application.petstore
輸出的內容為:
ejb-module.signon-ejb_jar
ejb-module.catalog-ejb_jar
ejb-module.uidgen-ejb_jar
ejb-module.customer-ejb_jar
ejb-module.petstore-ejb_jar
ejb-module.AsyncSenderJAR_jar
ejb-module.cart-ejb_jar- 列示 Petstore 應用程式之 EJB 模組 sigon-ejb_jar 中的可監視子元件:
asadmin>list -m server1.application.petstore.ejb-module.signon-ejb_jar
輸出的內容為:
entity-bean.UserEJB
stateless-session-bean.SignOnEJB- 列示 Petstore 應用程式之 EJB 模組 sigon-ejb_jar 的實體 Bean UserEJB 中的可監視子元件:
asadmin>list -m server1.application.petstore.ejb-module.signon-ejb_jar.entity-bean.UserEJB
輸出的內容為:
bean-method.create0
bean-method.findByPrimaryKey1
bean-method.remove2
bean-method.getUserName3
bean-method.setPassword4
bean-method.getPassword5
bean-method.matchPassword6
bean-method.remove7
bean-method.isIdentical8
bean-method.getEJBLocalHome9
bean-method.getPrimaryKey10
bean-pool
bean-cache- 列示 Petstore 應用程式之 EJB 模組 sigon-ejb_jar 的實體 Bean UserEJB 中方法 getUserName3 內的可監視子元件:
asadmin>list -m server1.application.petstore.ejb-module.signon-ejb_jar.entity-bean.UserEJB.bean-method.getUserName3
輸出的內容為:
No monitorable entities for element
server1.application.petstore.ejb-module.signon-ejb_jar.entity-bean.UserEJB.bean-method.getUserName3- 沒有方法的可監視子元件。請取得方法 getUserName3 的全部可監視統計資料。
asadmin>get -m server1.application.petstore.ejb-module. signon-ejb_jar.entity-bean.UserEJB.bean-method.getUserName3.*
method-name = public abstract java.lang.String com.sun.j2ee.blueprints.signon.user.ejb.UserLocal.getUserName()
total-num-errors = 0
total-num-success = 2
execution-time-millis = 1
total-num-calls = 2- 您也可以取得特定的統計資料,如執行時間。
asadmin>get -m server1.application.petstore.ejb-module. signon-ejb_jar.entity-bean.UserEJB.bean-method.getUserName3.execution-time-millis
execution-time-millis = 1可監視物件類型
用於監視的物件樹包含數個節點。節點是物件樹中的特定項目,可以透過其類型、名稱以及父節點來唯一地識別。某些節點的類型為單一型,表示父節點下僅能有一個此類型的節點。對於單一型節點,名稱是非相關的。
非單一型節點需要具有名稱。實例名稱欄對可能的名稱空間進行描述。
下表依照各種節點類型與某些節點類型名稱空間之間可能的父子關係,對樹狀結構進行描述。
可監視屬性名稱
並非每個可監視物件都需要展示可監視屬性。某些物件僅用於對其他物件進行分組。對於 Sun ONE Application Server,除了節點 http-server,僅有樹上的葉節點才具有屬性。http-server 節點類型具有屬性和子節點。下表列示各種節點的可能可監視屬性名稱。
表格 6-2 http-server
屬性名稱
資料類型 描述
summary
字串 (已格式化)
HTTP 伺服器摘要。包括虛擬伺服器與程序。
注意:請參閱 HTTP 伺服器的可監視物件,以取得有關格式化字串內資料類型的更多資訊。
表格 6-3 virtual-server
屬性名稱
資料類型 描述
<vs-id>
字串 (已格式化)
虛擬伺服器資訊。每個應用程式伺服器實例都可以具有一個或多個虛擬伺服器。虛擬伺服器的 ID 清單可以從 http-server 的 summary 屬性中取得。您可以使用 server1.http-server.virtual-server.<vs-id> 形式的 get 指令參數來查找特定虛擬伺服器的統計資料。您可以使用 server1.http-server.virtual-server.* 形式的 get 指令參數來查找所有虛擬伺服器的統計資訊。
注意:請參閱 HTTP 伺服器的可監視物件,以取得有關格式化字串內資料類型的更多資訊。
表格 6-4 process
屬性名稱
資料類型 描述
<pid>
字串 (已格式化)
程序資訊。每個應用程式伺服器實例僅有一個程序。可以從 http-server 的 summary 屬性中取得程序 ID。可以使用形式為 server1.http-server.process.<pid> 的 get 指令參數取得程序的統計資料。
注意:請參閱 HTTP 伺服器的可監視物件,以取得有關格式化字串內資料類型的更多資訊。
表格 6-5 orb-connection
屬性名稱
資料類型 描述
total-inbound-connections
整數
ORB 的內收連線總數。
total-outbound-connections
整數
ORB 的外送連線總數。
表格 6-6 orb-thread-pool
屬性名稱
資料類型 描述
thread-pool-size
整數
ORB 執行緒儲存區中的執行緒總數。
waiting-thread-count
整數
執行緒儲存區中等待工作的執行緒總數。
表格 6-7 jdbc-connection-pool
屬性名稱
資料類型 描述
total-threads-waiting
整數
等待 JDBC 連線的執行緒總數。
total-outbound-connections
整數
JDBC 連線驗證的失敗總數。
total-connections-timed-out
整數
逾時的連線請求總數。
HTTP 伺服器的可監視物件
HTTP 伺服器的可監視屬性名稱 summary 會列印 Server 元素的屬性值,及其子元素的摘要,包括每個子元素的數目,以及每個子元素的屬性值。HTTP 伺服器的 virtual-server 屬性會列印 VirtualServer 元素的屬性值及其每個子元素的詳細資訊。process 屬性會列印 Process 元素的屬性值及每個子元素的詳細資訊。
若要啟用 NSAPI 效能設定檔,並取得有關 Profile 與 ProfileBucket 元素的統計資料,請參閱「Sun ONE Application Server Developer's Guide to NSAPI」。
如需有關如何使用效能微調的監視統計資料之資訊,請參閱「Sun ONE Application Server Performance and Tuning Guide」。
可監視的 HTTP 伺服器元素
下表列示可監視的 HTTP 伺服器元素。
可監視的 HTTP 伺服器屬性
下表列示可監視的 HTTP 伺服器屬性。
表格 6-23 Thread
屬性名稱
值
描述
Mode
unknown、idle、DNS、request、processing、response、updating
執行緒的上一個已知狀況。
TimeStarted
GMT
此執行緒啟動的時間。
ConnectionQueue
執行緒正在服務的 ConnectionQueue 之 ID。
使用 CLI 管理作業事件服務您可以使用 set 指令,管理要針對 JTS 而監視的統計資料。
範例 1
若要在回轉清單內加入一個作業事件 (此作業會導致回轉或指定的作業事件),請將 set 指令發佈為:
set --monitor server1.transaction-service.rollback-list=txnid1
範例 2
若要凍結作業事件服務,請將 set 指令發佈為:
set --monitor server1.transaction-service.freeze=true
下表描述可以監視以收集 JTS 統計資料的屬性。可以依據 CLI 名稱對映中描述的規則,經由指令行設定這些屬性。
如需有關 Java 作業事件服務的更多資訊,請參閱第 9 章「使用作業事件服務」。
使用 HTTP 服務品質下列設定控制如何計算流量,以及再計算頻寬的頻率:
在管理介面中,您可以為伺服器實例或某類虛擬伺服器啟用這些伺服器或類別層級設定。不過,您可以針對個別虛擬伺服器而置換這些設定。
本章節包括下列主題:
服務品質的範例
以下範例顯示如何收集與計算服務品質資訊。
再計算間隔時間的工作原理與此相似。伺服器的再計算間隔時間為 100 毫秒。
繼續該範例,每 100 毫秒定期地再計算一次頻寬。該計算以流量和公制間隔時間為基礎。
配置服務品質 (QOS)
經由管理介面配置伺服器實例或某類虛擬伺服器的服務品質。
註
若要執行您的服務品質設定,您也必須在 obj.conf 檔案中設定伺服器應用程式功能 (SAF),如對 obj.conf 檔案的必要變更中所述。
若要配置服務品質,請採取以下步驟:
圖 6-1 虛擬伺服器實例 [QOS] 標籤
- 若要啟用此 HTTP 伺服器的服務品質,請按一下 [QOS Enabled]。
注意:依預設,服務品質處於停用狀態。啟用服務品質會稍微增加伺服器的耗用時間。
- 指定 [QOS Metrics Interval]。
公制間隔時間為在伺服器流量計算期間,以秒表示的資料取樣時間。其預設值為 30 秒。
如果站點一般要傳輸大量檔案,請在此欄位中使用較大的值 (數分鐘或更長)。較大的檔案傳輸可能會在較短的公制間隔時間內佔用所有可用的頻寬,如果您已經執行了最大的頻寬設定,還可能導致連線被拒絕。由於頻寬通過除以公制間隔時間來平均分配,所以,較長的間隔時間可以消除由大檔案引起的尖波。
如果頻寬限定遠小於可用的頻寬 (例如,頻寬限定為 1 MB 每秒,但是到主幹的連線為 1 GB 每秒),則應該縮短公制間隔時間。
注意:如果您要進行大的靜態檔案傳輸,並且頻寬限定遠小於可用的頻寬,則必須確定要調整的條件,因為這些問題需要相反的解決方案。
- 指定 QOS 再計算的時間間隔。
再計算時間間隔是指每次計算所有伺服器、類別以及虛擬伺服器頻寬之間的毫秒數。預設值為 100 毫秒。
- 指定頻寬限定。
這是伺服器實例以位元組/秒表示的最大頻寬。在某種程度上,其與 QOS 公制間隔時間相互依賴。
- 選擇是否執行最大頻寬設定。
如果您選擇執行最大頻寬,則當伺服器達到其頻寬限定時,便會拒絕附加的連線。
如果未執行最大頻寬,則當超過最大設定時,伺服器會在事件日誌中記錄一則訊息。
- 指定連線限定。
這是被處理的並行請求數。
- 選擇是否執行連線限定設定。
如果您選擇執行最大連線,則當伺服器達到其連線限定時,便會拒絕附加的連線。如果未執行最大連線,則當超過最大設定時,伺服器會在事件日誌中記錄一則訊息。
- (可選)。如果要為服務品質指定附加的名稱值對屬性,請按一下 [Properties] 按鈕。
如需服務品質特性的可用名稱值對,請參閱線上輔助說明。
- 按一下 [Save],以確定對伺服器實例的變更。
- 在左窗格中存取 [App Server Instances] 和您的伺服器實例,然後按一下 [Apply Changes]。
對 obj.conf 檔案的必要變更
若要執行服務品質,必須將指令納入您的 obj.conf 檔案,以呼叫下列伺服器應用程式功能 (SAF):
為了正確作業,qos-handler AuthTrans 指令必須為預設物件中第一個配置的 AuthTrans。服務品質處理程式的作用為檢查虛擬伺服器、虛擬伺服器類別,以及全域伺服器的目前統計資料,並透過傳回錯誤來執行限定。Sun ONE Application Server 包含內建的取樣服務品質處理程式 SAF,稱為 qos-handler。該 SAF 會在伺服器達到限定的時候進行記錄,並將 503 Server busy 錯誤傳回至伺服器,以便 NSAPI 對其進行處理。
Sun ONE Application Server 還包含內建的取樣錯誤 SAF,稱為 qos-error,其會傳回錯誤頁面,該頁面將指出導致 503 錯誤的限定,以及觸發限定的統計資料值。
如需有關這些 SAF 以及如何使用它們的更多資訊,請參閱「Sun ONE Application Server Developer's Guide to NSAPI」。
服務品質的已知限制
當您使用服務品質功能時,請記住下列限制:
- 計算的頻寬總是為近似值,因為其不是即時測量的,但是會在一定時期內以規則的間隔時間多次進行計算。例如,如果預設的公制間隔時間為 30 秒,並且伺服器閒置了 29 秒,那麼在下一秒內用戶端可能會使用 30 次頻寬限定。
- 每當動態地重新配置伺服器時,便會遺失服務頻寬統計資料。此外,如果執行緒具有過時、非作用配置上的連線,則不會在這些執行緒中執行服務品質限定。因為頻寬管理程式執行緒僅計算作用中配置的頻寬統計資料。可能的情況是,動態地重新配置伺服器之後,服務品質限制不會限制用戶端長時間地不關閉其套接字,並保持使用中狀態,這樣伺服器不會使其逾時。
- 與計算虛擬伺服器類別以及全域伺服器實例的並行連線相比較,虛擬伺服器透過不同顆粒性來計算並行連線。剖析請求並將其路由至虛擬伺服器之後,會立即自動增加個別虛擬伺服器的連線計數器。在針對該請求的回應處理完成時,也會自動減少連線計數器。這說明虛擬伺服器連線統計資料在任何時刻都是精確的。
關於 SNMP簡單網路管理協定 (SNMP) 是用於在網路之間交換管理和監視資訊的協定。透過 SNMP,資料在管理裝置與網路管理站 (NMS) 之間傳輸。管理裝置是指執行 SNMP 的所有裝置:主機、路由器、您的 HTTP 伺服器以及您網路上的其他伺服器。
本章節討論下列主題:
網路管理站 (NMS)
網路管理站 (NMS) 是指用於遠端管理特定網路的機器。通常,NMS 軟體會提供圖形來顯示收集到的資料,或使用此資料確定伺服器在特定的容許度下作業。
NMS 通常為安裝了一個或多個網路管理應用程式的功能強大的工作站。諸如 HP OpenView 的網路管理應用程式以圖形的方式顯示有關管理裝置 (如您的 HTTP 伺服器) 的資訊。例如,它可以顯示您企業中工作和停用的伺服器,以及收到的錯誤訊息數目與類型。將 SNMP 與 Sun ONE Application Server 配合使用時,會通過使用下列兩類代理程式使該資訊在 NMS 與伺服器之間傳輸:子代理程式與主代理程式。
子代理程式收集有關在各種領域中執行的伺服器實例之資訊,並將此資訊傳送至主代理程式。每個 Sun ONE Application Server 安裝版本中都含有一個主代理程式和一個子代理程式。
主代理程式 在各種子代理程式與 NMS 之間交換資訊。主代理程式隨附 Sun ONE Application Server 一同安裝。
您可以在一台主機上安裝多個子代理程式,但僅能安裝一個主代理程式。例如,如果您在同一台主機上安裝了 Sun ONE Directory Server、Sun ONE Application Server 以及 Sun ONE Messaging Server,則每個伺服器的子代理程式將與同一個主代理程式進行通訊。
NMS 或者從伺服器請求資訊,或者變更伺服器 MIB 中的變數儲存區的值。例如︰
管理資訊庫 (MIB) 物件
Sun ONE Application Server 儲存了有關管理與監視跨網路資訊的變數。主代理程式可存取的變數稱為管理物件。這些物件在稱為管理資訊庫 (MIB) 的樹狀結構中定義。使用 MIB 可存取 HTTP 伺服器的網路配置、狀態以及統計資料。使用 SNMP,您可以經由網路管理站 (NMS) 檢視此資訊。
MIB 樹的頂層顯示出網際網路物件識別碼具有下列子樹:
子樹 private (4) 包含節點 enterprises (1)。Enterprises (1) 節點中的每個子樹被指定給個別的企業,該企業為已註冊其自身特定 MIB 延伸的組織。企業然後便可以在其子樹下建立產品特定子樹。公司建立的 MIB 位於節點 enterprises (1) 之下。
每個 Sun ONE Application Server 子代理程式都會提供一個 MIB 以用於 SNMP 通訊。伺服器通過發送訊息或包含這些變數的陷阱 ,將重要的事件報告給 NMS。NMS 可以查詢伺服器的 MIB 以取得資料。
每個 Sun ONE Application Server 都具有其自身的 MIB,位於:install_dir/lib
Sun ONE Application Server 的 MIB 是一個名為 appserv.mib 的檔案。該 MIB 包含有關 Sun ONE Application Server 網路管理之各種變數的定義。
Sun ONE Application Server MIB 具有物件識別碼
appserver 1 (as appserver7 OBJECT IDENTIFIER ::= {appserver 1 }) ,該識別碼位於目錄 install_dir/lib 中。
您可以察看關於 Sun ONE Application Server 的管理資訊,並使用 Sun ONE Application Server MIB 即時監視伺服器。下表列示並描述儲存於 appserv.mib 檔案中的管理物件。
SNMP 訊息
GET 與 SET 是由 SNMP 定義的兩類訊息。
在 MIB 內,每個物件都被指定一個唯一的識別碼。SNMP 管理程式通過發佈可指定物件唯一識別碼的 GET 與 GETNEXT 指令來存取物件。代理程式取得指定物件的值,並將其傳輸至 SNMP 管理程式。加入至日誌的事件如果滿足陷阱過濾條件,便可以產生 SNMP 陷阱。沒有產生陷阱的事件僅作為一個項目被記錄在維護日誌表格中,由 SNMP 管理程式透過一般的 GET 與 GETNEXT 指令進行存取。
GET 與 SET 訊息由網路管理站 (NMS) 發送至主代理程式。您可以經由管理介面同時使用兩個,或使用其中的一個。
SNMP 以協定資料單元 (PDU) 的形式交換網路資訊。這些單元包含有關儲存於管理裝置上的變數之資訊,如 HTTP 伺服器。這些變數,也稱為管理物件,具有值和標題,必要時,可以將這些值和標題報告給 NMS。由伺服器發送至 NMS 的協定資料單元被稱為陷阱。在下列章節中將進一步解釋 GET、SET 指令的使用,以及陷阱訊息。
SNMP 陷阱目標
SNMP 陷阱為 SNMP 代理程式發送至網路管理站 (NMS) 的訊息。例如,當介面的狀況由工作中變更為停用,則 SNMP 代理程式會發送一個陷阱。SNMP 代理程式必須瞭解 NMS 的位址,以便發送陷阱。
您可以經由 Sun ONE Application Server 管理介面為 SNMP 主代理程式配置此陷阱目標。也可以檢視、編輯、移除已經配置的陷阱目標。使用管理介面配置陷阱目標實際上也就是在編輯 CONFIG 檔案。
發生了重要事件之後,伺服器子代理程式便會發送一則訊息或一個陷阱至 NMS。例如︰
請參閱安裝 SNMP 主代理程式,以取得有關設定 SNMP 陷阱連接埠的說明。
SNMP 代理程式團體
SNMP 代理程式團體由團體字串和指定給指定團體的作業構成。團體字串為用於網路管理站 (NMS) 名稱的文字字串,SNMP 代理程式使用它來進行授權。這表示 NMS 將訊息發送至代理程式的同時,會隨附發送一個團體字串。
指定的作業為 get 和/或 set。SNMP 代理程式然後便可以確認 NMS 是否取得授權來執行 get、set,或同時執行 get 與 set 作業,以進行資料交換。當團體字串在 SNMP 封包中發送時,不會隱藏;字串以 ASCII 文字的形式發送。
您可以經由管理介面配置、管理團體字串和每個指定團體允許的作業。請參閱安裝 SNMP 主代理程式,以取得有關設定 SNMP 代理程式團體的說明。
設定 SNMP通常,若要使用 SNMP,系統上必須安裝並執行一個主代理程式和至少一個子代理程式。必須先安裝主代理程式,然後才能啟用子代理程式。請參閱安裝 SNMP 主代理程式。
由於系統不同,因此,設定 SNMP 的程序也不盡相同。針對各種情形,下表提供要遵循的程序之概論。稍後在本章節中將詳細地描述實際程序。
開始之前,應該確認兩個事項:
請參閱您的系統說明文件,以取得有關如何確認此資訊的資訊。
本章節論述以下主題:
使用 SNMP 代理程式 (UNIX/Linux)
已經開始執行本端代理程式之後,需要使用 SNMP 代理程式,應該繼續將其與 Sun ONE Application Server 主代理程式配合使用。在啟動之前,一定要停止本端主代理程式。 (請參閱您的系統說明文件,以取得詳細資訊。)
本章節包括下列主題:
安裝 SNMP 代理程式
如果您的系統已經在執行 SNMP 代理程式,並且您要繼續使用本端 SNMP 常駐程式,請遵循這些章節中的步驟:
- 安裝 SNMP 主代理程式。請參閱安裝 SNMP 主代理程式。
- 安裝並啟動 SNMP 代理程式,然後重新啟動本端 SNMP 常駐程式。請參閱使用 SNMP 代理程式 (UNIX/Linux)。
- 啟動 SNMP 主代理程式。請參閱啟用與啟動 SNMP 主代理程式。
- 啟用子代理程式。請參閱啟用子代理程式。
若要安裝 SNMP 代理程式,請編輯 CONFIG 檔案 (其位於伺服器根目錄下的 install_dir/lib/snmp/sagt 中,您可以使用其他名稱命名該檔案),以便使其包含 SNMP 常駐程式的偵聽連接埠。代理程式也需要包含 MIB 樹和 SNMP 代理程式要轉寄的陷阱。
以下是 CONFIG 檔案的範例:
AGENT AT PORT 1161 WITH COMMUNITY public
SUBTREES 1.3.6.1.2.1.1,
1.3.6.1.2.1.2,
1.3.6.1.2.1.3,
1.3.6.1.2.1.4,
1.3.6.1.2.1.5,
1.3.6.1.2.1.6,
1.3.6.1.2.1.7,
1.3.6.1.2.1.8
FORWARD ALL TRAPS;
啟動 SNMP 代理程式
若要啟動 SNMP 代理程式,請在指令提示下輸入下列內容:
重新啟動本端 SNMP 常駐程式
啟動 SNMP 代理程式之後,請於您在 CONFIG 檔案中指定的連接埠處,重新啟動本端 SNMP 常駐程式。
若要重新啟動本端 SNMP 常駐程式,請在指令提示下輸入下列內容:
其中, port_number 為在 CONFIG 檔案中指定的連接埠號。例如,在 Solaris 平台,使用過去提及的 CONFIG 檔案範例中的連接埠,您應該輸入:
安裝 SNMP 主代理程式
安裝 SNMP 主代理程式的步驟:
- 以 root 身份登入。
- 檢查連接埠 161 上是否正在執行 SNMP 常駐程式 (snmpd)。
如果尚未執行任何 SNMP 常駐程式,請移往步驟 4。
如果已經執行 SNMP 常駐程式,請確定您瞭解如何重新啟動該常駐程式,並瞭解其所支援的 MIB 樹。
- 如果 SNMP 常駐程式正在執行,請終止其程序。
- 在管理介面中,從左窗格內選取 [Admin Server] 節點。
- 選取 [Monitoring] 標籤,以顯示 [SNMP Agent Trap] 頁面,如下圖所示:
圖 6-2 [SNMP Agent Trap] 頁面
此頁面顯示管理程式項目資訊。
- 鍵入執行網路管理軟體的系統名稱。
- 鍵入網路管理系統偵聽陷阱的連接埠號。 (眾所周知的連接埠為 162。)如需有關陷阱的更多資訊,請參閱 SNMP 陷阱目標。
- 鍵入您要在陷阱中使用的團體字串。如需有關團體字串的更多資訊,請參閱 SNMP 代理程式團體。
- 按一下 [OK]。
- 按一下 [Monitoring] 標籤中的 [SNMP Agent Community] 連結。
如下圖所示,螢幕上顯示出團體字串資訊。
圖 6-3 [SNMP Agent Community] 頁面
啟用與啟動 SNMP 主代理程式主代理程式作業是在名為 CONFIG 的代理程式配置檔案中定義的,您可以手動對該檔案進行編輯。您必須先安裝 SNMP 主代理程式,然後才能啟用 SNMP 子代理程式。
註
在重新啟動主代理程式的時候,如果您收到一個類似於 System Error:Could not bind to port 的連結錯誤,請使用 ps -ef | grep snmp 檢查是否正在執行 magt。如果正在執行,請使用指令 kill -9 pid 結束程序。SNMP 的 CGI 將再次開始工作。
本章節包括下列主題:
在其他連接埠上啟動主代理程式
管理介面僅在連接埠 161 上啟動 SNMP 主代理程式。但是,您可以使用下列步驟,在其他連接埠上手動啟動主代理程式:
然後會在所需的連接埠上啟動主代理程式。但是,管理介面能夠偵測主代理程式是否正在執行。
手動配置 SNMP 主代理程式
手動配置 SNMP 主代理程式的步驟:
- 以 root 身份登入。
- 檢查連接埠 161 上是否正在執行 SNMP 常駐程式 (snmpd)。
如果已經執行 SNMP 常駐程式,請確定您瞭解如何重新啟動該常駐程式,並瞭解其所支援的 MIB 樹。然後終止其程序。
- 編輯 CONFIG 檔案,其位於伺服器根目錄下的 lib/snmp/magt 中。
- (可選) 依照定義變數 sysContact 與 sysLocation 中的描述,在 CONFIG 檔案內定義變數sysContact 與 sysLocation。
編輯主代理程式 CONFIG 檔案
CONFIG 檔案定義將與主代理程式配合使用的團體和管理程式。管理程式的值應為有效的系統名稱或 IP 位址。
以下是基本 CONFIG 檔案的範例:
COMMUNITY public
ALLOW ALL OPERATIONS
MANAGER manager_station_name
SEND ALL TRAPS TO PORT 162
WITH COMMUNITY public
定義變數 sysContact 與 sysLocation
您可以編輯 CONFIG 檔案來為 sysContact 與 sysLocation 加入初始值,這些值用於指定 sysContact 與 sysLocation MIB-II 變數。在本範例中,sysContact 與 sysLocation 的字串均用引號括住。任何含有空格、行中斷、標籤等等的字串均必須用引號括住。您也可以使用十六進制表示法指定值。
以下為定義變數 sysContact 與 sysLocation 的 CONFIG 檔案的範例。
配置 SNMP 子代理程式
若要配置 SNMP 子代理程式,請執行下列步驟︰
圖 6-4 [SNMP Subagent Configuration] 頁面
啟動 SNMP 主代理程式
安裝了 SNMP 主代理程式之後,便可以手動啟動它,或透過使用管理介面中的管理伺服器來啟動它。
手動啟動 SNMP 主代理程式
若要手動啟動主代理程式,請在指令提示下輸入下列內容:
INIT 檔案是一個非揮發性檔案,其包含 MIB-II 系統群組的資訊,包括系統位置和聯絡資訊。如果 INIT 檔案不存在,則在首次啟動主代理程式的時候會建立該檔案。
若要在非標準的連接埠上啟動主代理程式,請使用下列兩種方法之一:
方法 1:在 CONFIG 檔案中,為每個介面指定一個傳輸對映,在此對映上,主代理程式經由管理程式偵聽 SNMP 請求。傳輸對映允許主代理程式接受在標準連接埠與非標準連接埠處的連線。主代理程式也可以接受非標準連接埠的 SNMP 流量。目標系統對開放式套接字數目或每個程序中描述元數目的限定會限定 SNMP 的最大並行數目。以下為傳輸對映項目的範例:
TRANSPORT extraordinary SNMP
OVER UDP SOCKET
AT PORT 11161手動編輯 CONFIG 檔案之後,您應該在指令提示下鍵入以下內容來手動啟動主代理程式:
方法 2:編輯 /etc/services 檔案,以允許主代理程式接受在標準連接埠和非標準連接埠處的連線。
使用管理伺服器啟動 SNMP 主代理程式
若要使用管理伺服器啟動 SNMP 主代理程式,請執行下列步驟:
圖 6-5 [SNMP Agent Control] 頁面
啟用子代理程式
安裝了隨附管理伺服器的主代理程式之後,如果要嘗試啟動該主代理程式,您必須首先啟用伺服器實例的子代理程式。如需有關安裝主代理程式的資訊,請參閱安裝 SNMP 主代理程式。
您可以使用子代理程式停止 UNIX/Linux 平台上的 SNMP 功能。您必須首先停止子代理程式,然後才能停止主代理程式。如果首先停止了主代理程式,便可能無法停止子代理程式。發生此情況後,請重新啟動主代理程式,然後停止子代理程式,接著停止主代理程式。
啟用 SNMP 子代理程式的步驟:
圖 6-6 [SNMP Subagent Control] 頁面
經由此頁面,您可以啟動、停止或重新啟動 SNMP 子代理程式。控制按鈕上方會顯示子代理程式的狀況。
在 Windows 平台上,Windows SNMP 服務用於監視 Sun ONE Application Server;可以經由 [控制台]/[系統管理工具]/[服務] 選項來控制該服務。