Sun ONE 로고     이전      목차      색인      다음     
Sun ONE Application Server 7, Update 1 관리자 설명서



Sun ONE Application Server 모니터링

이 장에서는 Sun ONE Application Server에서 사용할 수 있는 모니터링 및 SNMP (Simple Network Management Protocol) 기능을 설명합니다.

이 장은 다음 절로 구성되어 있습니다.

Sun ONE Application Server 모니터링 정보

사용자는 시스템의 전략적 데이터 포인트에서 작업 통계를 수집하여 Sun ONE Application Server를 모니터할 수 있습니다. 수집한 통계 자료를 통해 서버에서 얼마나 많은 요청을 처리하고 있으며 그러한 요청을 얼마나 잘 처리하고 있는지 알 수 있습니다. 각 가상 서버에 대한 통계와 전체 응용 프로그램 서버 인스턴스에 대한 통계를 볼 수 있습니다. asadmin 유틸리티나 SNMP 중 하나를 사용하여 Sun ONE Application Server를 모니터할 수 있습니다.

이 절에서는 다음 항목에 대해 설명합니다.

통계

HTTP 서버를 비롯한 대부분의 Sun ONE Application Server 응용 프로그램 구성 요소와 하위 시스템에 대해서는 통계 수집이 항상 활성화되어 있기 때문에 별도의 활성화 기능이 필요하지 않습니다. 하지만 특정 하위 시스템에 대한 모니터링이 활성화되거나 관련 기능이 활성화되어 있을 때만 수집되는 통계도 있습니다. 이러한 통계에는 다음과 같은 데이터 포인트가 있습니다.

  • EJB 메소드에 대한 통계
  • 활성 트랜잭션
  • 연결 (QOS(Quality of Service)가 활성화된 경우에만 해당)
  • DNS (DNS 캐시가 활성화된 경우만 해당)

"응용 프로그램 구성 요소 및 하위 시스템 모니터링"에 설명된 것처럼 관리 인터페이스에서 응용 프로그램 하위 시스템 또는 구성 요소에 대한 모니터링을 활성화할 수 있습니다.

서버 모니터에서 서버가 많은 양의 요청을 처리 중이라고 보고하는 경우에는 서버 구성이나 시스템의 네트워크 커널을 조정해야 할 수 있습니다. 서버 구성 조정에 대한 자세한 정보는 Sun ONE Application Server Performance Tuning and Sizing Guide를 참조하십시오.

SNMP

Sun ONE Application Server는 SNMP (Simple Network Management Protocol)를 사용하여 정보 수집 도구를 통해 네트워크 관리 정보를 제공합니다. SNMP는 네트워크에서 관리 및 모니터링 정보를 교환하는 데 사용하는 프로토콜입니다. SNMP를 사용하여 에이전트라는 프로그램으로 네트워크상의 여러 장치(허브, 라우터, 브리지 등)를 모니터합니다. 다른 프로그램에서는 에이전트로부터 데이터를 수집합니다. 모니터링 작업으로 만들어진 데이터베이스를 관리 정보 베이스(MIB)라고 합니다. 이 데이터는 네트워크상의 모든 장치가 제대로 작동하는지 확인하는데 사용됩니다.

SNMP를 사용하면 HTTP 서버만 모니터할 수 있지만 명령줄 인터페이스(CLI)를 사용하면 모든 구성 요소와 시스템을 모니터할 수 있습니다.

SNMP에 대한 자세한 내용은 "SNMP 정보" 및 "SNMP 설정"을 참조하십시오.

HTTP 서버 모니터링

HTTP 서버 모니터링은 기본적으로 활성화되어 있으므로 특별히 활성화할 필요가 없습니다. HTTP 서버 모니터링은 XML 파일을 기반으로 이루어지며 모니터할 수 있는 세 가지 속성의 집합으로서 asadmin 명령을 사용하여 액세스합니다. 이 XML 파일의 요소, 하위 요소 및 속성은 "모니터할 수 있는 HTTP 서버 요소" 및 "모니터할 수 있는 HTTP 서버 속성"을 참조하십시오.



주

SNMP를 사용하면 HTTP 서버 통계만 수집할 수 있습니다. HTTP 서버를 비롯한 Sun ONE Application Server의 모든 하위 시스템에 대한 통계는 명령줄 인터페이스를 사용하여 수집할 수 있습니다.



asadmin 사용에 대한 자세한 내용은 "명령줄 인터페이스 사용"을 참조하십시오.

응용 프로그램 구성 요소 및 하위 시스템 모니터링

Sun ONE Application Server의 일부 하위 시스템 또는 구성 요소는 관련 통계가 항상 수집되기 때문에 모니터링을 활성화할 필요가 없습니다. 예를 들어, 컨테이너와 같은 응용 프로그램 구성 요소에 대한 모니터링은 활성화하거나 비활성화할 수 있습니다. 모니터링을 활성화하면 항상 수집되는 통계 외에 모든 EJB 메소드에 대한 통계가 추가로 수집됩니다. JDBC 연결 풀에 대한 모니터링은 항상 활성화되어 있습니다. 연결 풀은 처음 액세스할 때 초기화되며 그 후에는 언제든지 관련 통계를 모니터할 수 있습니다.

모니터할 수 있는 전체 데이터 포인트 목록은 "모니터할 수 있는 속성 이름"을 참조하십시오.

관리 인터페이스나 명령줄 인터페이스(CLI)에서 선택한 응용 프로그램 구성 요소와 하위 시스템에 대한 모니터링을 활성화할 수 있습니다. 예를 들어, CLI에서 EJB 컨테이너에 대한 모니터링을 활성화하려면 단말기 창에서 다음 명령을 입력합니다.

set server1.ejb-container.monitoringEnabled=true
reconfig server1

여기서 server1은 인스턴스 이름입니다.

컨테이너 노드 아래에 있는 관리 인터페이스에서 같은 기능에 액세스할 수 있습니다.

이 절에서는 다음 항목에 대해 설명합니다.

컨테이너 하위 시스템 모니터링

EJB 컨테이너의 경우 모니터링이 활성화되어 있으면 모든 Entity Bean, Stateless Session Bean을 위한 메소드와 관련된 통계가 수집됩니다. 수집되는 통계 자료는 다음과 같습니다.

  • 총 오류 수
  • 총 호출 수
  • 총 성공 수
  • 실행 시간, 밀리초 단위(메소드 최종 호출 시)

그 외의 컨테이너 하위 시스템에 대한 모든 통계는 항상 수집됩니다. 모니터된 데이터 포인트 중 일부는 다음과 관련된 통계를 포함합니다.

  • 풀의 초기, 최소 및 최대 Stateless Bean 수
  • 캐시의 최소 및 기본 Stateful Bean 및 Entity Bean 수
  • 캐시의 최소 및 기본 Stateless Session Bean 수
  • 작성 및 삭제된 Bean의 수
  • 기타 관련 통계

ORB 서비스 모니터링

ORB 서비스의 경우 모니터된 데이터 포인트에는 ORB 연결 및 ORB 스레드 풀에 대해 수집된 통계가 포함됩니다. ORB 통계는 항상 수집되므로 ORB 서비스에 대한 모니터링을 활성화할 필요가 없습니다.

트랜잭션 서비스 모니터링

JTS (Java Transaction Service) 서비스의 경우 모니터된 데이터 포인트에는 다음 통계가 포함됩니다.

  • 완료된 트랜잭션 총 수
  • 롤백된 트랜잭션 총 수
  • inflight 트랜잭션 총 수
  • inflight 트랜잭션 목록

자세한 내용은 "CLI를 사용한 트랜잭션 서비스 관리"를 참조하십시오.

QOS (Quality of Service)

QOS (Quality of Service)는 서버 인스턴스 가상 서버 클래스 또는 가상 서버에 대해 설정한 성능 제한입니다. 예를 들어, 인터넷 서비스 공급자(ISP)는 제공되는 대역폭에 따라 가상 서버 요금을 다르게 책정할 수 있습니다. 대역폭 용량 및 연결 횟수의 두 영역을 제한할 수 있습니다.

Sun ONE Application Server에서 제공하는 QOS (Quality of Service) 정보는 다음 항목과 관련하여 런타임 동안 서버 효율성을 결정하는 데 사용됩니다.

  • 시작 시간
  • 서버 트래픽 및 대역폭에 미치는 트래픽의 영향
  • 라이브 데이터 대 정적 데이터 분석
  • 기타 데이터 요소

자세한 내용은 "CLI를 사용한 트랜잭션 서비스 관리"를 참조하십시오.

CLI를 사용한 모니터링 데이터 추출

명령줄 인터페이스(CLI)에서 asadmin 명령을 list 및 get 명령과 함께 사용하여 모니터된 데이터를 추출할 수 있습니다.



주

set 명령은 "CLI를 사용한 트랜잭션 서비스 관리"에 설명된 대로 트랜잭션 서비스에 대한 모니터링을 설정하는 데만 사용됩니다.



이 절에서는 다음 항목에 대해 설명합니다.

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 명령

이 명령은 다음과 같은 모니터된 정보를 검색합니다.

  • 구성 요소 또는 하위 시스템 내에서 모니터된 모든 속성
  • 구성 요소 또는 하위 시스템 내에서 모니터된 특정 속성

특정 구성 요소나 하위 시스템에 존재하지 않는 속성을 요청한 경우에는 오류가 반환됩니다. 마찬가지로 구성 요소나 하위 시스템에 대해 활성화되어 있지 않은 특정 속성을 요청한 경우에도 오류가 반환됩니다.

get 명령 사용에 대한 자세한 내용은 "CLI 이름 매핑"을 참조하십시오.

예 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이라는 이름의 인스턴스에 대한 루트 모니터링 객체는 다음 이름을 사용합니다.

server1

모든 자식 객체는 점(.) 문자를 분리자로 사용하여 표시됩니다. 자식 노드가 싱글톤 유형인 경우에는 그 객체를 나타내는 데 모니터링 객체 유형만 필요하고 그렇지 않은 경우에는 type.name 형태의 이름이 필요합니다.

예를 들어, http-server는 유효한 모니터링 가능 객체 유형 중 하나이며 싱글톤입니다. server1 인스턴스의 http-server를 나타내는 단독 자식 노드를 표시하려면 다음 이름을 사용합니다.

server1.http-server

다른 예를 들어보면, application은 유효한 모니터링 가능 객체 유형이며 싱글톤이 아닙니다. Petstore 응용 프로그램을 나타내는데 싱글톤이 아닌 자식 노드를 표시하려면 다음 이름을 사용합니다.

server1.application.petstore

CLI 이름을 사용하여 모니터할 수 있는 객체의 특정 속성을 나타낼 수 있습니다. 예를 들어, http-server는 모니터할 수 있는 summary라는 속성을 가집니다. 다음 이름은 summary 속성을 나타냅니다.

server1.http-server.summary

모니터링 객체에 의해 노출된 속성 이름을 지정할 때 고정된 규칙이 있는 것은 아닙니다.

사용자는 CLI 사용에 유효한 이름을 알지 못합니다. list 명령을 사용하여 모니터할 수 있는 객체를 검사하는 한편 get 명령을 와일드카드 매개 변수와 함께 사용하여 모니터할 수 있는 객체의 모든 사용 가능한 속성을 검사할 수 있습니다.

다음 예는 몇 가지 클라이언트 이름 매핑 시나리오를 보여줍니다.

Petstore 예

사용자가 server1이라는 이름의 Sun ONE Application Server 인스턴스에 배포된 Petstore 응용 프로그램에서 메소드가 호출된 횟수를 검사하려고 합니다. list 명령과 get 명령을 조합하여 메소드에 대한 원하는 통계에 액세스합니다.

  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-service, http-server, transaction-service, resources 및 배포 및 활성화된 모든 응용 프로그램이 포함됩니다.

  6. Petstore 응용 프로그램의 모니터할 수 있는 하위 구성 요소를 나열합니다(--monitor 대신 -m을 사용할 수 있습니다).
  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 응용 프로그램의 sigon-ejb_jar EJB 모듈에 있는 모니터할 수 있는 하위 구성 요소를 나열합니다.
  9. asadmin>list -m server1.application.petstore.ejb-module.signon-ejb_jar

    출력 결과는 다음과 같습니다.
    entity-bean.UserEJB
    stateless-session-bean.SignOnEJB

  10. Petstore 응용 프로그램의 sigon-ejb_jar EJB 모듈에 대한 UserEJB Entity Bean에서 모니터할 수 있는 하위 구성 요소를 나열합니다.
  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 응용 프로그램의 sigon-ejb_jar EJB 모듈에 있는 UserEJB Entity Bean에 대한 getUserName3 메소드에서 모니터할 수 있는 하위 구성 요소를 나열합니다.
  13. asadmin>list -m server1.application.petstore.ejb-module.signon-ejb_jar.entity-bean.UserEJB.bean-m ethod.getUserName3

    출력 결과는 다음과 같습니다.

    No monitorable entities for element
    server1.application.petstore.ejb-module.signon-ejb_jar.entity-bean.UserEJB.bean-m ethod.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

모니터할 수 있는 객체 유형

모니터링에 사용되는 객체 트리는 여러 개의 노드를 포함하고 있습니다. 노드는 객체 트리의 특정 항목으로 고유한 유형, 이름 및 부모 노드에 의해 식별됩니다. 일부 노드 유형은 하나의 부모 노드 아래에 해당 유형의 노드가 하나만 존재할 수 있는 싱글톤입니다. 싱글톤 노드에는 상응하는 이름이 없습니다.

싱글톤이 아닌 유형 노드에는 이름이 필요합니다. 인스턴스 이름 열에서는 가능한 이름 공간에 대해 설명합니다.

다음 표에서는 여러 노드 유형 사이에 사용 가능한 부모-자식 관계 및 일부 노드 유형의 이름 공간에 관한 트리 구조를 설명합니다.

   모니터링 객체 유형 

노드 유형

싱글톤?

잎?

자식 노드 유형

인스턴스 이름

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

 

아니요

 

예

 
 

Message-driven Bean의 onMessage 메소드 이름 뒤에 다른 Enterprise Bean
메소드의 숫자 접미어를 붙입니다. 접미어는 오버로드된 메소드를 명확히 하기 위해 필요합니다.

 

모니터할 수 있는 속성 이름

모든 모니터할 수 있는 객체가 모니터할 수 있는 속성을 표시할 필요는 없습니다. 일부 객체는 다른 객체를 그룹화하는 데만 사용됩니다. Sun ONE Application Server의 경우 http-server 노드 외에는 트리의 잎 노드만 속성을 가집니다. http-server 노드 유형은 자식 노드와 속성을 가집니다. 다음 표는 여러 노드에 대해 모니터할 수 있는 속성 이름의 목록입니다.

   http-server

속성 이름

데이터 유형

설명

summary

 

문자열(서식 지정됨)

 

HTTP server 요약. 가상 서버 및 프로세스 포함.

주: 서식이 지정된 문자열로 표시되는 데이터에 대한 자세한 내용은 "모니터할 수 있는 HTTP 서버 객체"를 참조하십시오.

 

   virtual-server

속성 이름

데이터 유형

설명

<vs-id>

 

문자열(서식 지정됨)

 

가상 서버 정보. 모든 응용 프로그램 서버 인스턴스에 대해 한 개 이상의
가상 서버가 있을 수 있습니다. 가상 서버 ID 목록은 http-server의 summary 속성에서 얻을 수 있습니다. server1.http-server.virtual-server.<vs-id> 형태의 get 명령 매개 변수를 사용하여 특정 가상 서버에 대한 통계를 조회할 수 있습니다. server1.http-server.virtual-server.* 형태의 get 명령 매개 변수를 사용하여 모든 가상 서버에 대한 통계를 조회할 수 있습니다.

주: 서식이 지정된 문자열로 표시되는 데이터에 대한 자세한 내용은 "모니터할 수 있는 HTTP 서버 객체"를 참조하십시오.

 

   process

속성 이름

데이터 유형

설명

<pid>

 

문자열(서식 지정됨)

 

프로세스 정보. 모든 응용 프로그램 서버 인스턴스에는 하나의 프로세스가 있습니다. 프로세스 ID는 http-server의 summary 속성에서 얻을 수 있습니다. 프로세스에 대한 통계는 get 명령에 server1.http-server.process.<pid> 형태의 매개 변수를 사용하여 얻을 수 있습니다.

주: 서식이 지정된 문자열로 표시되는 데이터에 대한 자세한 내용은 "모니터할 수 있는 HTTP 서버 객체"를 참조하십시오.

 

   orb-connection 

속성 이름

데이터 유형

설명

total-inbound-connections

 

정수

 

ORB로의 총 인바운드 연결 수

 

total-outbound-connections

 

정수

 

ORB로부터의 총 아웃바운드 연결 수 

 

   orb-thread-pool  

속성 이름

데이터 유형

설명

thread-pool-size

 

정수

 

ORB 스레드 풀의 총 스레드 수

 

waiting-thread-count

 

정수

 

도착할 작업을 대기 중인 스레드 풀의 스레드 수

 

   jdbc-connection-pool 

속성 이름

데이터 유형

설명

total-threads-waiting

 

정수

 

JDBC 연결 대기 중인 총 스레드 수

 

total-outbound-connections

 

정수

 

총 JDBC 연결 검증 실패 수

 

total-connections-timed-out

 

정수

 

시간 초과된 총 연결 요청 수

 

   transaction-service 

속성 이름

데이터 유형

설명

total-tx-completed

 

정수

 

완료된 총 트랜잭션 수

 

total-tx-rolled-back

 

정수

 

롤백된 총 트랜잭션 수

 

total-tx-inflight

 

정수

 

총 inflight (활성) 트랜잭션 수

 

isFrozen

 

문자열

 

트랜잭션 시스템 동결 여부(true 또는 false)

 

inflight-tx

 

문자열(서식 지정됨)

 

inflight 트랜잭션 목록

 

   bean-pool 

속성 이름

데이터
유형

설명

max-pool-size

 

정수

 

풀에 있는 최대 Bean 인스턴스 수 

 

steady-pool-size

 

정수

 

일반적으로 Bean 인스턴스 수는 풀에서 관리됩니다. 풀은 처음 만들어질 때 steady-pool-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

 

정수

 

Message-driven Bean을 위해 JMS 세션에 한 번에 로드하는 최대 메시지 수. 기본값은 1이며, Message-driven Bean의 풀에만 적용됩니다.

 

   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

 

정수

 

비활성화 처리 횟수. Stateful Session Bean에만 적용됩니다.

 

num-passivation-errors

 

정수

 

비활성화 처리를 수행하는 동안 발생한 오류 횟수. Stateful Session Bean에만 적용됩니다.

 

num-expired-sessions-removed

 

정수

 

정리 스레드로 제거된 만료된 세션의 수. Stateful Session Bean에만 적용됩니다.

 

num-passivation-success

 

정수

 

비활성화 처리가 성공적으로 완료된 횟수. Stateful Session Bean에만 적용됩니다.

 

   bean-method 

속성 이름

데이터
유형

설명

method-name

 

문자열

 

메소드의 완전 수식 이름

 

total-num-calls

 

정수

 

메소드가 호출된 횟수. 이 통계는 EJB 컨테이너에 대한 모니터링이 활성화된 경우에는 Stateful Session Bean, Stateless Session Bean 및 Entity Bean에 대해, Message-driven Bean 컨테이너에 대한 모니터링이 활성화된 경우에는 Message-driven Bean에 대해 수집됩니다.

 

total-num-errors

 

정수

 

메소드 실행 결과 예외가 발생한 횟수. 이 통계는 EJB 설정 하에 모니터링이 활성화된 경우에는 Stateful Session Bean, Stateless Session Bean, Entity Bean에 대해, MDB 설정 하에 모니터링이 활성화된 경우에는 Message-driven Bean에 대해 수집됩니다.

 

total-num-success

 

정수

 

메소드가 성공적으로 실행된 횟수. 이 통계는 EJB 컨테이너에 대한 모니터링이 활성화된 경우에는 Stateful Session Bean, Stateless Session Bean 및 Entity Bean에 대해, Message-driven Bean 컨테이너에 대한 모니터링이 활성화된 경우에는 Message-driven Bean에 대해 수집됩니다.

 

execution-time-millis

 

Long

 

이 메소드가 성공적으로 최종 실행 시 걸린 시간. 이 통계는 EJB 컨테이너에 대한 모니터링이 활성화된 경우에는 Stateful Session Bean, Stateless Session Bean 및 Entity Bean에 대해, Message-driven Bean 컨테이너에 대한 모니터링이 활성화된 경우에는 Message-driven Bean에 대해 수집됩니다.

 

모니터할 수 있는 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 ServerPerformance and Tuning Guide를 참조하십시오.

모니터할 수 있는 HTTP 서버 요소

다음 표는 모니터할 수 있는 HTTP 서버 요소 목록입니다.

   모니터할 수 있는 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

 

없음

 

연결 유지(지속적인 연결) 통계 추적

 

CacheBucket

 

없음

 

파일 캐시(NSFC) 통계 추적

 

Thread

 

RequestBucket ProfileBucket

 

요청 처리 스레드 설명

 

VirtualServer

 

RequestBucket
ProfileBucket

 

가상 서버 설명

 

RequestBucket

 

없음

 

요청 관련 통계 추적

 

ProfileBucket

 
 

Profile 요소와 관련된 통계 추적

 

모니터할 수 있는 HTTP 서버 속성

다음 표는 모니터할 수 있는 HTTP 속성 목록입니다.

   서버 

속성 이름

값

설명

Id

 
 

서버 인스턴스 ID (예: server1)

 

VersionServer

 
 

Sun ONE Application Server 버전을 포함하는 문자열

 

TimeStarted

 

GMT

 

이 서버 인스턴스가 시작된 시간

 

SecondsRunning

 
 

이 서버 인스턴스가 시작된 후 경과된 시간(초)

 

TicksPerSecond

 
 

초당 눈금 수. 이 값은 시스템에 따라 다릅니다.

 

MaxProcs

 
 

최대 프로세스 수

 

MaxThreads

 
 

최대 처리 스레드 수

 

MaxVirtualServers

 
 

추적된 최대 가상 서버 수

 

FlagProfilingEnabled

 

0 (off), 1 (on)

 

NSAPI 성능 프로필의 활성화(on) 여부를 나타냅니다.

 

FlagVirtualServerOverflow

 

0 (no), 1 (yes)

 

MaxVirtualServers 이상의 것이 구성되어 있는지(yes) 여부를 나타냅니다. 이 속성이 1로 설정되면 모든 가상 서버에 대한 통계가 추적되지 않습니다.

 

LoadMinuteAverage

 
 

1분 동안의 평균 로드

 

Load5MinuteAverage

 
 

5분 동안의 평균 로드

 

Load15MinuteAverage

 
 

15분 동안의 평균 로드

 

RateBytesTransmitted

 

초당 바이트

 

서버에 정의된 시간 간격을 두고 데이터가 전송되는 속도 또는 이 정보가 없는 경우에는 0

 

RateBytesReceived

 

초당 바이트

 

서버에 정의된 시간 간격을 두고 데이터가 수신되는 속도 또는 이 정보가 없는 경우에는 0

 

   ConnectionQueue 

속성 이름

값

설명

Id

 
 

연결 대기열 ID

 

   ThreadPool 

속성 이름

값

설명

Id

 
 

스레드 풀 ID

 

Name

 
 

스레드 풀의 심볼릭 이름

 

   Profile 

속성 이름

값

설명

Id

 
 

NSAPI 성능 프로필 버킷 ID

 

Name

 
 

NSAPI 성능 프로필 버킷의 심볼릭 이름

 

Description

 
 

NSAPI 성능 프로필 버킷에 대한 설명

 

   Process 

속성 이름

값

설명

Pid

 
 

이 프로세스를 고유하게 식별하는 운영 체제 프로세스 ID

 

Mode

 

알 수 없음
활성

 

이 프로세스가 활성화되어 있을 때는 활성이라고 표시됩니다.

 

TimeStarted

 

GMT

 

이 프로세스가 시작된 시간

 

CountConfigurations

 
 

하나의 구성이 로드된 횟수 또는 이 정보가 없는 경우에는 0

 

SizeVirtual

 

킬로바이트(KB)

 

이 프로세스가 사용하는 가상 메모리의 크기

 

SizeResident

 

킬로바이트(KB)

 

이 프로세스가 사용하는 상주 메모리의 크기

 

FractionSystemMemoryUsage

 
 

이 프로세스가 사용하는 시스템 메모리의 비율

 

   ConnectionQueueBucket 

속성 이름

값

설명

ConnectionQueue

 
 

ConnectionQueue 요소의 ID

 

CountTotalConnection

 
 

승인된 새로운 연결의 총 수

 

CountQueued

 
 

현재 대기열에 있는 연결의 수

 

PeakQueued

 
 

대기열에 동시에 존재한 최대 연결 수

 

MaxQueued

 
 

대기열에 있을 수 있는 최대 연결 수

 

CountOverflow

 
 

대기열이 가득 차서 연결을 수용할 수 없었던 횟수

 

CountTotalQueued

 
 

대기열에 있던 연결의 총 수 특정 연결이 여러 번 대기열에 있을 수 있으므로 CountTotalQueued 값은 CountTotalConnections보다 크거나 같을 수 있습니다.

 

TicksTotalQueued

 
 

연결이 대기열에서 보낸 시간의 총 눈금 수. 눈금은 시스템 종속 시간 단위입니다. 참조:TicksPerSecond

 

   ThreadPoolBucket 

속성 이름

값

설명

Thread-pool

 
 

ThreadPool 요소의 ID

 

CountThreadsIdle

 
 

현재 유휴 상태인 요청 처리 스레드의 수

 

CountThreads

 
 

요청 처리 스레드의 수

 

MaxThreads

 
 

동시에 존재할 수 있는 요청 처리 스레드의 최대 수

 

CountQueued

 
 

이 스레드 풀로 처리하기 위해 대기열에 있는 요청 수

 

PeakQueued

 
 

대기열에 동시에 존재한 최대 요청 수

 

MaxQueued

 
 

대기열에 있을 수 있는 최대 요청 수

 

   DnsBucket 

속성 이름

값

설명

FlagCacheEnabled

 

0 (off), 1 (on)

 

DNS 캐시의 활성화(on) 여부를 나타냅니다.

 

CountCacheEntries

 
 

현재 캐시에 있는 DNS 항목의 수

 

MaxCacheEntries

 
 

캐시에 수용할 수 있는 최대 DNS 항목 수

 

CountCacheHits

 
 

DNS 캐시 조회가 성공한 횟수

 

CountCacheMisses

 
 

DNS 캐시 조회가 실패한 횟수

 

FlagAsyncEnabled

 

0 (off), 1 (on)

 

비동기 DNS 조회 활성화(on) 여부를 나타냅니다.

 

CountAsyncNameLookups

 
 

수행된 비동기 DNS 이름 조회 총 수

 

CountAsyncAddrLookups

 
 

수행된 비동기 DNS 주소 조회 총 수

 

CountAsyncLookupsInProgress

 
 

현재 처리 중인 비동기 DNS 조회 총 수

 

   KeepaliveBucket 

속성 이름

값

설명

CountConnections

 
 

현재 연결 유지 모드에 있는 연결 수

 

MaxConnections

 
 

최대 동시 연결 유지 연결 수

 

CountHits

 
 

후속적으로 유효한 요청이 이루어진 연결 유지 모드의 총 연결 횟수

 

CountFlushes

 
 

서버가 연결 유지 연결을 닫은 횟수

 

CountTimeouts

 
 

연결 유지 연결의 시간이 초과된 횟수

 

SecondsTimeouts

 
 

서버가 유휴 연결 유지 연결을 닫기 전의 시간(초)

 

CountRefusals

 
 

서버가 연결 유지 연결을 거부한 횟수

 

   CacheBucket 

속성 이름

값

설명

FlagEnabled

 

0 (off), 1 (on)

 

파일 캐시 활성화(on) 여부를 나타냅니다.

 

SecondsMaxAge

 

시간(초)

 

파일 캐시 항목의 최대 사용 기간

 

CountEntries

 
 

현재 파일 캐시에 있는 항목 수

 

MaxEntries

 
 

파일 캐시에서 동시에 수용할 수 있는 최대 캐시 항목 수

 

CountOpenEntries

 
 

열려 있는 파일과 관련된 항목 수

 

MaxOpenEntries

 
 

파일 캐시에서 동시에 수용할 수 있는 열린 파일과 관련된 최대 캐시 항목 수

 

SizeHeapCache

 

바이트 수

 

캐시된 파일 내용이 사용한 힙의 양

 

MaxHeapCacheSize

 

바이트 수

 

파일 캐시에서 캐시된 파일 내용에 사용하는 최대 힙의 양

 

SizeMmapCache

 

바이트 수

 

메모리 매핑된 파일 내용이 사용하는 주소 공간의 양

 

MaxMmapCacheSize

 

바이트 수

 

파일 캐시에서 메모리 매핑된 파일 내용에 사용하는 최대 주소 공간 양

 

CountHits

 
 

캐시 항목 조회가 성공한 횟수

 

CountMisses

 
 

캐시 항목 조회가 실패한 횟수

 

CountInfoHits

 
 

파일 정보 조회가 성공한 횟수

 

CountInfoMisses

 
 

파일 정보 조회가 실패한 횟수

 

CountContentHits

 
 

내용 조회가 성공한 횟수

 

CountContentMisses

 
 

내용 조회가 실패한 횟수

 

   Thread 

속성 이름

값

설명

Mode

 

알 수 없음, 유휴, DNS, 요청, 처리, 응답, 업데이트 중

 

마지막으로 사용한 스레드의 상태

 

TimeStarted

 

GMT

 

이 스레드가 시작된 시간

 

ConnectionQueue

 
 

스레드에서 서비스하고 있는 ConnectionQueue의 ID

 

   VirtualServer 

속성 이름

값

설명

Id

 
 

가상 서버 ID

 

Mode

 

알 수 없음, 활성

 

이 가상 서버가 활성화 상태이면 활성이라고 표시됩니다.

 

Hosts

 
 

이 가상 서버가 서비스하는 소프트웨어 가상 서버 호스트 이름
(예: www.foo.com foo.com foo.isp.com).

 

Interfaces

 
 

가상 서버가 구성된 인터페이스(Listener)
(예: 192.168.1.2:80 192.168.1.2:443)

 

   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 수준 응답 수

 

   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 Transaction Service에 대한 자세한 내용은 "트랜잭션 서비스 사용"을 참조하십시오.

HTTP QOS (Quality of Service) 사용

다음 설정에 따라 트래픽 측정 방법과 대역폭 재계산 빈도가 결정됩니다.

  • 재계산 간격 — 대역폭 계산 빈도(밀리초)를 나타냅니다.
  • 메트릭 간격 — 트래픽 계산에 데이터가 사용되는 시간을 나타냅니다.

관리 인터페이스에서 서버 인스턴스 또는 가상 서버 클래스에 대한 이러한 서버 또는 클래스 수준 설정을 활성화할 수 있습니다. 그러나 개별 가상 서버에 대한 설정을 대체할 수 있습니다.

이 절에서는 다음 항목에 대해 설명합니다.

QOS (Quality of Service)의 예

다음은 QOS (Quality of Service) 정보가 수집되고 계산되는 방법에 대한 예입니다.

  • 서버의 메트릭 간격은 30초입니다.
  • 서버는 0초에 시작합니다.
  • 1초에는 HTTP 연결에서 서버에서 나가고 서버로 들어오는 5000바이트의 트래픽을 생성합니다.
  • 그 후에는 더 이상 연결이 이루어지지 않습니다. 30초에는 지난 30초 동안의 총 트래픽이 5000바이트입니다.
  • 32초에는 1초에서의 트래픽 샘플이 메트릭 간격인 30초보다 오래 되었으므로 취소됩니다. 지난 30초 간의 총 트래픽은 이제 0입니다.

재계산 간격도 이와 비슷하게 작동합니다. 서버의 재계산 간격은 100밀리초입니다.

같은 예를 가지고 계속 설명하자면 대역폭은 매 100밀리초마다 정기적으로 재계산됩니다. 이 계산은 메트릭 간격과 트래픽 양을 기반으로 이루어집니다.

  • 0초에 대역폭이 처음으로 계산됩니다. 총 트래픽은 0이며 이것을 30초의 메트릭 간격으로 나누면 대역폭은 0이 됩니다.
  • 1초에 1/10 시간(1000밀리초/100밀리초)에 대한 대역폭이 계산됩니다. 총 트래픽은 5000바이트이고 이것을 30초로 나누면 대역폭은 5000/30 = 166바이트/초 입니다.
  • 30초에 1/300 시간에 대한 대역폭이 계산됩니다. 총 트래픽 5000바이트를 30초로 나누면 대역폭은 5000/30 = 166바이트/초 입니다.
  • 32초에 1/320 시간에 대해 대역폭이 다시 계산됩니다. 트래픽을 생성했던 연결이 오래 되어 취소되었으므로 이 때의 트래픽은 0이며 이를 30으로 나누면 대역폭은 0바이트/초가 됩니다.

QOS (Quality of Service)의 구성

서버 인스턴스 또는 가상 서버의 클래스를 위한 QOS (Quality of Service)는 관리 인터페이스를 통해 구성됩니다.



주

QOS (Quality of Service) 설정을 적용하려면 "obj.conf 파일에 필요한 변경 사항"에 설명된 대로 obj.conf 파일에 SAF (Server Application Function)를 설정해야 합니다.



QOS (Quality of Service)를 구성하려면 다음 단계를 수행합니다.

  1. 왼쪽 창에서 "응용 프로그램 서버 인스턴스" 노드를 선택합니다.
  2. 서버 인스턴스 노드를 확장하여 "HTTP 서버" 노드를 표시합니다.
  3. "HTTP 서버" 노드를 눌러 "QOS" 탭을 표시합니다.
  4. "QOS" 탭을 누릅니다.
  5. 다음 페이지에는 QOS (Quality of Service)에 대한 일반 설정이 등록 정보 버튼과 함께 표시되어 있습니다.

   가상 서버 인스턴스 QOS 탭
이 그림은 HTTP 서버 인스턴스 내의 QOS (Quality of Service)를 보여줍니다.

  1. 이 HTTP 서버에 QOS (Quality of Service)를 사용하려면 "QOS 사용"을 누릅니다.
  2. 주: 기본적으로 "QOS 사용"은 비활성화되어 있습니다. "QOS 사용"을 활성화하면 서버 오버헤드가 약간 증가합니다.

  3. "QOS 메트릭 간격"을 지정합니다.
  4. 메트릭 간격은 서버 트래픽을 계산하는 동안의 데이터 샘플 선택 시간을 초 단위로 표시한 것입니다. 기본값은 30초입니다.

    대형 파일 전송이 많은 사이트인 경우에는 이 필드에 큰 값(몇 분 이상)을 사용하십시오. 대형 파일 전송에는 짧은 메트릭 간격 동안 허용된 대역폭이 모두 사용되므로 최대 대역폭 설정을 적용하면 연결이 거부됩니다. 대역폭은 메트릭 간격으로 평균화되므로 간격이 길면 대형 파일로 생긴 급격한 상승이 완화됩니다.

    대역폭 제한이 사용할 수 있는 대역폭보다 훨씬 낮으면(예: 대역폭 제한은 1MB/초이지만 백본에 대한 연결은 1GB/초인 경우) 메트릭 간격을 단축해야 합니다.

    주: 대형 정적 파일이 전송되는 경우나 대역폭 제한이 사용할 수 있는 대역폭보다 훨씬 낮은 경우에는 서로 반대되는 해결책이 요구되기 때문에 어떤 상황에 맞춰 조정할 것인지 결정해야 합니다.

  5. "QOS 재계산 시간 간격"을 지정합니다.
  6. 재계산 시간 간격은 모든 서버, 클래스 및 가상 서버의 대역폭 계산 간의 시간(밀리초)입니다. 기본값은 100밀리초입니다.

  7. "대역폭 제한"을 지정합니다.
  8. 이 값은 서버 인스턴스에 대한 최대 대역폭 제한을 초당 바이트로 나타낸 것으로 "QOS 메트릭 간격"과 어느 정도 상호 의존성을 가집니다.

  9. 최대 대역폭 설정을 적용할 것인지 여부를 선택합니다.
  10. 최대 대역폭을 적용하기로 선택하는 경우에는 서버가 대역폭 제한에 도달할 때 추가 연결이 거부됩니다.

    최대 대역폭을 적용하지 않기로 선택하는 경우에는 최대값이 초과될 때 서버가 이벤트 로그에 메시지를 기록합니다.

  11. "연결 제한"을 지정합니다.
  12. 이 값은 동시 요청 처리의 수입니다.

  13. 연결 제한 설정 적용 여부를 선택합니다.
  14. 최대 연결을 적용하기로 선택하는 경우에는 서버가 그 제한에 도달할 때 추가 연결이 거부됩니다. 최대 연결을 적용하지 않기로 선택하는 경우에는 최대값이 초과될 때 서버가 이벤트 로그에 메시지를 기록합니다.

  15. (선택 사항) QOS (Quality of Service)에 대한 추가 이름-값 쌍 속성을 지정하려면 "등록 정보" 버튼을 누릅니다.
  16. QOS (Quality of Service) 등록 정보에 허용되는 이름-값 목록은 온라인 도움말을 참조하십시오.

  17. "저장"을 눌러 변경 사항을 서버 인스턴스에 완결합니다.
  18. 왼쪽 창에서 "응용 프로그램 서버 인스턴스"와 서버 인스턴스에 액세스한 다음 "변경 사항 적용"을 누릅니다.

obj.conf 파일에 필요한 변경 사항

QOS (Quality of Service)을 적용하려면 obj.conf 파일에 다음 SAF (Server Application Function)를 호출하는 지시문을 포함시켜야 합니다.

  • AuthTrans qos-handler
  • Error qos-error

제대로 적용하려면 qos-handler AuthTrans 지시문이 기본 객체에 구성되는 첫 번째 AuthTrans어야 합니다. QOS (Quality of Service) 처리기의 역할은 가상 서버, 가상 서버 클래스 및 전역 서버에 대한 현재 통계를 조사하고 오류를 반환하여 제한을 적용하는 것입니다. Sun ONE Application Server에는 qos-handler라는 기본 제공 샘플 QOS (Quality of Service) 처리기 SAF가 포함되어 있습니다. 이 SAF는 제한에 도달할 때 이를 기록하고 503 Server busy 오류를 서버에 반환하여 NSAP에서 이를 처리하도록 합니다.

Sun ONE Application Server에는 또한 qos-error라는 기본 제공 샘플 오류 SAF도 포함되어 있습니다. 이 SAF는 503 오류를 초래한 제한과 그 제한을 트리거한 통계 값을 명시한 오류 페이지를 반환합니다.

이러한 SAF와 그 사용 방법에 대한 자세한 내용은 Sun ONE Application Server Developer's Guide to NSAPI를 참조하십시오.

QOS (Quality of Service)에 사용되는 제한

QOS (Quality of Service) 기능 사용 시 다음과 같은 제한 사항이 있습니다.

  • QOS (Quality of Service) 기능은 응용 프로그램 수준에서의 HTTP 대역폭만 측정합니다. HTTP 대역폭은 다음과 같은 여러 가지 이유 때문에 실제 TCP 네트워크 대역폭과 다를 수 있습니다.
    • SSL이 활성화되어 있는 경우에는 핸드셰이크 및 클라이언트 인증서 교환이 트래픽에 추가되지만 측정되지 않습니다.
    • 청크 인코딩이 어느 한 방향 또는 양방향으로 활성화되어 있는 경우에는 청크 계층이 청크 헤더를 제거하며 트래픽에 계산되지 않습니다. 다른 헤더나 프로토콜 항목은 계산됩니다.

  • QOS (Quality of Service) 기능은 PR_TransmitFile 호출에서 트래픽을 정확히 측정할 수 없습니다. PR_Send()/net_write 또는 PR_Recv()/net_read와 같은 기본 입출력 작업의 경우, 한 시스템 호출에 전송된 바이트 수는 일반적으로 버퍼의 크기이고 입출력 호출은 빨리 반환하므로 전송된 데이터는 대역폭 관리자에 의해 신속하게 계산될 수 있습니다. 이는 동적 내용 응용 프로그램의 순간 대역폭을 측정하는 데 매우 유용합니다. 그러나 PR_TransmitFile에서 전송되는 데이터의 양은 전송 과정의 마지막에 가서야 알 수 있기 때문에 전송이 완료되기 전에 측정할 수 없습니다.
  • PR_TransmitFile이 짧은 경우에는 QOS (Quality of Service) 기능이 적절하게 수행됩니다. 그러나, PR_TransmitFile이 길면 전화 접속 사용자가 긴 파일을 다운로드할 경우 전송된 전체 데이터의 양은 전송 완료 시에 계산됩니다. 대역폭 관리자가 다음 재계산 간격 기간이 시작된 후 대역폭을 재계산하면 계산된 대역폭은 최근의 크기가 큰 PR_TransmitFile로 인해 크게 증가됩니다. 이 경우 대역폭 관리자가 너무 오래된 파일 전송 작업을 "만료"하여 대역폭 값이 다시 감소하는 다음 메트릭 간격까지 서버에서 모든 요청을 거부하게 될 수 있습니다. 매우 긴 정적 파일 다운로드가 자주 이루어지는 사이트인 경우에는 메트릭 간격을 기본값인 30초보다 길게 설정해야 합니다.

  • 계산된 대역폭은 즉시 측정되지 않지만 정기적 간격을 두고 일정 기간마다 재계산되기 때문에 항상 근사값입니다. 예를 들어, 메트릭 간격이 기본값인 30초이고 서버가 29초 동안 유휴 상태로 있을 경우 다음 1초에 클라이언트는 1초의 대역폭 제한의 30배를 사용할 가능성이 있습니다.
  • QOS (Quality of Service) 대역폭 통계는 서버가 동적으로 재구성될 때마다 없어집니다. 또한 대역폭 관리자 스레드는 활성 구성에 대한 대역폭 통계만 계산하기 때문에 더 오래된 비활성 구성에 연결된 스레드에서는 QOS (Quality of Service) 제한이 적용되지 않습니다. 오랫동안 소켓을 닫지 않고 활성 상태로 남아 있어서 서버에서 시간 초과로 처리되지 않는 클라이언트에는 동적 서버 재구성 후 QOS (Quality of Service) 제한이 적용되지 않을 가능성이 있습니다.
  • 동시 연결은 가상 서버 클래스와 전역 서버 인스턴스에 대한 경우와 가상 서버에 대한 경우 서로 다른 단위로 계산됩니다. 개별 가상 서버에 대한 연결 카운터는 요청을 구문 분석하여 가상 서버로 경로를 지정한 후 즉시 극소량 증가되고 그 요청에 대한 응답 처리 과정의 마지막에 미세하게 감소됩니다. 이것은 가상 서버 연결 통계가 항상 정확하다는 것을 의미합니다.
  • 그러나 가상 서버 클래스와 전역 서버 인스턴스에 대한 연결 통계는 즉시 업데이트되지 않습니다. 이 통계는 대역폭 관리자 스레드에 의해 매 재계산 간격마다 업데이트됩니다. 가상 서버 클래스의 연결 횟수는 해당 클래스의 모든 가상 서버 연결의 합이고, 전역 서버 인스턴스 연결 횟수는 모든 가상 서버 클래스 연결의 합입니다.

    이러한 값의 계산 방법 때문에 가상 서버에 대한 연결 횟수는 항상 정확하며 연결 횟수에 제한을 적용하는 경우에는 그 제한보다 많아지는 일은 없습니다. 가상 서버 클래스와 서버 인스턴스 값은 정해진 간격에만 계산되기 때문에 아주 정확하지는 않습니다.

SNMP 정보

SNMP (Simple Network Management Protocol)는 네트워크 간에 관리 및 모니터링 정보를 교환하는데 사용됩니다. SNMP를 사용하면 데이터가 관리 대상 장치와 네트워크 관리 스테이션(NMS) 사이를 이동합니다. 관리 대상 장치는 호스트, 라우터, HTTP 서버 및 기타 네트워크상의 서버 등 SNMP를 실행하는 모든 장치를 말합니다.

이 절에서는 다음 항목에 대해 설명합니다.

네트워크 관리 스테이션(NMS)

네트워크 관리 스테이션(NMS)은 특정 네트워크를 원격 관리하는 데 사용하는 시스템입니다. 일반적으로 NMS 소프트웨어는 수집된 데이터를 표시하는 그래프를 제공하거나 그 데이터를 사용하여 서버가 특정 허용 한도 내에서 작동되도록 합니다.

NMS는 일반적으로 한 개 이상의 네트워크 관리 응용 프로그램이 설치된 고성능 워크스테이션입니다. HP OpenView와 같은 네트워크 관리 응용 프로그램은 HTTP 서버와 같은 관리 대상 장치에 대한 정보를 그래픽으로 표시합니다. 예를 들어, 네트워크상의 어떤 서버가 실행 중이고 어떤 서버가 다운되어 있는지, 오류 메시지의 수와 유형은 어떤 것인지 등을 표시할 수 있습니다. SNMP를 Sun ONE Application Server와 함께 사용하면 이 정보는 하위 에이전트와 마스터 에이전트 두 종류의 에이전트를 사용하여 NMS와 서버 간에 전송됩니다.

하위 에이전트는 여러 도메인에서 실행되는 서버 인스턴스에 대한 정보를 수집하여 마스터 에이전트로 전달합니다. Sun ONE Application Server의 모든 설치에는 마스터 에이전트와 하위 에이전트가 하나씩 있습니다.



주

SNMP 구성을 변경한 후에는 "적용" 버튼을 누른 다음 SNMP 하위 에이전트를 다시 시작해야 합니다.



마스터 에이전트 는 여러 하위 에이전트와 NMS 간에 정보를 교환합니다. 마스터 에이전트는 Sun ONE Application Server와 함께 설치됩니다.

하나의 호스트 컴퓨터에 여러 개의 하위 에이전트를 설치할 수 있지만 마스터 에이전트는 하나만 설치할 수 있습니다. 예를 들어, Sun ONE Directory Server, Sun ONE Application Server 및 Sun ONE Messaging Server가 같은 호스트에 설치된 경우 각 서버의 하위 에이전트는 같은 마스터 에이전트와 통신합니다.

NMS는 서버에서 정보를 요청하거나 서버의 MIB에서 변수 저장 값을 변경합니다. 예를 들면 다음과 같습니다.

  1. NMS는 Admin Server 마스터 에이전트에 메시지를 보냅니다. 메시지는 데이터 요청(GET 메시지)이거나 MIB에 변수를 설정하기 위한 지침(SET 메시지)일 수 있습니다.
  2. 마스터 에이전트는 메시지를 해당 하위 에이전트로 전달합니다.
  3. 하위 에이전트는 데이터를 검색하거나 MIB에서 변수를 변경합니다.
  4. 하위 에이전트는 데이터나 상태를 마스터 에이전트에게 보고하고 마스터 에이전트는 메시지(GET 메시지)를 NMS로 다시 전달합니다.
  5. NMS는 데이터를 네트워크 관리 응용 프로그램을 통해 텍스트나 그래픽으로 표시합니다.

관리 정보 베이스(MIB) 객체

Sun ONE Application Server는 네트워크를 통해 관리 및 모니터링 정보와 관련된 변수를 저장합니다. 마스터 에이전트가 액세스할 수 있는 변수를 관리 대상 객체라고 합니다. 이러한 객체는 관리 정보 베이스(MIB)라 불리는 트리와 비슷한 구조로 정의됩니다. MIB은 HTTP 서버의 네트워크 구성, 상태 및 통계에 대한 액세스를 제공합니다. SNMP를 사용하여 네트워크 관리 스테이션(NMS)에서 이 정보를 볼 수 있습니다.

MIB 트리의 최상위 수준은 인터넷 객체 ID가 다음과 같은 하위 트리를 가지고 있다는 것을 보여줍니다.

  • directory (1)
  • mgmt (2)
  • experimental (3)
  • private (4)

private (4) 하위 트리는 enterpises (1) 노드를 포함합니다. enterprises (1) 노드의 각 하위 트리는 고유한 특정 MIB 확장명을 등록한 조직인 개별 enterprise에 할당됩니다. enterprise는 그 하위 트리 아래에 제품별 하위 트리를 만들 수 있습니다. 회사에서 만든 MIB은 enterprises (1) 노드 아래에 위치합니다.

각 Sun ONE Application Server 하위 에이전트는 SNMP 통신에 사용할 MIB을 제공합니다. 서버는 이러한 변수를 포함한 메시지나 트랩을 보냄으로써 중요한 이벤트를 NMS에 보고합니다. NMS는 서버의 MIB에 데이터에 대한 쿼리를 수행할 수 있습니다.

각 Sun ONE Application Server에는 install_dir/lib에 고유한 MIB를 가집니다.

Sun ONE Application Server의 MIB은 appserv.mib라는 파일입니다. 이 MIB에는 Sun ONE Application Server의 네트워크 관리와 관련된 여러 변수의 정의가 포함되어 있습니다.

Sun ONE Application Server MIB의 객체 ID는

appserver 1 (as appserver7 OBJECT IDENTIFIER ::= {appserver 1 })이며 install_dir/lib 디렉토리에 있습니다.

Sun ONE Application Server MIB을 사용하여 Sun ONE Application Server에 대한 관리 정보를 보고 서버를 실시간으로 모니터할 수 있습니다. 다음 표에서는 appserv.mib 파일에 저장된 관리 대상 객체 목록과 그에 대한 설명을 제공합니다.

   appserv.mib 관리 대상 객체 및 설명 

관리 대상 객체

설명

iwsCpuID

 

CPU ID

 

iwsCpuIdleTime

 

유휴 CPU 시간

 

iwsCpuKernelTime

 

CPU 커널 시간

 

iwsCpuTable

 

Sun ONE Application Server CPU

 

iwsCpuUserTime

 

CPU 사용자 시간

 

iwsInstanceTable

 

Sun ONE Application Server 인스턴스

 

iwsInstanceId

 

서버 인스턴스 ID

 

iwsInstanceVersion

 

SunONE-ApplicationServer-Enterprise/7 BB1-01/24/2001 17:15 (SunOS DOMESTIC) 등의 문자열

 

iwsInstanceDescription

 

서버 인스턴스에 대한 설명

 

iwsInstanceOrganization

 

서버 인스턴스 담당 조직

 

iwsInstanceContact

 

서버 인스턴스 담당자 연락처 정보

 

iwsInstanceLocation

 

서버 위치

 

iwsInstanceStatus

 

서버 인스턴스의 상태

 

iwsInstanceUptime

 

서버 실행 기간

 

iwsInstanceDeathCount

 

서버 인스턴스 프로세스 고장 횟수

 

iwsInstanceRequests

 

서버 인스턴스에서 처리한 요청의 수

 

iwsInstanceInOctets

 

서버 인스턴스에 수신된 8진수의 수. 이 정보가 없는 경우 0이
표시됩니다.

 

iwsInstanceOutOctets

 

서버 인스턴스에서 전송한 8진수의 수. 이 정보가 없는 경우 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

 

초당 네트워크에서 전송된 8진수의 수

 

iwsInstanceNetworkOutOctets

 

초당 네트워크에 수신된 8진수의 수

 

iwsVsTable

 

서버 가상 서버

 

iwsVsId

 

가상 서버 ID

 

iwsVsRequests

 

가상 서버에서 처리한 요청의 수

 

iwsVsInOctets

 

가상 서버로 수신된 8진수의 수

 

iwsVsOutOctets

 

가상 서버로 전송된 8진수의 수

 

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

 

운영 체제 프로세스 ID

 

iwsProcessThreadCount

 

요청 처리 스레드의 수

 

iwsProcessThreadIdle

 

현재 유휴 상태인 요청 처리 스레드의 수

 

iwsProcessConnectionQueueCount

 

현재 연결 대기열에 있는 연결의 수

 

iwsProcessConnectionQueuePeak

 

동시에 대기열에 있던 최대 연결 수

 

iwsProcessConnectionQueueMax

 

연결 대기열에 허용된 최대 연결 수

 

iwsProcessConnectionQueueTotal

 

승인된 연결의 수

 

iwsProcessConnectionQueueOverflows

 

연결 대기열 오버플로로 인해 거부된 연결의 수

 

iwsProcessKeepaliveCount

 

현재 연결 유지 대기열에 있는 연결의 수

 

iwsProcessKeepaliveMax

 

연결 유지 대기열에 허용된 최대 연결 수

 

iwsProcessSizeVirtual

 

프로세스 크기(KB)

 

iwsProcessSizeResident

 

프로세스 상주 크기(KB)

 

iwsProcessFractionSystemMemoryUsage

 

시스템 메모리에서 프로세스 메모리의 비율

 

iwsListenTable

 

Sun ONE Application Server 수신 소켓

 

iwsListenId

 

수신 소켓 ID

 

iwsListenAddress

 

소켓 수신 주소

 

iwsListenPort

 

소켓 수신 포트

 

iwsListenSecurity

 

암호화 지원

 

iwsThreadPoolCount

 

거부된 요청 수

 

iwsThreadPoolMax

 

대기열에 허용된 최대 요청 수

 

iwsThreadPoolPeak

 

동시에 대기열에 있던 최대 요청 수

 

iwsThreadPoolTable

 

Sun ONE Application Server 스레드 풀

 

iwsVsCount503

 

발생된 503(사용 불가능) 응답의 수

 

iwsInstanceCount503

 

발생된 503(사용 불가능) 응답의 수

 

SNMP 메시지

GET 및 SET는 SNMP로 정의된 두 가지 유형의 메시지입니다.

각 객체에는 MIB 내의 고유한 ID가 할당됩니다. SNMP 관리자는 객체의 고유 ID를 지정하는 GET 및 GETNEXT 명령을 발생하여 객체에 액세스할 수 있습니다. 프록시 에이전트는 지정된 객체의 값을 얻어 SNMP 관리자에게 전송합니다. 로그에 추가된 이벤트는 트랩 필터 조건을 만족할 경우 SNMP 트랩을 생성할 수 있습니다. 트랩을 생성하지 않는 이벤트는 유지 관리 로그 테이블에 항목으로 기록만 되고 정상적인 GET 및 GETNEXT 명령을 통해 SNMP 관리자에서 액세스합니다.

GET 메시지와 SET 메시지는 네트워크 관리 스테이션(NMS)에 의해 마스터 에이전트로 전송됩니다. 관리 인터페이스를 통해 두 메시지 중 어느 하나를 사용하거나 두 메시지를 모두 사용할 수 있습니다.

SNMP는 네트워크 정보를 프로토콜 데이터 단위(PDU) 형태로 교환합니다. 이 단위는 HTTP 서버와 같은 관리 대상 장치에 저장된 변수에 대한 정보를 포함합니다. 관리 대상 객체로도 알려진 이 변수는 필요에 따라 NMS로 보고되는 값과 이름을 가집니다. 서버에서 NMS로 전송된 프로토콜 데이터 단위를 트랩이라고도 합니다. GET, SET 및 트랩 메시지의 사용에 대해서는 다음 절에 보다 자세히 설명되어 있습니다.

SNMP 트랩 대상

SNMP 트랩은 SNMP 에이전트에서 네트워크 관리 스테이션(NMS)으로 보내는 메시지입니다. 예를 들어, SNMP 에이전트는 시작부터 종료까지 인터페이스의 상태가 변경될 때 트랩을 보냅니다. SNMP 에이전트는 트랩을 보낼 NMS의 주소를 알아야 합니다.

Sun ONE Application Server 관리 인터페이스에서 SNMP 마스터 에이전트에 대한 트랩 대상을 구성할 수 있습니다. 또한 이미 구성된 트랩 대상을 보고, 편집 및 제거할 수 있습니다. 관리 인터페이스를 사용하여 구성 트랩 대상을 구성할 때 실제로는 CONFIG 파일을 편집하는 것입니다.

서버 하위 에이전트는 중요한 이벤트가 발생했을 때 NMS에 메시지 또는 트랩을 보냅니다. 예를 들면 다음과 같습니다.

  1. 하위 에이전트는 서버가 중단되었다는 것을 마스터 에이전트에게 알립니다.
  2. 마스터 에이전트는 이 이벤트를 NMS에 보고하는 메시지 또는 트랩을 보냅니다.
  3. NMS는 해당 네트워크 관리 응용 프로그램을 통해 이 정보를 텍스트나 그래픽으로 표시합니다.

SNMP 트랩 포트 설정에 대한 지침은 "SNMP 마스터 에이전트 설치"를 참조하십시오.

SNMP 에이전트 커뮤니티

SNMP 에이전트 커뮤니티는 지정된 커뮤니티에 할당된 커뮤니티 문자열과 작업으로 구성됩니다. 커뮤니티 문자열은 SNMP 에이전트가 승인에 사용하는 네트워크 관리 스테이션(NMS) 이름에 대한 텍스트 문자열입니다. 이것은 NMS에서 에이전트에 보내는 각 메시지와 함께 커뮤니티 문자열을 보낸다는 것을 의미합니다.

할당된 작업은 get 및/또는 set입니다. SNMP 에이전트는 NMS가 데이터 교환을 위해 get, set 또는 get 및 set 작업 두 가지 모두 수행하도록 승인받았는지 여부를 확인할 수 있습니다. 커뮤니티 문자열은 SNMP 패킷으로 보낼 경우 숨겨지지 않고 ASCII 텍스트로 전송됩니다.

커뮤니티 문자열과 각 지정된 커뮤니티에 대해 허용된 작업은 관리 인터페이스에서 구성하고 관리할 수 있습니다. SNMP 에이전트 커뮤니티 설정에 대한 지침은 "SNMP 마스터 에이전트 설치"를 참조하십시오.

SNMP 설정

일반적으로 SNMP를 사용하려면 하나의 마스터 에이전트와 최소한 하나의 하위 에이전트가 시스템에 설치 및 실행되어야 합니다. 마스터 에이전트를 설치해야 하위 에이전트를 사용할 수 있습니다. "SNMP 마스터 에이전트 설치"를 참조하십시오.

SNMP 설정 절차는 시스템에 따라 다릅니다. 다음 표에서는 여러 상황에서 따라야 할 절차에 대한 개요를 제공합니다. 실제 절차에 대해서는 이 장의 뒷부분에 자세히 설명되어 있습니다.

서버 조건

수행 절차 (다음 절에 자세히 설명됨)

현재 실행 중인 원시 에이전트가 없는 경우

 

  1. 마스터 에이전트를 시작합니다.
  2. 시스템에 설치된 각 서버의 하위 에이전트를 활성화합니다.
 

  • 현재 원시 에이전트를 실행 중인 경우
  • SMUX가 없는 경우
  • 원시 에이전트를 계속 사용할 필요가 없는 경우
 

  1. Administration Server에 대한 마스터 에이전트 설치 시 원시 에이전트를 중단합니다.
  2. 마스터 에이전트를 시작합니다.
  3. 각 서버 인스턴스에 대한 SNMP 하위 에이전트를 구성합니다.
 

  • 현재 원시 에이전트를 실행 중인 경우
  • SMUX가 없는 경우
  • 원시 에이전트를 계속 사용해야 하는 경우
 

  1. 프록시 SNMP 에이전트를 설치합니다.
  2. 프록시 SNMP 에이전트를 시작합니다.
  3. 마스터 에이전트 포트 번호 이외의 포트 번호를 사용하여 원시 에이전트를 다시 시작합니다.
  4. 마스터 에이전트를 시작합니다.
  5. 시스템에 설치된 각 서버에 대한 하위 에이전트를 활성화합니다.
 

시작하기 전에 다음 두 가지를 확인합니다.

  • 시스템에서 SNMP 에이전트(운영 체제의 원시 에이전트)를 이미 실행하고 있습니까?
  • 그렇다면 원시 SNMP 에이전트에서 SMUX 통신을 지원합니까?

이 정보를 확인하는 방법에 대해서는 해당 시스템 설명서를 참조하십시오.



주

Admin Server에서 SNMP 설정을 변경하고 새 서버를 설치하거나 또는 기존 서버를 삭제한 후에는 다음 단계를 수행해야 합니다.

  • (Windows 2000) Windows SNMP 서비스를 다시 시작하거나 시스템을 재부트합니다.
  • (Unix의 경우) Admin Server를 사용하여 SNMP 마스터 에이전트와 SNMP 하위 에이전트를 다시 시작합니다.


이 절에서는 다음 항목에 대해 설명합니다.

프록시 SNMP 에이전트(UNIX/Linux) 사용

이미 원시 에이전트가 실행 중이고 이를 Sun ONE Application Server 마스터 에이전트와 함께 동시에 사용하려는 경우 프록시 SNMP 에이전트를 사용합니다. 시작하기 전에 원시 마스터 에이전트를 중단하십시오. 자세한 내용은 해당 시스템 설명서를 참조하십시오.



주

프록시 에이전트를 사용하려면 먼저 설치한 다음 시작해야 합니다. 또한 Sun ONE Application Server 마스터 에이전트가 실행되고 있는 포트가 아닌 포트를 사용하여 원시 SNMP 마스터 에이전트를 다시 시작해야 합니다.



이 절에서는 다음 내용을 설명합니다.

프록시 SNMP 에이전트 설치

SNMP 에이전트가 시스템에 실행 중이며 원시 SNMP 데몬을 계속 사용하려는 경우에는 다음 절에 설명된 단계를 수행합니다.

  1. SNMP 마스터 에이전트 설치를 설치합니다. "SNMP 마스터 에이전트 설치"를 참조하십시오.
  2. 프록시 SNMP 에이전트를 설치 및 시작하고 원시 SNMP 데몬을 다시 시작합니다. "프록시 SNMP 에이전트(UNIX/Linux) 사용"을 참조하십시오.
  3. SNMP 마스터 에이전트를 시작합니다. "SNMP 마스터 에이전트 활성화 및 시작"을 참조하십시오.
  4. 하위 에이전트를 활성화합니다. "하위 에이전트 활성화하기"를 참조하십시오.

SNMP 프록시 에이전트를 설치하려면 서버 루트 디렉토리의 install_dir/lib/snmp/sagt에 있는 CONFIG 파일을 편집합니다. 이 파일에는 다른 이름을 지정할 수 있습니다. 프록시 에이전트는 또한 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 에이전트를 시작하려면 명령 프롬프트에 다음을 입력합니다.

# sagt -c CONFIG&

원시 SNMP 데몬 재시작

프록시 SNMP 에이전트를 시작한 후에 CONFIG 파일에 지정된 포트에서 원시 SNMP 데몬을 다시 시작합니다.

원시 SNMP 데몬을 다시 시작하려면 명령 프롬프트에 다음을 입력합니다.

# snmpd -P port_number

여기서 port_number는 CONFIG 파일에 지정된 포트 번호입니다. 예를 들어, 앞서 언급한 CONFIG 파일 예에 있는 포트를 사용하는 Solaris 플랫폼에는 다음과 같이 입력합니다.

# snmpd -P 1161

SNMP 마스터 에이전트 설치



주

서버가 root로 실행되고 있지 않으면 관리 인터페이스를 사용하여 마스터 SNMP 에이전트를 설치 및 시작할 수 없습니다.



마스터 SNMP 에이전트를 설치하려면 다음 작업을 수행합니다.

  1. root로 로그인합니다.
  2. SNMP 데몬(snmpd)이 포트 161에서 실행 중인지의 여부를 확인합니다.
  3. SNMP 데몬이 실행 중이 아닌 경우 단계 4로 이동합니다.

    SNMP 데몬이 실행 중인 경우에는 재시작 방법 및 지원되는 MIB 트리를 확인합니다.

  4. SNMP 데몬이 실행 중인 경우 해당 프로세스를 종료합니다.
  5. 관리 인터페이스 왼쪽 창에서 Admin Server 노드를 선택합니다.
  6. "모니터링" 탭을 선택하여 다음 그림에 표시된 "SNMP 에이전트 트랩" 페이지를 표시합니다.

   SNMP 에이전트 트랩 페이지
이 그림은 SNMP 에이전트 트랩 페이지에 대한 설정을 보여줍니다.

이 페이지에는 "관리자 항목" 정보가 표시됩니다.

  1. 네트워크 관리 소프트웨어가 실행 중인 시스템의 이름을 입력합니다.
  2. 네트워크 관리 시스템에서 트랩을 수신하는 트랩 포트 번호를 입력합니다. 자주 사용되는 포트는 162입니다. 트랩에 대한 자세한 내용은 "SNMP 트랩 대상"을 참조하십시오.
  3. 트랩에 사용하려는 커뮤니티 문자열을 입력합니다. 커뮤니티 문자열에 대한 자세한 내용은 "SNMP 에이전트 커뮤니티"를 참조하십시오.
  4. "확인"을 누릅니다.
  5. "모니터링" 탭에 있는 "SNMP 에이전트 커뮤니티" 링크를 누릅니다.
  6. 다음 그림과 같이 커뮤니티 문자열 정보가 표시됩니다.

   SNMP 에이전트 커뮤니티 페이지
이 그림은 SNMP 에이전트 커뮤니티 페이지에 대한 설정을 보여줍니다.

  1. 마스터 에이전트의 커뮤니티 문자열을 입력합니다.
  2. 커뮤니티의 작업 수준을 선택합니다.
  3. 커뮤니티를 설정한 후 설정 사항을 편집하거나 이 페이지의 "현재 커뮤니티" 머리글 내에 표시된 버튼에서 커뮤니티를 제거할 수 있습니다.

  4. "확인"을 누릅니다.
  5. 왼쪽 창에서 "응용 프로그램 서버 인스턴스"와 서버 인스턴스에 액세스한 다음 "변경 사항 적용"을 누릅니다.

SNMP 마스터 에이전트 활성화 및 시작

마스터 에이전트 작업은 CONFIG라는 에이전트 구성 파일에 정의되며 이 파일을 수동으로 편집할 수 있습니다. SNMP 하위 에이전트를 활성화하기 전에 마스터 SNMP 에이전트를 설치해야 합니다.



주

마스터 에이전트를 다시 시작할 때 System Error: Could not bind to port와 비슷한 바인드 오류가 발생하면 ps -ef | grep snmp를 사용하여 magt가 실행 중인지 확인합니다. magt가 실행 중인 경우에는 kill -9 pid 명령을 사용하여 그 프로세스를 종료합니다. SNMP의 CGI 작동이 다시 시작할 것입니다.



이 절에서는 다음 내용을 설명합니다.

  • 다른 포트에서 마스터 에이전트 시작하기
  • 수동으로 SNMP 마스터 에이전트 구성하기
  • 마스터 에이전트 CONFIG 파일 편집하기
  • sysContact 및 sysLocation 변수 정의하기
  • SNMP 마스터 에이전트 구성하기
  • SNMP 마스터 에이전트 시작하기
  • 하위 에이전트 활성화하기

다른 포트에서 마스터 에이전트 시작하기

관리 인터페이스는 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. 서버 루트 디렉토리의 lib/snmp/magt에 있는 CONFIG 파일을 편집합니다.
  5. (선택 사항) "sysContact 및 sysLocation 변수 정의하기"에 설명된 대로 sysContact 및 sysLocation 변수를 CONFIG 파일에 정의합니다.

마스터 에이전트 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 MIB-II 변수를 지정하는 sysContact 및 sysLocation 변수의 초기 값을 추가할 수 있습니다. 다음 예에서 sysContact와 sysLocation의 문자열은 큰따옴표로 묶여 있습니다. 공간, 줄바꿈, 탭 등이 포함된 모든 문자열은 큰따옴표 안에 사용해야 합니다. 값을 16진수로 지정할 수도 있습니다.

다음은 sysContact 및 sysLocation 변수가 정의된 CONFIG 파일의 예입니다.


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"에서 "서버 인스턴스" 노드를 선택합니다.
  2. 오른쪽 창에서 "모니터링" 탭을 선택합니다.
  3. "SNMP 하위 에이전트 구성" 링크를 선택합니다.
  4. 다음 페이지가 표시됩니다.

   SNMP 하위 에이전트 구성 페이지
이 그림은 하위 에이전트에 대한 SNMP 구성 설정을 보여줍니다.

  1. (UNIX만 해당) "마스터 호스트" 필드에 서버의 이름과 도메인을 입력합니다.
  2. 운영 체제 정보를 비롯한 서버에 대한 "설명"을 입력합니다.
  3. 서버를 담당하는 "조직"을 입력합니다.
  4. 서버 인스턴스의 위치를 입력합니다.
  5. "연락처" 필드에 서버를 담당하는 사람의 이름과 연락처 정보를 입력합니다.
  6. "SNMP 통계 수집 활성화"에서 "설정"을 선택합니다.
  7. "확인"을 누릅니다.
  8. 왼쪽 창에서 "응용 프로그램 서버 인스턴스"와 서버 인스턴스에 액세스한 다음 "변경 사항 적용"을 누릅니다.

SNMP 마스터 에이전트 시작하기

일단 SNMP 마스터 에이전트를 설치한 후에는 이를 수동으로 시작하거나 관리 인터페이스에서 Admin Server를 사용하여 시작할 수 있습니다.

수동으로 SNMP 마스터 에이전트 시작하기

수동으로 마스터 에이전트를 시작하려면 명령 프롬프트에 다음과 같이 입력합니다.

# magt CONFIG INIT&

INIT 파일은 MIB-II 시스템 그룹의 정보를 포함하는 비휘발성 파일입니다. INIT이 아직 없는 경우에는 마스터 에이전트를 처음으로 시작할 때 생성됩니다.



주

CONFIG 파일에 잘못된 관리자 이름이 있으면 마스터 에이전트가 시작되지 않습니다.



기본 포트가 아닌 포트에서 마스터 에이전트를 시작하려면 다음 중 한 가지 방법을 사용합니다.

방법 1: CONFIG 파일에 마스터 에이전트가 관리자로부터 SNMP 요청을 수신하는 각 인터페이스의 전송 매핑을 지정합니다. 전송 매핑을 통해 마스터 에이전트는 기본 포트와 기본 포트가 아닌 포트에서 연결을 받아들일 수 있습니다. 또한 마스터 에이전트는 기본 포트가 아닌 포트에서 SNMP 트래픽을 받아들일 수 있습니다. 최대 동시 SNMP 수는 열려 있는 소켓 수나 프로세스당 파일 설명자 수에 대한 대상 시스템의 제한으로 제한됩니다. 다음은 전송 매핑 항목의 예입니다.

TRANSPORT          extraordinary   SNMP
                   OVER UDP SOCKET
                    AT PORT 11161

CONFIG 파일을 수동으로 편집한 후에는 명령 프롬프트에 다음을 입력하여 마스터 에이전트를 수동으로 시작합니다.

# magt CONFIG INIT&

방법 2: /etc/services 파일을 편집하여 마스터 에이전트가 기본 포트 및 기본 포트가 아닌 포트에서 연결을 받아들일 수 있습니다.

Admin Server를 사용하여 SNMP 마스터 에이전트 시작하기

Admin Server를 사용하여 SNMP 마스터 에이전트를 시작하려면 다음을 수행합니다.



주

SNMP 마스터 에이전트를 시작하려면 Sun ONE Application Server에 root로 로그인해야 합니다.



  1. Admin Server에 로그인합니다.
  2. 왼쪽 창의 "Admin Server" 노드에서 "모니터링" 탭을 선택합니다.
  3. 오른쪽 창 상단에 있는 "SNMP 에이전트 제어" 링크를 선택합니다.
  4. 다음 페이지가 표시됩니다.

   SNMP 에이전트 제어 페이지
이 그림은 SNMP 마스터 에이전트를 제어하는 방법을 보여줍니다.

  1. "시작"을 누릅니다.
  2. "SNMP 에이전트 제어" 페이지에서 SNMP 마스터 에이전트를 중단하고 다시 시작할 수도 있습니다.

하위 에이전트 활성화하기

Administration Server와 함께 제공되는 마스터 에이전트를 설치한 후에는 시작하기 전에 서버 인스턴스의 하위 에이전트를 활성화해야 합니다. 마스터 에이전트 설치에 대한 내용은 "SNMP 마스터 에이전트 설치"를 참조하십시오.

하위 에이전트를 사용하여 UNIX/Linux 플랫폼의 SNMP 기능을 중단할 수 있습니다. 먼저 하위 에이전트를 중단한 후 마스터 에이전트를 중단해야 합니다. 마스터 에이전트를 먼저 중단하면 하위 에이전트를 중단할 수 없을 수도 있습니다. 그런 경우에는 마스터 에이전트를 다시 시작하고 하위 에이전트를 중단한 다음 마스터 에이전트를 중단합니다.

SNMP 하위 에이전트를 활성화하려면 다음 작업을 수행합니다.

  1. 왼쪽 창에서 "응용 프로그램 서버 인스턴스" 노드를 확장합니다.
  2. 서버 인스턴스를 선택한 다음 "모니터링" 탭을 누릅니다.
  3. "SNMP 하위 에이전트 제어" 옵션을 선택하여 다음 그림과 같은 페이지를 표시합니다.

   SNMP 하위 에이전트 제어 페이지
이 그림은 SNMP 하위 에이전트에 대한 제어 설정을 보여줍니다.

이 페이지에서 SNMP 하위 에이전트를 시작, 중단 또는 재시작할 수 있습니다. 하위 에이전트의 상태는 제어 버튼 바로 위에 표시됩니다.

Windows 플랫폼에서는 Sun ONE Application Server 모니터링에 Windows SNMP 서비스가 사용됩니다. 이 서비스는 "제어판"/"관리 도구"/"서비스" 옵션에서 제어할 수 있습니다.



주

SNMP 구성을 변경한 후 "확인"을 누르고 "SNMP 하위 에이전트 제어" 페이지에서 SNMP 하위 에이전트를 다시 시작해야 합니다.




이전      목차      색인      다음     
Copyright 2003 Sun Microsystems, Inc. 모든 권리는 저작권자의 소유입니다.