로드 밸런서 플러그인은 웹 서버의 로깅 메커니즘을 사용하여 로그 메시지를 씁니다. Application Server의 기본 로그 수준은 Sun Java System Web Server의 기본 로깅 수준(INFO), Apache Web Server의 기본 로깅 수준(WARN) 및 Microsoft IIS의 기본 로깅 수준(INFO)으로 설정됩니다. Application Server의 로그 수준 FINE, FINER 및 FINEST는 웹 서버의 DEBUG 수준에 매핑됩니다.
이 로그 메시지는 웹 서버 로그 파일에 기록되고, 스크립트를 사용하여 구문 분석하거나 스프레드시트로 가져와서 필수 메트릭을 계산할 수 있는 원시 데이터 형식입니다.
로드 밸런서 플러그인은 다음과 같은 로그 메시지 유형을 생성합니다.
멱등원(Idempotent) URL과 오류 페이지 설정을 사용할 경우 이 메시지가 기록됩니다.
멱등원(Idempotent) URL 패턴 구성 출력에는 다음 정보가 포함됩니다.
로그 수준을 FINE으로 설정한 경우:
CONFxxxx: IdempotentUrlPattern configured <url-pattern> <no-of-retries> for web-module : <web-module>
로그 수준을 SEVERE로 설정한 경우:
CONFxxxx: Duplicate entry of Idempotent URL element <url-pattern> for webModule <web-module> in loadbalancer.xml."
로그 수준을 WARN으로 설정한 경우:
CONFxxxx: Invalid IdempotentUrlPatternData <url-pattern> for web-module <web-module>
오류 페이지 URL 구성의 출력에는 다음 정보가 포함됩니다(WARN으로 설정된 로그 수준).
CONFxxxx: Invalid error-url for web-module <web-module>
요청을 로드 균형 조정하고 디스패치하는 동안 이 로그 메시지가 생성됩니다.
메소드 시작을 위한 표준 로깅 출력에는 다음 정보가 포함됩니다(FINE으로 설정된 로그 수준).
ROUTxxxx: Executing Router method <method_name>
메소드 시작을 위한 라우터 로그 출력에는 다음 정보가 포함됩니다(INFO로 설정된 로그 수준).
ROUTxxxx: Successfully Selected another ServerInstance for idempotent request <Request-URL>
런타임 로그 출력에는 다음 정보가 포함됩니다(INFO로 설정된 로그 수준).
RNTMxxxx: Retrying Idempotent <GET/POST/HEAD> Request <Request-URL>
구성 문제가 있을 경우, 예를 들어 참조하는 사용자 정의 오류 페이지가 누락된 경우 이 오류가 표시됩니다.
INFO로 설정된 로그 수준:
ROUTxxxx: Non Idempotent Request <Request-URL> cannot be retried
예를 들면 다음과 같습니다. ROUTxxxx: Non Idempotent Request http://sun.com/addToDB?x=11&abc=2 cannot be retried
FINE으로 설정된 로그 수준:
RNTMxxxx: Invalid / Missing Custom error-url / page: <error-url> for web-module: <web-module>
예를 들면 다음과 같습니다. RNTMxxxx: Invalid / Missing Custom error-url / page: myerror1xyz for web-module: test
로드 밸런서 플러그인은 다음 정보를 기록합니다.
모든 요청의 요청 시작/중지 정보
비정상 인스턴스에서 정상 인스턴스로 요청이 페일오버된 경우 페일오버된 요청 정보
모든 상태 검사 주기가 끝나는 시점의 비정상 인스턴스 목록
로드 밸런서에서 로깅이 활성화된 경우, 그리고 웹 서버 로그 수준을 DEBUG로 설정하거나 자세한 메시지를 인쇄할 경우 로드 밸런서는 HTTP 세션 아이디를 웹 서버 로그 파일에 기록합니다. 따라서 로드 밸런서 플러그인을 호스트하는 웹 서버가 DMZ에 있을 경우 프로덕션 환경에서 DEBUG 또는 유사한 로그 수준을 사용하지 마십시오.
DEBUG 로그 수준을 사용해야 할 경우 loadbalancer.xml에서 require-monitor-data 등록 정보를 false로 설정하여 로드 밸런서 로깅을 해제하십시오.
웹 서버에 로깅 옵션을 설정합니다. 절차는 웹 서버에 따라 다릅니다.
로드 밸런서 구성의 monitor 옵션을 true로 설정합니다.
로드 밸런서 구성을 처음 만들 경우 asadmin create-http-lb-config 명령을 사용하여 모니터링을 true로 설정하거나, asadmin set 명령을 사용하여 나중에 true로 설정합니다. 모니터링은 기본적으로 비활성화되어 있습니다.
로드 밸런서 플러그인 로그 메시지의 형식은 다음과 같습니다.
HTTP 요청의 시작에는 다음 정보가 포함되어 있습니다.
RequestStart Sticky(New) <req-id> <time-stamp> <URL>
타임스탬프 값은 1970년 1월 1일부터의 밀리초입니다. 예를 들면 다음과 같습니다.
RequestStart New 123456 602983 http://austen.sun.com/Webapps-simple/servlet/Example1
HTTP 요청의 끝에는 다음과 같이 RequestExit 메시지가 포함됩니다.
RequestExit Sticky(New) <req-id> <time-stamp> <URL> <listener-id> <response-time> Failure-<reason for error>(incase of a failure)
예를 들면 다음과 같습니다.
RequestExit New 123456 603001 http://austen.sun.com/Webapps-simple/servlet/Example1 http://austen:2222 18
RequestExit 메시지에서 response-time은 로드 밸런서 플러그인의 관점에서 전체 요청 반환 시간(밀리초)을 나타냅니다.
비정상 인스턴스 목록은 다음과 같습니다.
UnhealthyInstances <cluster-id> <time-stamp> <listener-id>, <listener-id>...
예를 들면 다음과 같습니다.
UnhealthyInstances cluster1 701923 http://austen:2210, http://austen:3010
페일오버된 요청 목록은 다음과 같습니다.
FailedoverRequest <req-id> <time-stamp> <URL> <session-id> <failed-over-listener-id> <unhealthy-listener-id>
예를 들면 다음과 같습니다.
FailedoverRequest 239496 705623 http://austen.sun.com/Apps/servlet/SessionTest 16dfdac3c7e80a40 http://austen:4044 http://austen:4045