Sun ONE logo      上一個      目錄      索引      下一個     

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 檔案的元素、子元素以及屬性。


使用 SNMP 僅可以取得 HTTP 伺服器統計資料。所有 Sun ONE Application Server 子系統的統計資料 (包括 HTTP 伺服器),均可以使用指令行介面取得。


如需關於使用 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 指令,您可以經由使用 listget 指令,經由指令行介面 (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 為一種有效的可監視物件類型,並且為單一型。若要命名表示實例 server1http-server 的單一型子節點,則稱為:

另一個範例,application 為有效的可監視物件類型,但並非單一型。若要命名表示應用程式 Petstore 的非單一型子節點,名稱為:

CLI 名稱也可以命名可監視物件中的特定屬性。例如,http-server 具有名為 summary 的可監視屬性。以下名稱可以命名 summary 屬性:

對於監視物件中的屬性名稱,沒有固定的命名慣例。

您無需瞭解 CLI 使用的有效名稱。list 指令可讓您檢查可用的可監視物件,而與萬用字元參數配合使用的 get 指令可讓您檢查任何可監視物件上的所有可用屬性。

下面的範例闡明一些用戶端名稱對映方案:

Petstore 範例

一個使用者想要檢查呼叫 Petstore 應用程式中方法的次數,該應用程式部署在名為 server1 的 Sun ONE Application Server 實例上。配合使用 listget 指令來存取所需的方法統計資料。

  1. 以多種模式呼叫 CLI。
  2. 設定一些有用的環境變數,以避免為每個指令輸入這些變數:
  3. asadmin>export AS_ADMIN_USER=admin AS_ADMIN_PASSWORD=admin123

    asadmin>export AS_ADMIN_HOST=localhost AS_ADMIN_PORT=4848

  4. 列示實例 server1 的可監視元件:
  5. asadmin> list --monitor server1

    輸出的內容為:
    iiop-service
    transaction-service
    application.CometEJB
    application.ConverterApp
    application.petstore
    http-server
    resources

    可監視元件的清單包括 iiop-servicehttp-servertransaction-serviceresources 以及所有已部署 (或已啟用) 的應用程式。

  6. 列示 Petstore 應用程式中的可監視子元件 (可以使用 -m 代替 --monitor):
  7. 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

  8. 列示 Petstore 應用程式之 EJB 模組 sigon-ejb_jar 中的可監視子元件:
  9. asadmin>list -m server1.application.petstore.ejb-module.signon-ejb_jar

    輸出的內容為:
    entity-bean.UserEJB
    stateless-session-bean.SignOnEJB

  10. 列示 Petstore 應用程式之 EJB 模組 sigon-ejb_jar 的實體 Bean UserEJB 中的可監視子元件:
  11. 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

  12. 列示 Petstore 應用程式之 EJB 模組 sigon-ejb_jar 的實體 Bean UserEJB 中方法 getUserName3 內的可監視子元件:
  13. 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

  14. 沒有方法的可監視子元件。請取得方法 getUserName3 的全部可監視統計資料。
  15. 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

  16. 您也可以取得特定的統計資料,如執行時間。
  17. asadmin>get -m server1.application.petstore.ejb-module. signon-ejb_jar.entity-bean.UserEJB.bean-method.getUserName3.execution-time-millis
    execution-time-millis = 1

可監視物件類型

用於監視的物件樹包含數個節點。節點是物件樹中的特定項目,可以透過其類型、名稱以及父節點來唯一地識別。某些節點的類型為單一型,表示父節點下僅能有一個此類型的節點。對於單一型節點,名稱是非相關的。

非單一型節點需要具有名稱。實例名稱欄對可能的名稱空間進行描述。

下表依照各種節點類型與某些節點類型名稱空間之間可能的父子關係,對樹狀結構進行描述。

表格 6-1 監視物件類型 

節點類型

單一型嗎?

葉節點嗎?

子節點類型

實例名稱

root

http-server iiop-service
resources
transaction-service application standalone-ejb-module

 

http-server

virtual-server
process

 

virtual-server

 

 

process

 

 

iiop-service

orb

 

orb

orb-connection orb-thread-pool

system 是系統 ORB 的保留名稱。所有的使用者 ORB 均會取得一個源自 TCP 端點的名稱。

orb-connection

 

 

orb-thread-pool

 

 

resources

jdbc-connection-pool

 

jdbc-connection-pool

 

其名稱與建立連線區期間使用者指定的名稱相同。

transaction-service

 

 

application

ejb-module

server.xml 中註冊的應用程式名稱。

ejb-module

stateless-session-bean stateful-session-bean entity-bean message-driven-bean

EJB 模組的名稱。其源自 EJB JAR 名稱。

standalone-ejb-module

stateless-session-bean stateful-session-bean entity-bean message-driven-bean

server.xml 中註冊的獨立 EJB 模組的名稱。

stateless-session-bean

bean-pool
bean-method

來自於部署描述元的 Bean 名稱。

stateful-session-bean

bean-cache
bean-method

來自於部署描述元的 Bean 名稱。

entity-bean

bean-cache
bean-pool
bean-method

來自於部署描述元的 Bean 名稱。

message-driven-bean

bean-pool
bean-method

來自於部署描述元的 Bean 名稱。

bean-pool

 

 

bean-cache

 

 

bean-method

 

onMessage 用於訊息導引 Bean,帶有數字字尾的方法名稱用於其他企業 Bean 中的方法。(需要使用字尾來明確超載方法的意義。)

可監視屬性名稱

並非每個可監視物件都需要展示可監視屬性。某些物件僅用於對其他物件進行分組。對於 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

整數

逾時的連線請求總數。

表格 6-8 transaction-service 

屬性名稱

資料類型

描述

total-tx-completed

整數

已完成的作業事件總數。

total-tx-rolled-back

整數

已回轉的作業事件總數。

total-tx-inflight

整數

執行中 (活性) 的作業事件總數

isFrozen

字串

已凍結了作業事件系統嗎 (True 或 False)?

inflight-tx

字串 (已格式化)

執行中的作業事件清單。

表格 6-9 bean-pool 

屬性名稱

資料類型

描述

max-pool-size

整數

儲存區內 Bean 實例的最大數目。 

steady-pool-size

整數

儲存區內正常維護的 Bean 實例數目。首次建立儲存區後,將實例總裝於儲存區內,使該儲存區的大小等同於 -steadypool-size。從儲存區中移除實例時,需要隨後向該儲存區內補充實例,以使其大小等於或大於 steady-pool-size

pool-resize-quantity

整數

儲存區增加到 max-pool-size 的增量或收縮到 steady-pool-size  的減少量

idle-timeout-in-seconds

整數

定義執行儲存區內清除執行緒的速率。檢查儲存區目前的大小是否大於固定的儲存區大小,並移除 pool-resize-quantity 元素。如果目前的儲存區大小小於 steady-pool-size,該儲存區便會增加 pool-resize-quantity,增量的上限為 min (current-pool-size+pool + resize-quantity, max-pool-size)。僅有存取時間小於 pool-idle-timeout-in-seconds 的物件才是候選的移除物件 

num-beans-in-pool

整數

儲存區內可用 Bean 的數目。 

num-threads-waiting

整數

等待自由 Bean 的執行緒數。

total-beans-created

整數

目前已建立的 Bean 的數目。 

total-beans-destroyed

整數

目前已銷毀的 Bean 的數目。

jms-max-messages-load

整數

針對要服務的訊息導引 Bean 而一次載入 JMS 階段作業的最大訊息數。預設值為 1。僅套用於訊息導引 Bean 的儲存區。

表格 6-10 bean-cache 

屬性名稱

資料類型

描述

cache-resize-quantity (resize-quantity)

整數

快取記憶體中 Bean 的數目等於 max-cache-size (即發生了快取記憶體溢位) 時,快取記憶體的減少量。

cache-misses

整數

使用者請求沒有找到快取記憶體中 Bean 的次數。

idle-timeout-in-seconds

整數

排程快取記憶體清除程式執行緒的速率。該清除程式執行緒會檢查快取記憶體中的全部 Bean,並鈍化存取時間不足 cache-idle-timeout-in-seconds 的 Bean。

cache-hits

整數

使用者請求找到快取記憶體中某個項目的次數。

total-beans-in-cache

整數

快取記憶體中 Bean 的數目。這便是快取記憶體目前的大小。

max-beans-in-cache

整數

快取記憶體中最多可持有的 Bean 數目,超過此數目,便會發生快取記憶體溢位。

num-passivations

整數

鈍化的數目。僅套用於有狀態階段作業 Bean。

num-passivation-errors

整數

鈍化期間發生的錯誤數。僅套用於有狀態階段作業 Bean。

num-expired-sessions-removed

整數

清除執行緒所移除的過期階段作業數目。僅套用於有狀態階段作業 Bean。

num-passivation-success

整數

鈍化成功完成的次數。僅套用於有狀態階段作業 Bean。

表格 6-11 bean-method 

屬性名稱

資料類型

描述

method-name

字串

完整的方法名稱。

total-num-calls

整數

方法已經被呼叫的次數。如果為 EJB 容器啟用了監視,便會為有狀態階段作業 Bean、無狀態階段作業 Bean 以及實體 Bean 收集該呼叫次數;如果為訊息導引 Bean 容器啟用了監視,則會為訊息導引 Bean 收集該呼叫次數。

total-num-errors

整數

執行方法導致異常的次數。如果在 EJB 設定下啟用了監視,便會為有狀態階段作業 Bean、無狀態階段作業 Bean 以及實體 Bean 收集該次數;如果在 MDB 設定下啟用了監視,則會為訊息導引 bean 收集該次數。

total-num-success

整數

方法成功執行的次數。如果為 EJB 容器啟用了監視,便會為有狀態階段作業 Bean、無狀態階段作業 Bean 以及實體 Bean 收集該呼叫次數;如果為容器啟用了監視,則會為訊息導引 Bean 收集該呼叫次數。

execution-time-millis

長型

上次成功執行此方法的執行時間。如果在 EJB 容器上啟用了監視,便會為有狀態階段作業 Bean、無狀態階段作業 Bean 以及實體 Bean 收集該執行時間;如果在容器上啟用了監視,則會為訊息導引 Bean 收集該執行時間。

HTTP 伺服器的可監視物件

HTTP 伺服器的可監視屬性名稱 summary 會列印 Server 元素的屬性值,及其子元素的摘要,包括每個子元素的數目,以及每個子元素的屬性值。HTTP 伺服器的 virtual-server 屬性會列印 VirtualServer 元素的屬性值及其每個子元素的詳細資訊。process 屬性會列印 Process 元素的屬性值及每個子元素的詳細資訊。

若要啟用 NSAPI 效能設定檔,並取得有關 ProfileProfileBucket 元素的統計資料,請參閱「Sun ONE Application Server Developer's Guide to NSAPI」

如需有關如何使用效能微調的監視統計資料之資訊,請參閱「Sun ONE Application Server Performance and Tuning Guide」

可監視的 HTTP 伺服器元素

下表列示可監視的 HTTP 伺服器元素。

表格 6-12 可監視的 HTTP 伺服器元素 

元素名稱

子元素

描述

Server

ConnectionQueue
ThreadPool
Profile
Process
VirtualServer

一個伺服器實例。

ConnectionQueue

請求在被服務之前所處的佇列。Sun ONE Application Server 7 中僅有一個連線佇列。

ThreadPool

init.conf 檔案中定義的執行緒儲存區。

Profile

init.conf 檔案中定義的 NSAPI 效能設定檔儲存區。

Process

ConnectionQueueBucketThreadPoolBucket
DnsBucket
DnsBucket
KeepaliveBucket
CacheBucket
Thread

伺服器實例內的單一伺服器程序。

ConnectionQueueBucket

追蹤有關特定 ConnectionQueue 的統計資料。

ThreadPoolBucket

ThreadPoolBucket

追蹤有關特定 ThreadPool 的統計資料。

DnsBucket

追蹤 DNS 統計資料。

KeepaliveBucket

追蹤 keepalive (持續性連線) 統計資料。

CacheBucket

追蹤檔案快取記憶體 (NSFC) 統計資料。

Thread

RequestBucket ProfileBucket

描述處理執行緒的請求。

VirtualServer

RequestBucket
ProfileBucket

描述虛擬伺服器。

RequestBucket

追蹤與請求相關的統計資料。

ProfileBucket

 

追蹤有關 Profile 元素的統計資料。

可監視的 HTTP 伺服器屬性

下表列示可監視的 HTTP 伺服器屬性。

表格 6-13 伺服器 

屬性名稱

描述

Id

 

伺服器實例 ID (例如,server1)。

VersionServer

 

包含 Sun ONE Application Server 版本的字串。

TimeStarted

GMT

此伺服器實例啟動的時間。

SecondsRunning

 

該伺服器實例啟動後的秒數。

TicksPerSecond

 

一秒內的滴答次數。該值的大小取決於系統。

MaxProcs

 

程序的最大數目。

MaxThreads

 

處理執行緒的最大數目。

MaxVirtualServers

 

追蹤的虛擬伺服器的最大數目。

FlagProfilingEnabled

0 (關閉),1 (開啟)

指出 NSAPI 效能設定檔是否被啟用 (開啟)。

FlagVirtualServerOverflow

0 (否),1 (是)

指出是否配置了多於 MaxVirtualServers 的虛擬伺服器 (是)。如果將該屬性設定為 1,則不會為所有的虛擬伺服器追蹤統計資料。

LoadMinuteAverage

 

1 分鐘負載平均值。

Load5MinuteAverage

 

5 分鐘負載平均值。

Load15MinuteAverage

 

15 分鐘負載平均值。

RateBytesTransmitted

每秒傳輸的位元組

資料在某一伺服器定義間隔時間內的傳輸速率,如果沒有該資訊,則值為 0。

RateBytesReceived

每秒傳輸的位元組

資料在某一伺服器定義間隔時間內的接收速率,如果沒有該資訊,則值為 0。

表格 6-14 ConnectionQueue 

屬性名稱

描述

Id

 

連線佇列 ID。

表格 6-15 ThreadPool 

屬性名稱

描述

Id

 

執行緒儲存區 ID。

Name

 

執行緒儲存區的符號名稱。

表格 6-16 Profile 

屬性名稱

描述

Id

 

NSAPI 效能設定檔儲存區 ID。

Name

 

NSAPI 效能設定檔儲存區的符號名稱。

描述

 

NSAPI 效能設定檔儲存區的描述。

表格 6-17 Process 

屬性名稱

描述

Pid

 

唯一地識別此程序的作業系統程序識別碼。

Mode

unknown
active

當此程序在作用中時,顯示 active。

TimeStarted

GMT

此程序啟動的時間。

CountConfigurations

 

載入某一配置的次數,如果該資訊不存在,則值為 0。

SizeVirtual

千位元組

此程序使用的虛擬記憶體大小。

SizeResident

千位元組

此程序使用的常駐記憶體大小。

FractionSystemMemoryUsage

 

此程序使用的系統記憶體部分。

表格 6-18 ConnectionQueueBucket 

屬性名稱

描述

ConnectionQueue

 

ConnectionQueue 元素的 ID。

CountTotalConnection

 

已接受的新連線總數。

CountQueued

 

目前排列的連線數。

PeakQueued

 

同時位於佇列的最大連線數。

MaxQueued

 

可以位於佇列的最大連線數。

CountOverflow

 

佇列已滿而無法容納更多連線的的次數。

CountTotalQueued

 

已經排列的連線總數。可以多次排列一個給定的連線。因此,CountTotalQueued 可能大於或等於 CountTotalConnections

TicksTotalQueued

 

連線在佇列中所使用的滴答總數。滴答是取決於系統的時間單位,請參閱 TicksPerSecond。

表格 6-19 ThreadPoolBucket 

屬性名稱

描述

Thread-pool

 

ThreadPool 元素的 ID。

CountThreadsIdle

 

處理目前閒置執行緒的請求數。

CountThreads

 

處理執行緒的請求數。

MaxThreads

 

處理可並存執行緒的最大請求數。

CountQueued

 

透過此執行緒儲存區進行處理的佇列請求數。

PeakQueued

 

同時位於佇列的最大請求數。

MaxQueued

 

可以位於佇列的最大請求數。

表格 6-20 DnsBucket 

屬性名稱

描述

FlagCacheEnabled

0 (關閉),1 (開啟)

指出 DNS 快取記憶體是否被啟用 (開啟)。

CountCacheEntries

 

目前在快取記憶體中的 DNS 項目數。

MaxCacheEntries

 

快取記憶體可以容納的最大 DNS 項目數。

CountCacheHits

 

DNS 快取記憶體查找成功的次數。

CountCacheMisses

 

DNS 快取記憶體查找失敗的次數。

FlagAsyncEnabled

0 (關閉),1 (開啟)

指出非同步 DNS 查找是否已啟用 (開啟)。

CountAsyncNameLookups

 

已執行之非同步 DNS 名稱查找的總數。

CountAsyncAddrLookups

 

已執行之非同步 DNS 位址查找的總數。

CountAsyncLookupsInProgress

 

正在執行之非同步 DNS 查找的總數。

表格 6-21 KeepaliveBucket 

屬性名稱

描述

CountConnections

 

目前處於 keepalive 模式下的連線數。

MaxConnections

 

同步 keepalive 連線的最大數目。

CountHits

 

Keepalive 模式中的連線隨後作出有效請求的總次數。

CountFlushes

 

伺服器關閉 keepalive 連線的次數。

CountTimeouts

 

Keepalive 連線逾時的次數。

SecondsTimeouts

 

伺服器關閉閒置 keepalive 連線之前的秒數。

CountRefusals

 

伺服器拒絕 keepalive 連線的次數。

表格 6-22 CacheBucket 

屬性名稱

描述

FlagEnabled

0 (關閉),1 (開啟)

指出檔案快取記憶體是否已啟用 (開啟)。

SecondsMaxAge

秒數

檔案快取記憶體項目的最長存在時間。

CountEntries

 

目前位於檔案快取記憶體中的項目數。

MaxEntries

 

檔案快取記憶體可以容納的最大快取記憶體項目數。

CountOpenEntries

 

與開放式檔案相關聯的項目數。

MaxOpenEntries

 

與開放式檔案 (檔案快取記憶體可以同時容納該檔案) 相關聯的最大快取記憶體項目數。

SizeHeapCache

位元組的數目

快取的檔案內容所使用的堆疊數量。

MaxHeapCacheSize

位元組的數目

檔案快取記憶體用於快取檔案內容的最大堆疊數量。

SizeMmapCache

位元組的數目

記憶體對映檔內容所使用的位址空間總量。

MaxMmapCacheSize

位元組的數目

檔案快取記憶體用於記憶體對映檔內容的最大位址空間量。

CountHits

 

快取記憶體項目查找成功的次數。

CountMisses

 

快取記憶體項目查找失敗的次數。

CountInfoHits

 

檔案資訊查找成功的次數。

CountInfoMisses

 

檔案資訊查找失敗的次數。

CountContentHits

 

內容查找成功的次數。

CountContentMisses

 

內容查找失敗的次數。

表格 6-23 Thread 

屬性名稱

描述

Mode

unknown、idle、DNS、request、processing、response、updating

執行緒的上一個已知狀況。

TimeStarted

GMT

此執行緒啟動的時間。

ConnectionQueue

 

執行緒正在服務的 ConnectionQueue 之 ID。

表格 6-24 VirtualServer 

屬性名稱

描述

Id

 

虛擬伺服器 ID。

Mode

unknownactive

當此虛擬伺服器在作用中時,顯示 active

Hosts

 

由此虛擬伺服器提供服務的軟體虛擬伺服器主機名稱 (例如,www.foo.com foo.com foo.isp.com)。

Interfaces

 

需要配置虛擬伺服器的介面 (偵聽程式) (例如,192.168.1.2:80 192.168.1.2:443)。

表格 6-25 RequestBucket 

屬性名稱

描述

CountRequests

 

被服務的請求數。

CountBytesReceived

 

收到的位元組數目,如果該資訊不存在,則值為 0。

CountBytesTransmitted

 

已傳輸的位元組數目,如果該資訊不存在,則值為 0。

RateBytesTransmitted

每秒傳輸的位元組

資料在某一伺服器定義間隔時間內的傳輸速率,如果沒有該資訊,則值為 0。

MaxByteTransmissionRate

 

資料在某一伺服器定義間隔時間內的最大傳輸速率,如果沒有該資訊,則值為 0。

CountOpenConnections

 

開放式連線的數目,如果該資訊不存在,則值為 0。

MaxOpenConnections

 

開放式連線的最大數目,如果該資訊不存在,則值為 0。

Count2xx

 

已發送的 200 層級回應的數目。

Count3xx

 

已發送的 300 層級回應的數目。

Count4xx

 

已發送的 400 層級回應的數目。

Count5xx

 

已發送的 500 層級回應的數目。

CountOther

 

已發送的 200、300、400、或 500 層級之外的回應數目。

Count200

 

已發送的 200 層級回應的數目。

Count302

 

已發送的 302 層級回應的數目。

Count304

 

已發送的 304 層級回應的數目。

Count400

 

已發送的 400 層級回應的數目。

Count401

 

已發送的 401 層級回應的數目。

Count403

 

已發送的 403 層級回應的數目。

Count404

 

已發送的 404 層級回應的數目。

Count503

 

已發送的 503 層級回應的數目。

表格 6-26 ProfileBucket 

屬性名稱

描述

Profile

 

Profile 元素的 ID。

Countcalls

 

呼叫 NSAPI SAF 的次數。

CountRequests

 

已處理的請求數。

TicksDispatch

 

用於派送請求的滴答數。滴答是取決於系統的時間單位,請參閱 TicksPerSecond。

TicksFunction

 

用於 NSAPI SAF 的滴答數。滴答是取決於系統的時間單位,請參閱 TicksPerSecond


使用 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 檔案的必要變更中所述。


若要配置服務品質,請採取以下步驟:

  1. 請在左窗格中選取 [App Server Instances] 節點。
  2. 展開伺服器實例節點以顯示 [HTTP Server] 節點。
  3. 按一下 [HTTP Server] 節點以顯示 [QOS] 標籤。
  4. 按一下 [QOS] 標籤。
  5. 以下頁面顯示服務品質的一般設定,設定後面跟隨有一個 [Properties] 按鈕。

圖 6-1 虛擬伺服器實例 [QOS] 標籤

該圖顯示 HTTP 伺服器實例中的服務品質 [QOS] 標籤。

  1. 若要啟用此 HTTP 伺服器的服務品質,請按一下 [QOS Enabled]。
  2. 注意:依預設,服務品質處於停用狀態。啟用服務品質會稍微增加伺服器的耗用時間。

  3. 指定 [QOS Metrics Interval]。
  4. 公制間隔時間為在伺服器流量計算期間,以秒表示的資料取樣時間。其預設值為 30 秒。

    如果站點一般要傳輸大量檔案,請在此欄位中使用較大的值 (數分鐘或更長)。較大的檔案傳輸可能會在較短的公制間隔時間內佔用所有可用的頻寬,如果您已經執行了最大的頻寬設定,還可能導致連線被拒絕。由於頻寬通過除以公制間隔時間來平均分配,所以,較長的間隔時間可以消除由大檔案引起的尖波。

    如果頻寬限定遠小於可用的頻寬 (例如,頻寬限定為 1 MB 每秒,但是到主幹的連線為 1 GB 每秒),則應該縮短公制間隔時間。

    注意:如果您要進行大的靜態檔案傳輸,並且頻寬限定遠小於可用的頻寬,則必須確定要調整的條件,因為這些問題需要相反的解決方案。

  5. 指定 QOS 再計算的時間間隔。
  6. 再計算時間間隔是指每次計算所有伺服器、類別以及虛擬伺服器頻寬之間的毫秒數。預設值為 100 毫秒。

  7. 指定頻寬限定。
  8. 這是伺服器實例以位元組/秒表示的最大頻寬。在某種程度上,其與 QOS 公制間隔時間相互依賴。

  9. 選擇是否執行最大頻寬設定。
  10. 如果您選擇執行最大頻寬,則當伺服器達到其頻寬限定時,便會拒絕附加的連線。

    如果未執行最大頻寬,則當超過最大設定時,伺服器會在事件日誌中記錄一則訊息。

  11. 指定連線限定。
  12. 這是被處理的並行請求數。

  13. 選擇是否執行連線限定設定。
  14. 如果您選擇執行最大連線,則當伺服器達到其連線限定時,便會拒絕附加的連線。如果未執行最大連線,則當超過最大設定時,伺服器會在事件日誌中記錄一則訊息。

  15. (可選)。如果要為服務品質指定附加的名稱值對屬性,請按一下 [Properties] 按鈕。
  16. 如需服務品質特性的可用名稱值對,請參閱線上輔助說明。

  17. 按一下 [Save],以確定對伺服器實例的變更。
  18. 在左窗格中存取 [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」。

服務品質的已知限制

當您使用服務品質功能時,請記住下列限制:


關於 SNMP

簡單網路管理協定 (SNMP) 是用於在網路之間交換管理和監視資訊的協定。透過 SNMP,資料在管理裝置與網路管理站 (NMS) 之間傳輸。管理裝置是指執行 SNMP 的所有裝置:主機、路由器、您的 HTTP 伺服器以及您網路上的其他伺服器。

本章節討論下列主題:

網路管理站 (NMS)

網路管理站 (NMS) 是指用於遠端管理特定網路的機器。通常,NMS 軟體會提供圖形來顯示收集到的資料,或使用此資料確定伺服器在特定的容許度下作業。

NMS 通常為安裝了一個或多個網路管理應用程式的功能強大的工作站。諸如 HP OpenView 的網路管理應用程式以圖形的方式顯示有關管理裝置 (如您的 HTTP 伺服器) 的資訊。例如,它可以顯示您企業中工作和停用的伺服器,以及收到的錯誤訊息數目與類型。將 SNMP 與 Sun ONE Application Server 配合使用時,會通過使用下列兩類代理程式使該資訊在 NMS 與伺服器之間傳輸:子代理程式與主代理程式。

子代理程式收集有關在各種領域中執行的伺服器實例之資訊,並將此資訊傳送至主代理程式。每個 Sun ONE Application Server 安裝版本中都含有一個主代理程式和一個子代理程式。


變更 SNMP 配置之後,您必須按一下 [Apply] 按鈕,然後重新啟動 SNMP 子代理程式。


主代理程式 在各種子代理程式與 NMS 之間交換資訊。主代理程式隨附 Sun ONE Application Server 一同安裝。

您可以在一台主機上安裝多個子代理程式,但僅能安裝一個主代理程式。例如,如果您在同一台主機上安裝了 Sun ONE Directory Server、Sun ONE Application Server 以及 Sun ONE Messaging Server,則每個伺服器的子代理程式將與同一個主代理程式進行通訊。

NMS 或者從伺服器請求資訊,或者變更伺服器 MIB 中的變數儲存區的值。例如︰

  1. NMS 將一則訊息發送至管理伺服器主代理程式。該訊息可能是對資料的請求 (一則 GET 訊息),或者是一條設定 MIB 內變數的指令 (一則 SET 訊息)
  2. 主代理程式將訊息轉寄至適當的子代理程式。
  3. 子代理程式擷取資料或變更 MIB 中的變數。
  4. 子代理程式將資料或狀況報告給主代理程式,然後,主代理程式將訊息轉寄回 (一則 GET 訊息) NMS。
  5. NMS 經由其網路管理應用程式,用文字或圖形顯示資料。

管理資訊庫 (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 檔案中的管理物件。

appserv.mib 管理物件與描述 

管理物件

描述

iwsCpuID

CPU 識別碼。

iwsCpuIdleTime

CPU 閒置時間。

iwsCpuKernelTime

CPU 核心時間。

iwsCpuTable

Sun ONE Application Server CPU。

iwsCpuUserTime

CPU 使用者時間。

iwsInstanceTable

Sun ONE Application Server 實例。

iwsInstanceId

伺服器實例識別碼

iwsInstanceVersion

字串,如 SunONE-ApplicationServer-Enterprise/7 BB1-01/24/2001 17:15 (SunOS DOMESTIC)

iwsInstanceDescription

伺服器實例的描述。

iwsInstanceOrganization

負責伺服器實例的組織。

iwsInstanceContact

伺服器實例負責人的聯絡資訊。

iwsInstanceLocation

伺服器的位置。

iwsInstanceStatus

伺服器實例的狀況。

iwsInstanceUptime

伺服器的執行時間。

iwsInstanceDeathCount

伺服器實例程序停止的次數。

iwsInstanceRequests

伺服器實例處理的請求數。

iwsInstanceInOctets

伺服器實例收到的八位元組數目。如果資訊不可用,會顯示為 0。

iwsInstanceOutOctets

伺服器實例傳輸的八位元組數目。如果資訊不可用,會顯示為 0。

iwsInstanceCount2xx

由伺服器實例發佈的 200 層級 (成功的) 回應的數目。

iwsInstanceCount3xx

由伺服器實例發佈的 300 層級 (重新導向) 回應的數目。

iwsInstanceCount4xx

由伺服器實例發佈的 400 層級 (用戶端錯誤) 回應的數目。

iwsInstanceCount5xx

由伺服器實例發佈的 500 層級 (伺服器錯誤) 回應的數目。

iwsInstanceCountOther

由伺服器實例發佈的其他 (既非 2xx、3xx、4xx,也非 5xx) 回應的數目。

iwsInstanceCount200

由伺服器實例發佈的 200 (確定) 回應的數目。

iwsInstanceCount302

由伺服器實例發佈的 302 (暫時移動) 回應的數目。

iwsInstanceCount304

由伺服器實例發佈的 304 (未修改) 回應的數目。

iwsInstanceCount400

由伺服器實例發佈的 400 (錯誤的請求) 回應的數目。

iwsInstanceCount401

由伺服器實例發佈的 401 (未授權) 回應的數目。

iwsInstanceCount403

由伺服器實例發佈的 403 (禁止的) 回應的數目。

iwsInstanceCount404

由伺服器實例發佈的 404 (未找到) 回應的數目。

iwsInstanceLoad1MinuteAverage

執行伺服器實例的系統之 1 分鐘負載平均值。

iwsInstanceLoad5MinuteAverage

執行伺服器實例的系統之 5 分鐘負載平均值。

iwsInstanceLoad15MinuteAverage

執行伺服器實例的系統之 15 分鐘負載平均值。

iwsInstanceNetworkInOctets

網路上每秒傳輸的八位元組數目。

iwsInstanceNetworkOutOctets

網路上每秒收到的八位元組數目。

iwsVsTable

伺服器虛擬伺服器。

iwsVsId

虛擬伺服器識別碼。

iwsVsRequests

虛擬伺服器處理的請求數。

iwsVsInOctets

虛擬伺服器收到的八位元組數目。

iwsVsOutOctets

虛擬伺服器傳輸的八位元組數目。

iwsVsCount2xx

虛擬伺服器發佈的 200 層級 (成功的) 回應的數目。

iwsVsCount3xx

虛擬伺服器發佈的 300 層級 (重新導向) 回應的數目。

iwsVsCount4xx

虛擬伺服器發佈的 400 層級 (用戶端錯誤) 回應的數目。

iwsVsCount5xx

虛擬伺服器發佈的 500 層級 (伺服器錯誤) 回應的數目。

iwsVsCountOther

虛擬伺服器發佈的其他 (既非 2xx、3xx、4xx,也非 5xx) 回應的數目。

iwsVsCount200

虛擬伺服器發佈的 200 (確定) 回應的數目。

iwsVsCount302

虛擬伺服器發佈的 302 (暫時移動) 回應的數目。

iwsVsCount304

虛擬伺服器發佈的 304 (未修改) 回應的數目。

iwsVsCount400

虛擬伺服器發佈的 400 (錯誤的請求) 回應的數目。

iwsVsCount401

虛擬伺服器發佈的 401 (未授權) 回應的數目。

iwsVsCount403

虛擬伺服器發佈的 403 (禁止的) 回應的數目。

iwsVsCount404

虛擬伺服器發佈的 404 (未找到) 回應的數目。

iwsProcessTable

Sun ONE Application Server 程序。

iwsProcessId

作業系統程序識別碼。

iwsProcessThreadCount

處理執行緒的請求數。

iwsProcessThreadIdle

處理目前閒置執行緒的請求數。

iwsProcessConnectionQueueCount

目前位於連線佇列的連線數。

iwsProcessConnectionQueuePeak

已經同時排列的最大連線數。

iwsProcessConnectionQueueMax

連線佇列所允許的最大連線數。

iwsProcessConnectionQueueTotal

已被接受的連線數。

iwsProcessConnectionQueueOverflows

由於連線佇列溢位而被拒絕的連線數。

iwsProcessKeepaliveCount

目前位於 keepalive 佇列的連線數。

iwsProcessKeepaliveMax

Keepalive 佇列所允許的最大連線數。

iwsProcessSizeVirtual

以千位元組表示的程序大小。

iwsProcessSizeResident

以千位元組表示的常駐程序大小。

iwsProcessFractionSystemMemoryUsage

系統記憶體中的程序記憶體部分。

iwsListenTable

Sun ONE Application Server 偵聽套接字。

iwsListenId

偵聽套接字識別碼。

iwsListenAddress

套接字偵聽的位址。

iwsListenPort

套接字偵聽的連接埠。

iwsListenSecurity

加密支援。

iwsThreadPoolCount

被拒絕的請求數。

iwsThreadPoolMax

佇列所允許的最大請求數。

iwsThreadPoolPeak

已經同時排列的最大請求數。

iwsThreadPoolTable

Sun ONE Application Server 執行緒儲存區。

iwsVsCount503

已發佈的 503 (不可用) 回應的數目。

iwsInstanceCount503

已發佈的 503 (不可用) 回應的數目。

SNMP 訊息

GETSET 是由 SNMP 定義的兩類訊息。

在 MIB 內,每個物件都被指定一個唯一的識別碼。SNMP 管理程式通過發佈可指定物件唯一識別碼的 GETGETNEXT 指令來存取物件。代理程式取得指定物件的值,並將其傳輸至 SNMP 管理程式。加入至日誌的事件如果滿足陷阱過濾條件,便可以產生 SNMP 陷阱。沒有產生陷阱的事件僅作為一個項目被記錄在維護日誌表格中,由 SNMP 管理程式透過一般的 GETGETNEXT 指令進行存取。

GETSET 訊息由網路管理站 (NMS) 發送至主代理程式。您可以經由管理介面同時使用兩個,或使用其中的一個。

SNMP 以協定資料單元 (PDU) 的形式交換網路資訊。這些單元包含有關儲存於管理裝置上的變數之資訊,如 HTTP 伺服器。這些變數,也稱為管理物件,具有值和標題,必要時,可以將這些值和標題報告給 NMS。由伺服器發送至 NMS 的協定資料單元被稱為陷阱。在下列章節中將進一步解釋 GETSET 指令的使用,以及陷阱訊息。

SNMP 陷阱目標

SNMP 陷阱為 SNMP 代理程式發送至網路管理站 (NMS) 的訊息。例如,當介面的狀況由工作中變更為停用,則 SNMP 代理程式會發送一個陷阱。SNMP 代理程式必須瞭解 NMS 的位址,以便發送陷阱。

您可以經由 Sun ONE Application Server 管理介面為 SNMP 主代理程式配置此陷阱目標。也可以檢視、編輯、移除已經配置的陷阱目標。使用管理介面配置陷阱目標實際上也就是在編輯 CONFIG 檔案。

發生了重要事件之後,伺服器子代理程式便會發送一則訊息或一個陷阱至 NMS。例如︰

  1. 子代理程式通知主代理程式伺服器已經停止。
  2. 主代理程式會發送一則訊息或一個陷阱,將事件報告給 NMS。
  3. NMS 經由其網路管理應用程式,用文字或圖形顯示資訊。

請參閱安裝 SNMP 主代理程式,以取得有關設定 SNMP 陷阱連接埠的說明。

SNMP 代理程式團體

SNMP 代理程式團體由團體字串和指定給指定團體的作業構成。團體字串為用於網路管理站 (NMS) 名稱的文字字串,SNMP 代理程式使用它來進行授權。這表示 NMS 將訊息發送至代理程式的同時,會隨附發送一個團體字串。

指定的作業為 get 和/或 set。SNMP 代理程式然後便可以確認 NMS 是否取得授權來執行 getset,或同時執行 getset 作業,以進行資料交換。當團體字串在 SNMP 封包中發送時,不會隱藏;字串以 ASCII 文字的形式發送。

您可以經由管理介面配置、管理團體字串和每個指定團體允許的作業。請參閱安裝 SNMP 主代理程式,以取得有關設定 SNMP 代理程式團體的說明。


設定 SNMP

通常,若要使用 SNMP,系統上必須安裝並執行一個主代理程式和至少一個子代理程式。必須先安裝主代理程式,然後才能啟用子代理程式。請參閱安裝 SNMP 主代理程式

由於系統不同,因此,設定 SNMP 的程序也不盡相同。針對各種情形,下表提供要遵循的程序之概論。稍後在本章節中將詳細地描述實際程序。

如果您的伺服器符合這些條件...

...請遵循這些程序。 (在後面的章節中詳細地討論)。

目前尚未執行任何本端代理程式

1. 啟動主代理程式。

2. 為系統上安裝的每個伺服器啟用子代理程式。

  • 目前正在執行本端代理程式
  • 無 SMUX
  • 無需繼續使用本端代理程式

1. 當您為管理伺服器安裝了主代理程式之後,請停止本端代理程式。

2. 啟動主代理程式。

3. 為每個伺服器實例配置 SNMP 子代理程式。

  • 目前正在執行本端代理程式
  • 無 SMUX
  • 需要繼續使用本端代理程式

1. 安裝 SNMP 代理程式。

2. 啟動 SNMP 代理程式。

3. 使用主代理程式連接埠號之外的連接埠號,重新啟動本端代理程式。

4. 啟動主代理程式。

5. 為系統上安裝的每個伺服器啟用子代理程式。

開始之前,應該確認兩個事項:

請參閱您的系統說明文件,以取得有關如何確認此資訊的資訊。


變更管理伺服器中的 SNMP 設定,安裝新伺服器或刪除現有的伺服器之後,您必須執行下列步驟:

  • (Windows 2000) 重新啟動 Windows SNMP 服務或重新開機。
  • (UNIX) 使用管理伺服器重新啟動 SNMP 主代理程式與 SNMP 子代理程式。

本章節論述以下主題:

使用 SNMP 代理程式 (UNIX/Linux)

已經開始執行本端代理程式之後,需要使用 SNMP 代理程式,應該繼續將其與 Sun ONE Application Server 主代理程式配合使用。在啟動之前,一定要停止本端主代理程式。 (請參閱您的系統說明文件,以取得詳細資訊。)


若要使用代理程式,您需要安裝該代理程式,然後啟動它。您也必須使用執行 Sun ONE Application Server 主代理程式的連接埠之外的連接埠,重新啟動原生 SNMP 主代理程式。


本章節包括下列主題:

安裝 SNMP 代理程式

如果您的系統已經在執行 SNMP 代理程式,並且您要繼續使用本端 SNMP 常駐程式,請遵循這些章節中的步驟:

  1. 安裝 SNMP 主代理程式。請參閱安裝 SNMP 主代理程式
  2. 安裝並啟動 SNMP 代理程式,然後重新啟動本端 SNMP 常駐程式。請參閱使用 SNMP 代理程式 (UNIX/Linux)
  3. 啟動 SNMP 主代理程式。請參閱啟用與啟動 SNMP 主代理程式
  4. 啟用子代理程式。請參閱啟用子代理程式

若要安裝 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 主代理程式


除非伺服器正在作為 root 執行,否則否則您無法使用管理介面安裝與啟動 SNMP 主代理程式。


安裝 SNMP 主代理程式的步驟:

  1. 以 root 身份登入。
  2. 檢查連接埠 161 上是否正在執行 SNMP 常駐程式 (snmpd)。
  3. 如果尚未執行任何 SNMP 常駐程式,請移往步驟 4

    如果已經執行 SNMP 常駐程式,請確定您瞭解如何重新啟動該常駐程式,並瞭解其所支援的 MIB 樹。

  4. 如果 SNMP 常駐程式正在執行,請終止其程序。
  5. 在管理介面中,從左窗格內選取 [Admin Server] 節點。
  6. 選取 [Monitoring] 標籤,以顯示 [SNMP Agent Trap] 頁面,如下圖所示:

圖 6-2 [SNMP Agent Trap] 頁面

該圖顯示 [SNMP Agent Trap] 的設定。

此頁面顯示管理程式項目資訊。

  1. 鍵入執行網路管理軟體的系統名稱。
  2. 鍵入網路管理系統偵聽陷阱的連接埠號。 (眾所周知的連接埠為 162。)如需有關陷阱的更多資訊,請參閱 SNMP 陷阱目標
  3. 鍵入您要在陷阱中使用的團體字串。如需有關團體字串的更多資訊,請參閱 SNMP 代理程式團體
  4. 按一下 [OK]。
  5. 按一下 [Monitoring] 標籤中的 [SNMP Agent Community] 連結。
  6. 如下圖所示,螢幕上顯示出團體字串資訊。

圖 6-3 [SNMP Agent Community] 頁面

該圖顯示 [SNMP Agent Community] 頁面的設定。

  1. 為主代理程式鍵入團體字串。
  2. 為團體選擇一個作業層級。
  3. 建立了團體之後,您可以編輯該團體的設定,或經由該頁面上 [Current Communities] 標題中的按鈕將其移除。

  4. 按一下 [OK]。
  5. 在左窗格中存取 [App Server Instances] 和您的伺服器實例,然後按一下 [Apply Changes]。


啟用與啟動 SNMP 主代理程式

主代理程式作業是在名為 CONFIG 的代理程式配置檔案中定義的,您可以手動對該檔案進行編輯。您必須先安裝 SNMP 主代理程式,然後才能啟用 SNMP 子代理程式。


在重新啟動主代理程式的時候,如果您收到一個類似於 System Error:Could not bind to port 的連結錯誤,請使用 ps -ef | grep snmp 檢查是否正在執行 magt。如果正在執行,請使用指令 kill -9 pid 結束程序。SNMP 的 CGI 將再次開始工作。


本章節包括下列主題:

在其他連接埠上啟動主代理程式

管理介面僅在連接埠 161 上啟動 SNMP 主代理程式。但是,您可以使用下列步驟,在其他連接埠上手動啟動主代理程式:

  1. 編輯 install_dir/lib/snmp/magt/CONFIG,以指定所需的連接埠。
  2. 依照下列步驟執行啟動程序檔:
  3. cd instance_root/admin-server ./start -shell install_dir/lib/snmp/magt/magt
    install_dir/lib/snmp/magt/CONFIG
    install_dir/lib/snmp/magt/INIT

然後會在所需的連接埠上啟動主代理程式。但是,管理介面能夠偵測主代理程式是否正在執行。

手動配置 SNMP 主代理程式

手動配置 SNMP 主代理程式的步驟:

  1. 以 root 身份登入。
  2. 檢查連接埠 161 上是否正在執行 SNMP 常駐程式 (snmpd)。
  3. 如果已經執行 SNMP 常駐程式,請確定您瞭解如何重新啟動該常駐程式,並瞭解其所支援的 MIB 樹。然後終止其程序。

  4. 編輯 CONFIG 檔案,其位於伺服器根目錄下的 lib/snmp/magt 中。
  5. (可選) 依照定義變數 sysContact 與 sysLocation 中的描述,在 CONFIG 檔案內定義變數sysContactsysLocation

編輯主代理程式 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 檔案來為 sysContactsysLocation 加入初始值,這些值用於指定 sysContactsysLocation MIB-II 變數。在本範例中,sysContactsysLocation 的字串均用引號括住。任何含有空格、行中斷、標籤等等的字串均必須用引號括住。您也可以使用十六進制表示法指定值。

以下為定義變數 sysContactsysLocationCONFIG 檔案的範例。

COMMUNITY          public
                   ALLOW ALL OPERATIONS

MANAGER            nms2
                   SEND ALL TRAPS TO PORT 162
                   WITH COMMUNITY public

INITIAL            sysLocation “Server room
901 San Antonio Road
Palo Alto CA 94303
USA"

INITIAL            sysContact "John Doe
email:jdoe@sun.com"

配置 SNMP 子代理程式

若要配置 SNMP 子代理程式,請執行下列步驟︰

  1. 從 [Admin Server] 中,選取左窗格內的 [server instance] 節點。
  2. 從右窗格中,選取 [Monitoring] 標籤。
  3. 選取 [SNMP Subagent Configuration] 連結。
  4. 螢幕上會顯示以下頁面:

圖 6-4 [SNMP Subagent Configuration] 頁面

該圖顯示 SNMP 子代理程式的配置設定。

  1. (僅用於 UNIX) 在 [Master Host] 欄位中輸入伺服器的名稱與領域。
  2. 在 [Description ] 欄位中,輸入伺服器的描述,包含作業系統資訊。
  3. 在 [Organization] 欄位中,輸入負責伺服器的組織。
  4. 在 [Location] 欄位中,輸入伺服器實例的位置。
  5. 在 [Contact] 欄位中,輸入伺服器負責人的姓名以及該負責人的聯絡資訊。
  6. 選取 [On] 以啟用 SNMP 統計資料集合。
  7. 按一下 [OK]。
  8. 在左窗格中存取 [App Server Instances] 和您的伺服器實例,然後按一下 [Apply Changes]。

啟動 SNMP 主代理程式

安裝了 SNMP 主代理程式之後,便可以手動啟動它,或透過使用管理介面中的管理伺服器來啟動它。

手動啟動 SNMP 主代理程式

若要手動啟動主代理程式,請在指令提示下輸入下列內容:

INIT 檔案是一個非揮發性檔案,其包含 MIB-II 系統群組的資訊,包括系統位置和聯絡資訊。如果 INIT 檔案不存在,則在首次啟動主代理程式的時候會建立該檔案。


CONFIG 檔案中的無效管理程式名稱會導致主代理程式啟動失敗。


若要在非標準的連接埠上啟動主代理程式,請使用下列兩種方法之一:

方法 1:CONFIG 檔案中,為每個介面指定一個傳輸對映,在此對映上,主代理程式經由管理程式偵聽 SNMP 請求。傳輸對映允許主代理程式接受在標準連接埠與非標準連接埠處的連線。主代理程式也可以接受非標準連接埠的 SNMP 流量。目標系統對開放式套接字數目或每個程序中描述元數目的限定會限定 SNMP 的最大並行數目。以下為傳輸對映項目的範例:

TRANSPORT          extraordinary   SNMP
                   OVER UDP SOCKET
                    AT PORT 11161

手動編輯 CONFIG 檔案之後,您應該在指令提示下鍵入以下內容來手動啟動主代理程式:

方法 2:編輯 /etc/services 檔案,以允許主代理程式接受在標準連接埠和非標準連接埠處的連線。

使用管理伺服器啟動 SNMP 主代理程式

若要使用管理伺服器啟動 SNMP 主代理程式,請執行下列步驟:


您必須以 root 身份登入 Sun ONE Application Server,以啟動 SNMP 主代理程式。


  1. 登入管理伺服器。
  2. 從左窗格中的 [Admin Server] 節點中,選擇 [Monitoring] 標籤。
  3. 選擇右窗格頂端旁邊的 [SNMP Agent Control] 連結。
  4. 螢幕上會顯示以下頁面。

圖 6-5 [SNMP Agent Control] 頁面

該圖顯示如何控制 SNMP 主代理程式。

  1. 按一下 [Start]。
  2. 您也可以經由 SNMP 代理程式控制頁面,停止與重新啟動 SNMP 主代理程式。

啟用子代理程式

安裝了隨附管理伺服器的主代理程式之後,如果要嘗試啟動該主代理程式,您必須首先啟用伺服器實例的子代理程式。如需有關安裝主代理程式的資訊,請參閱安裝 SNMP 主代理程式

您可以使用子代理程式停止 UNIX/Linux 平台上的 SNMP 功能。您必須首先停止子代理程式,然後才能停止主代理程式。如果首先停止了主代理程式,便可能無法停止子代理程式。發生此情況後,請重新啟動主代理程式,然後停止子代理程式,接著停止主代理程式。

啟用 SNMP 子代理程式的步驟:

  1. 請在左窗格中展開 [App Server Instances] 節點。
  2. 選取伺服器實例,然後按一下 [Monitoring] 標籤。
  3. 選取 [SNMP Subagent Control] 選項,以顯示下圖中展示的頁面。

圖 6-6 [SNMP Subagent Control] 頁面

該圖顯示 SNMP 子代理程式的控制設定。

經由此頁面,您可以啟動、停止或重新啟動 SNMP 子代理程式。控制按鈕上方會顯示子代理程式的狀況。

在 Windows 平台上,Windows SNMP 服務用於監視 Sun ONE Application Server;可以經由 [控制台]/[系統管理工具]/[服務] 選項來控制該服務。


變更 SNMP 配置之後,您必須按一下 [OK],然後經由 [SNMP Subagent Control] 頁面重新啟動 SNMP 子代理程式。




上一個      目錄      索引      下一個     


Copyright 2003 Sun Microsystems, Inc. 。版權所有。