|
|
| Sun ONE Application Server 7, Update 1 관리자 설명서 |
Sun ONE Application Server 모니터링이 장에서는 Sun ONE Application Server에서 사용할 수 있는 모니터링 및 SNMP (Simple Network Management Protocol) 기능을 설명합니다.
이 장은 다음 절로 구성되어 있습니다.
- Sun ONE Application Server 모니터링 정보
- CLI를 사용한 모니터링 데이터 추출
- CLI를 사용한 트랜잭션 서비스 관리
- HTTP QOS (Quality of Service) 사용
- SNMP 정보
- SNMP 설정
- SNMP 마스터 에이전트 활성화 및 시작
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 명령을 조합하여 메소드에 대한 원하는 통계에 액세스합니다.
- 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 응용 프로그램의 모니터할 수 있는 하위 구성 요소를 나열합니다(--monitor 대신 -m을 사용할 수 있습니다).
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 응용 프로그램의 sigon-ejb_jar EJB 모듈에 있는 모니터할 수 있는 하위 구성 요소를 나열합니다.
asadmin>list -m server1.application.petstore.ejb-module.signon-ejb_jar
출력 결과는 다음과 같습니다.
entity-bean.UserEJB
stateless-session-bean.SignOnEJB
- Petstore 응용 프로그램의 sigon-ejb_jar EJB 모듈에 대한 UserEJB Entity Bean에서 모니터할 수 있는 하위 구성 요소를 나열합니다.
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 응용 프로그램의 sigon-ejb_jar EJB 모듈에 있는 UserEJB Entity Bean에 대한 getUserName3 메소드에서 모니터할 수 있는 하위 구성 요소를 나열합니다.
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
- 메소드에 대해 모니터할 수 있는 하위 구성 요소가 없습니다. 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 노드 유형은 자식 노드와 속성을 가집니다. 다음 표는 여러 노드에 대해 모니터할 수 있는 속성 이름의 목록입니다.
   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
정수
시간 초과된 총 연결 요청 수
모니터할 수 있는 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 서버 속성
다음 표는 모니터할 수 있는 HTTP 속성 목록입니다.
   ConnectionQueue
속성 이름
값
설명
Id
연결 대기열 ID
   ThreadPool
속성 이름
값
설명
Id
스레드 풀 ID
Name
스레드 풀의 심볼릭 이름
   Profile
속성 이름
값
설명
Id
NSAPI 성능 프로필 버킷 ID
Name
NSAPI 성능 프로필 버킷의 심볼릭 이름
Description
NSAPI 성능 프로필 버킷에 대한 설명
   Thread
속성 이름
값
설명
Mode
알 수 없음, 유휴, DNS, 요청, 처리, 응답, 업데이트 중
마지막으로 사용한 스레드의 상태
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 Transaction Service에 대한 자세한 내용은 "트랜잭션 서비스 사용"을 참조하십시오.
HTTP QOS (Quality of Service) 사용
다음 설정에 따라 트래픽 측정 방법과 대역폭 재계산 빈도가 결정됩니다.
- 재계산 간격 — 대역폭 계산 빈도(밀리초)를 나타냅니다.
- 메트릭 간격 — 트래픽 계산에 데이터가 사용되는 시간을 나타냅니다.
관리 인터페이스에서 서버 인스턴스 또는 가상 서버 클래스에 대한 이러한 서버 또는 클래스 수준 설정을 활성화할 수 있습니다. 그러나 개별 가상 서버에 대한 설정을 대체할 수 있습니다.
이 절에서는 다음 항목에 대해 설명합니다.
- QOS (Quality of Service)의 예
- QOS (Quality of Service)의 구성
- obj.conf 파일에 필요한 변경 사항
- 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)를 구성하려면 다음 단계를 수행합니다.
- 왼쪽 창에서 "응용 프로그램 서버 인스턴스" 노드를 선택합니다.
- 서버 인스턴스 노드를 확장하여 "HTTP 서버" 노드를 표시합니다.
- "HTTP 서버" 노드를 눌러 "QOS" 탭을 표시합니다.
- "QOS" 탭을 누릅니다.
다음 페이지에는 QOS (Quality of Service)에 대한 일반 설정이 등록 정보 버튼과 함께 표시되어 있습니다.
   가상 서버 인스턴스 QOS 탭
![]()
- 이 HTTP 서버에 QOS (Quality of Service)를 사용하려면 "QOS 사용"을 누릅니다.
주: 기본적으로 "QOS 사용"은 비활성화되어 있습니다. "QOS 사용"을 활성화하면 서버 오버헤드가 약간 증가합니다.
- "QOS 메트릭 간격"을 지정합니다.
메트릭 간격은 서버 트래픽을 계산하는 동안의 데이터 샘플 선택 시간을 초 단위로 표시한 것입니다. 기본값은 30초입니다.
대형 파일 전송이 많은 사이트인 경우에는 이 필드에 큰 값(몇 분 이상)을 사용하십시오. 대형 파일 전송에는 짧은 메트릭 간격 동안 허용된 대역폭이 모두 사용되므로 최대 대역폭 설정을 적용하면 연결이 거부됩니다. 대역폭은 메트릭 간격으로 평균화되므로 간격이 길면 대형 파일로 생긴 급격한 상승이 완화됩니다.
대역폭 제한이 사용할 수 있는 대역폭보다 훨씬 낮으면(예: 대역폭 제한은 1MB/초이지만 백본에 대한 연결은 1GB/초인 경우) 메트릭 간격을 단축해야 합니다.
주: 대형 정적 파일이 전송되는 경우나 대역폭 제한이 사용할 수 있는 대역폭보다 훨씬 낮은 경우에는 서로 반대되는 해결책이 요구되기 때문에 어떤 상황에 맞춰 조정할 것인지 결정해야 합니다.
- "QOS 재계산 시간 간격"을 지정합니다.
재계산 시간 간격은 모든 서버, 클래스 및 가상 서버의 대역폭 계산 간의 시간(밀리초)입니다. 기본값은 100밀리초입니다.
- "대역폭 제한"을 지정합니다.
이 값은 서버 인스턴스에 대한 최대 대역폭 제한을 초당 바이트로 나타낸 것으로 "QOS 메트릭 간격"과 어느 정도 상호 의존성을 가집니다.
- 최대 대역폭 설정을 적용할 것인지 여부를 선택합니다.
최대 대역폭을 적용하기로 선택하는 경우에는 서버가 대역폭 제한에 도달할 때 추가 연결이 거부됩니다.
최대 대역폭을 적용하지 않기로 선택하는 경우에는 최대값이 초과될 때 서버가 이벤트 로그에 메시지를 기록합니다.
- "연결 제한"을 지정합니다.
이 값은 동시 요청 처리의 수입니다.
- 연결 제한 설정 적용 여부를 선택합니다.
최대 연결을 적용하기로 선택하는 경우에는 서버가 그 제한에 도달할 때 추가 연결이 거부됩니다. 최대 연결을 적용하지 않기로 선택하는 경우에는 최대값이 초과될 때 서버가 이벤트 로그에 메시지를 기록합니다.
- (선택 사항) QOS (Quality of Service)에 대한 추가 이름-값 쌍 속성을 지정하려면 "등록 정보" 버튼을 누릅니다.
QOS (Quality of Service) 등록 정보에 허용되는 이름-값 목록은 온라인 도움말을 참조하십시오.
- "저장"을 눌러 변경 사항을 서버 인스턴스에 완결합니다.
- 왼쪽 창에서 "응용 프로그램 서버 인스턴스"와 서버 인스턴스에 액세스한 다음 "변경 사항 적용"을 누릅니다.
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에서 변수 저장 값을 변경합니다. 예를 들면 다음과 같습니다.
- NMS는 Admin Server 마스터 에이전트에 메시지를 보냅니다. 메시지는 데이터 요청(GET 메시지)이거나 MIB에 변수를 설정하기 위한 지침(SET 메시지)일 수 있습니다.
- 마스터 에이전트는 메시지를 해당 하위 에이전트로 전달합니다.
- 하위 에이전트는 데이터를 검색하거나 MIB에서 변수를 변경합니다.
- 하위 에이전트는 데이터나 상태를 마스터 에이전트에게 보고하고 마스터 에이전트는 메시지(GET 메시지)를 NMS로 다시 전달합니다.
- 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 파일에 저장된 관리 대상 객체 목록과 그에 대한 설명을 제공합니다.
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에 메시지 또는 트랩을 보냅니다. 예를 들면 다음과 같습니다.
- 하위 에이전트는 서버가 중단되었다는 것을 마스터 에이전트에게 알립니다.
- 마스터 에이전트는 이 이벤트를 NMS에 보고하는 메시지 또는 트랩을 보냅니다.
- NMS는 해당 네트워크 관리 응용 프로그램을 통해 이 정보를 텍스트나 그래픽으로 표시합니다.
SNMP 트랩 포트 설정에 대한 지침은 "SNMP 마스터 에이전트 설치"를 참조하십시오.
SNMP 에이전트 커뮤니티
SNMP 에이전트 커뮤니티는 지정된 커뮤니티에 할당된 커뮤니티 문자열과 작업으로 구성됩니다. 커뮤니티 문자열은 SNMP 에이전트가 승인에 사용하는 네트워크 관리 스테이션(NMS) 이름에 대한 텍스트 문자열입니다. 이것은 NMS에서 에이전트에 보내는 각 메시지와 함께 커뮤니티 문자열을 보낸다는 것을 의미합니다.
할당된 작업은 get 및/또는 set입니다. SNMP 에이전트는 NMS가 데이터 교환을 위해 get, set 또는 get 및 set 작업 두 가지 모두 수행하도록 승인받았는지 여부를 확인할 수 있습니다. 커뮤니티 문자열은 SNMP 패킷으로 보낼 경우 숨겨지지 않고 ASCII 텍스트로 전송됩니다.
커뮤니티 문자열과 각 지정된 커뮤니티에 대해 허용된 작업은 관리 인터페이스에서 구성하고 관리할 수 있습니다. SNMP 에이전트 커뮤니티 설정에 대한 지침은 "SNMP 마스터 에이전트 설치"를 참조하십시오.
SNMP 설정
일반적으로 SNMP를 사용하려면 하나의 마스터 에이전트와 최소한 하나의 하위 에이전트가 시스템에 설치 및 실행되어야 합니다. 마스터 에이전트를 설치해야 하위 에이전트를 사용할 수 있습니다. "SNMP 마스터 에이전트 설치"를 참조하십시오.
SNMP 설정 절차는 시스템에 따라 다릅니다. 다음 표에서는 여러 상황에서 따라야 할 절차에 대한 개요를 제공합니다. 실제 절차에 대해서는 이 장의 뒷부분에 자세히 설명되어 있습니다.
서버 조건
수행 절차 (다음 절에 자세히 설명됨)
현재 실행 중인 원시 에이전트가 없는 경우
시작하기 전에 다음 두 가지를 확인합니다.
- 시스템에서 SNMP 에이전트(운영 체제의 원시 에이전트)를 이미 실행하고 있습니까?
- 그렇다면 원시 SNMP 에이전트에서 SMUX 통신을 지원합니까?
이 정보를 확인하는 방법에 대해서는 해당 시스템 설명서를 참조하십시오.
주 Admin Server에서 SNMP 설정을 변경하고 새 서버를 설치하거나 또는 기존 서버를 삭제한 후에는 다음 단계를 수행해야 합니다.
이 절에서는 다음 항목에 대해 설명합니다.
프록시 SNMP 에이전트(UNIX/Linux) 사용
이미 원시 에이전트가 실행 중이고 이를 Sun ONE Application Server 마스터 에이전트와 함께 동시에 사용하려는 경우 프록시 SNMP 에이전트를 사용합니다. 시작하기 전에 원시 마스터 에이전트를 중단하십시오. 자세한 내용은 해당 시스템 설명서를 참조하십시오.
주 프록시 에이전트를 사용하려면 먼저 설치한 다음 시작해야 합니다. 또한 Sun ONE Application Server 마스터 에이전트가 실행되고 있는 포트가 아닌 포트를 사용하여 원시 SNMP 마스터 에이전트를 다시 시작해야 합니다.
이 절에서는 다음 내용을 설명합니다.
프록시 SNMP 에이전트 설치
SNMP 에이전트가 시스템에 실행 중이며 원시 SNMP 데몬을 계속 사용하려는 경우에는 다음 절에 설명된 단계를 수행합니다.
- SNMP 마스터 에이전트 설치를 설치합니다. "SNMP 마스터 에이전트 설치"를 참조하십시오.
- 프록시 SNMP 에이전트를 설치 및 시작하고 원시 SNMP 데몬을 다시 시작합니다. "프록시 SNMP 에이전트(UNIX/Linux) 사용"을 참조하십시오.
- SNMP 마스터 에이전트를 시작합니다. "SNMP 마스터 에이전트 활성화 및 시작"을 참조하십시오.
- 하위 에이전트를 활성화합니다. "하위 에이전트 활성화하기"를 참조하십시오.
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 에이전트를 설치하려면 다음 작업을 수행합니다.
- root로 로그인합니다.
- SNMP 데몬(snmpd)이 포트 161에서 실행 중인지의 여부를 확인합니다.
SNMP 데몬이 실행 중이 아닌 경우 단계 4로 이동합니다.
SNMP 데몬이 실행 중인 경우에는 재시작 방법 및 지원되는 MIB 트리를 확인합니다.
- SNMP 데몬이 실행 중인 경우 해당 프로세스를 종료합니다.
- 관리 인터페이스 왼쪽 창에서 Admin Server 노드를 선택합니다.
- "모니터링" 탭을 선택하여 다음 그림에 표시된 "SNMP 에이전트 트랩" 페이지를 표시합니다.
   SNMP 에이전트 트랩 페이지
![]()
이 페이지에는 "관리자 항목" 정보가 표시됩니다.
- 네트워크 관리 소프트웨어가 실행 중인 시스템의 이름을 입력합니다.
- 네트워크 관리 시스템에서 트랩을 수신하는 트랩 포트 번호를 입력합니다. 자주 사용되는 포트는 162입니다. 트랩에 대한 자세한 내용은 "SNMP 트랩 대상"을 참조하십시오.
- 트랩에 사용하려는 커뮤니티 문자열을 입력합니다. 커뮤니티 문자열에 대한 자세한 내용은 "SNMP 에이전트 커뮤니티"를 참조하십시오.
- "확인"을 누릅니다.
- "모니터링" 탭에 있는 "SNMP 에이전트 커뮤니티" 링크를 누릅니다.
다음 그림과 같이 커뮤니티 문자열 정보가 표시됩니다.
   SNMP 에이전트 커뮤니티 페이지
![]()
- 마스터 에이전트의 커뮤니티 문자열을 입력합니다.
- 커뮤니티의 작업 수준을 선택합니다.
커뮤니티를 설정한 후 설정 사항을 편집하거나 이 페이지의 "현재 커뮤니티" 머리글 내에 표시된 버튼에서 커뮤니티를 제거할 수 있습니다.
- "확인"을 누릅니다.
- 왼쪽 창에서 "응용 프로그램 서버 인스턴스"와 서버 인스턴스에 액세스한 다음 "변경 사항 적용"을 누릅니다.
SNMP 마스터 에이전트 활성화 및 시작
마스터 에이전트 작업은 CONFIG라는 에이전트 구성 파일에 정의되며 이 파일을 수동으로 편집할 수 있습니다. SNMP 하위 에이전트를 활성화하기 전에 마스터 SNMP 에이전트를 설치해야 합니다.
이 절에서는 다음 내용을 설명합니다.
- 다른 포트에서 마스터 에이전트 시작하기
- 수동으로 SNMP 마스터 에이전트 구성하기
- 마스터 에이전트 CONFIG 파일 편집하기
- sysContact 및 sysLocation 변수 정의하기
- SNMP 마스터 에이전트 구성하기
- SNMP 마스터 에이전트 시작하기
- 하위 에이전트 활성화하기
다른 포트에서 마스터 에이전트 시작하기
관리 인터페이스는 161 포트 이외의 다른 포트에서 SNMP 마스터 에이전트를 시작하지 않습니다. 하지만 다음 단계를 수행하면 마스터 에이전트를 다른 포트에서 수동으로 시작할 수 있습니다.
- install_dir/lib/snmp/magt/CONFIG를 편집하여 원하는 포트를 지정합니다.
- 다음과 같이 시작 스크립트를 실행합니다.
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 에이전트를 구성하려면 다음 작업을 수행합니다.
- root로 로그인합니다.
- 포트 161에 실행 중인 SNMP 데몬(snmpd)이 있는지 확인합니다.
SNMP 데몬이 실행 중이면 재시작 방법과 지원되는 MIB 트리를 확인한 다음 그 프로세스를 종료합니다.
- 서버 루트 디렉토리의 lib/snmp/magt에 있는 CONFIG 파일을 편집합니다.
- (선택 사항) "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 하위 에이전트를 구성하려면 다음을 수행합니다.
- 왼쪽 창의 "Admin Server"에서 "서버 인스턴스" 노드를 선택합니다.
- 오른쪽 창에서 "모니터링" 탭을 선택합니다.
- "SNMP 하위 에이전트 구성" 링크를 선택합니다.
다음 페이지가 표시됩니다.
   SNMP 하위 에이전트 구성 페이지
![]()
- (UNIX만 해당) "마스터 호스트" 필드에 서버의 이름과 도메인을 입력합니다.
- 운영 체제 정보를 비롯한 서버에 대한 "설명"을 입력합니다.
- 서버를 담당하는 "조직"을 입력합니다.
- 서버 인스턴스의 위치를 입력합니다.
- "연락처" 필드에 서버를 담당하는 사람의 이름과 연락처 정보를 입력합니다.
- "SNMP 통계 수집 활성화"에서 "설정"을 선택합니다.
- "확인"을 누릅니다.
- 왼쪽 창에서 "응용 프로그램 서버 인스턴스"와 서버 인스턴스에 액세스한 다음 "변경 사항 적용"을 누릅니다.
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 11161CONFIG 파일을 수동으로 편집한 후에는 명령 프롬프트에 다음을 입력하여 마스터 에이전트를 수동으로 시작합니다.
# magt CONFIG INIT&
방법 2: /etc/services 파일을 편집하여 마스터 에이전트가 기본 포트 및 기본 포트가 아닌 포트에서 연결을 받아들일 수 있습니다.
Admin Server를 사용하여 SNMP 마스터 에이전트 시작하기
Admin Server를 사용하여 SNMP 마스터 에이전트를 시작하려면 다음을 수행합니다.
주 SNMP 마스터 에이전트를 시작하려면 Sun ONE Application Server에 root로 로그인해야 합니다.
- Admin Server에 로그인합니다.
- 왼쪽 창의 "Admin Server" 노드에서 "모니터링" 탭을 선택합니다.
- 오른쪽 창 상단에 있는 "SNMP 에이전트 제어" 링크를 선택합니다.
다음 페이지가 표시됩니다.
   SNMP 에이전트 제어 페이지
![]()
- "시작"을 누릅니다.
"SNMP 에이전트 제어" 페이지에서 SNMP 마스터 에이전트를 중단하고 다시 시작할 수도 있습니다.
하위 에이전트 활성화하기
Administration Server와 함께 제공되는 마스터 에이전트를 설치한 후에는 시작하기 전에 서버 인스턴스의 하위 에이전트를 활성화해야 합니다. 마스터 에이전트 설치에 대한 내용은 "SNMP 마스터 에이전트 설치"를 참조하십시오.
하위 에이전트를 사용하여 UNIX/Linux 플랫폼의 SNMP 기능을 중단할 수 있습니다. 먼저 하위 에이전트를 중단한 후 마스터 에이전트를 중단해야 합니다. 마스터 에이전트를 먼저 중단하면 하위 에이전트를 중단할 수 없을 수도 있습니다. 그런 경우에는 마스터 에이전트를 다시 시작하고 하위 에이전트를 중단한 다음 마스터 에이전트를 중단합니다.
SNMP 하위 에이전트를 활성화하려면 다음 작업을 수행합니다.
- 왼쪽 창에서 "응용 프로그램 서버 인스턴스" 노드를 확장합니다.
- 서버 인스턴스를 선택한 다음 "모니터링" 탭을 누릅니다.
- "SNMP 하위 에이전트 제어" 옵션을 선택하여 다음 그림과 같은 페이지를 표시합니다.
   SNMP 하위 에이전트 제어 페이지
![]()
이 페이지에서 SNMP 하위 에이전트를 시작, 중단 또는 재시작할 수 있습니다. 하위 에이전트의 상태는 제어 버튼 바로 위에 표시됩니다.
Windows 플랫폼에서는 Sun ONE Application Server 모니터링에 Windows SNMP 서비스가 사용됩니다. 이 서비스는 "제어판"/"관리 도구"/"서비스" 옵션에서 제어할 수 있습니다.
주 SNMP 구성을 변경한 후 "확인"을 누르고 "SNMP 하위 에이전트 제어" 페이지에서 SNMP 하위 에이전트를 다시 시작해야 합니다.