Sun Java System Web Proxy Server 4.0.8 관리 설명서

9장 로그 파일 사용

다양한 방법으로 서버의 작동을 모니터할 수 있습니다. 이 장에서는 로그 파일을 기록하고 확인하여 서버를 모니터하는 방법에 대해 설명합니다. 내장 성능 모니터링 서비스 또는 SNMP 사용에 대한 자세한 내용은 10 장서버 모니터링을 참조하십시오.

이 장은 다음 내용으로 구성되어 있습니다.

로그 파일 정보

서버 로그 파일은 서버의 작동을 기록합니다. 이 로그를 서버를 모니터와 문제 해결에 사용할 수 있습니다. 서버 루트 디렉토리의 proxy-server_name/logs/errors에 있는 오류 로그 파일에는 서버에서 발생한 모든 오류가 나열됩니다. 서버 루트 디렉토리의 proxy-server_name/logs/access에 있는 액세스 로그에는 서버로의 요청과 서버로부터의 응답에 대한 정보가 기록됩니다. Proxy Server access 로그 파일에 기록된 정보를 구성할 수 있습니다. 서버 통계를 생성하려면 로그 분석기를 사용합니다. 서버 오류 및 액세스 로그를 백업하려면 해당 파일을 보관합니다.


주 –

운영 체제의 한계로 인하여 Linux의 경우 Proxy Server는 2GB를 초과하는 로그 파일을 사용할 수 없습니다. 최대 파일 크기가 초과되면 기록이 중단됩니다.


UNIX 및 Windows 플랫폼에서의 로깅

여기에서는 로그 파일이 만들어지는 방법에 대해 설명합니다. 또한 다음 항목에 대해 설명합니다.


주 –

Windows 운영 체제에서 사용하는 이벤트 로그 기법에 대한 내용은 Windows 도움말에서 Event Logging 키워드로 검색하십시오.


기본 오류 로깅

UNIX 및 Windows 플랫폼 모두의 경우 Administration Server의 로그는 관리 proxy-admserv/logs/ 디렉토리에서 수집됩니다. 서버 인스턴스의 로그는 proxy-server_name/logs/ 디렉토리에 수집됩니다.

전체 서버용 기본 로그 수준을 설정할 수 있습니다. stdoutstderr을 서버의 이벤트 로그로 재지정할 수 있으며 로그 출력을 운영 시스템의 시스템 로그로 지정할 수 있습니다. 또한 stdout 및 stderr 컨텐트를 서버의 이벤트 로그로 지정할 수 있습니다. 기본적으로 로그 메시지는 지정된 서버 로그 파일뿐 아니라 stderr로 또한 전송됩니다.

syslog를 사용하여 로깅

중앙 집중식 로깅이 필요한 안정된 운영 환경의 경우 syslog를 사용하는 것이 더 좋습니다. 진단 및 디버깅용으로 로그 출력이 자주 필요한 환경의 경우 개별 서버 인스턴스 로그가 더 관리하기 쉽습니다.

서버 인스턴스 및 Administration Server에 기록되는 데이터를 하나의 파일에 저장하면 읽고 디버깅하기 어려울 수 있기 때문에 안정적으로 실행되는 배포된 응용 프로그램에서만 syslog 마스터 로그 파일을 사용합니다.

기록된 메시지는 Solaris 데몬 응용 프로그램으로부터의 모든 기타 로그와 혼합됩니다.

syslogd 및 시스템 로그 데몬과 함께 syslog 로그 파일을 사용하면 다음 작업을 수행하도록 syslog.conf 파일을 구성할 수 있습니다.

syslogd로의 로깅은 Proxy Server로부터의 로그를 의미하며 기타 데몬 응용 프로그램이 동일한 파일에 수집되므로, 기록된 메시지는 다음 정보를 포함하여 특정 서버 인스턴스로부터의 Proxy Server 관련 메시지를 구분합니다.

LOG 요소는 server.xml 파일에서 Administration Server 및 서버 인스턴스 모두에 대해 구성할 수 있습니다.

UNIX 운영 체제에서 사용되는 syslog 로깅 메커니즘에 대한 자세한 내용은 단말기 프롬프트에서 다음 man 명령을 사용하십시오.

man syslog
man syslogd
man syslog.conf

로그 수준

다음 표에는 심각도 순서에 따라 Proxy Server의 로그 수준 및 메시지가 정의되어 있습니다.

표 9–1 로그 수준

로그 수준 

설명 

finest

finer

fine

메시지는 디버그 메시지의 상세 표시 수준을 표시합니다. finest는 최대 상세 표시를 제공합니다.

info

원래 정보를 제공하는 메시지이며, 보통 서버 구성 또는 서버 상태에 관련된 메시지입니다. 즉각적인 조치가 필요한 오류를 표시하는 메시지는 아닙니다. 

warning

경고를 표시하는 메시지입니다. 이 메지시에는 예외가 포함될 수 있습니다. 

failure

정상의 응용 프로그램 실행을 방해할 수 있는 중요한 이상을 표시하는 메시지입니다. 

config

다양한 정적 구성 정보에 관련된 메시지로 특정 구성에 관련된 문제를 해결하는데 도움이 됩니다.  

security

보안 문제를 표시하는 메시지입니다. 

catastrophe

중요한 오류를 표시하는 메시지입니다. 

로그 파일 보관

액세스 및 오류 로그 파일이 자동 보관되도록 설정할 수 있습니다. 특정 시간이나 지정된 시간이 경과하면 로그가 교체됩니다. Proxy Server는 이전 로그 파일을 저장하고 파일이 저장된 일자 및 시간이 포함된 이름을 파일에 지정합니다.

예를 들어, 액세스 로그 파일이 매시간 교체되도록 설정할 수 있습니다. Proxy Server는 파일을 "access.200505160000"이라는 이름으로 지정합니다. 여기에서 로그 파일, 년, 월, 일 및 24시간 형식 시간은 단일 문자열로 합쳐집니다. 로그 보관 파일의 형식은 설정한 로그 교체 유형에 따라 달라집니다.

Proxy Server는 파일 보관용으로 두 가지 로그 교체 유형(내부 데몬 로그 교체 및 Cron 기반 로그 교체)을제공합니다.

내부 데몬 로그 교체

내부 데몬 로그 교체는 HTTP 데몬에서 수행되며 시작 시에만 구성할 수 있습니다. 서버를 다시 시작할 필요 없이 서버가 내부적으로 로그를 교체합니다. 이 방법으로 교체한 로그는 다음의 형식으로 저장됩니다.

access.<YYYY><MM><DD><HHMM>

errors.<YYYY><MM><DD><HHMM>

로그 파일을 교체하고 새 로그 파일을 시작할 기준으로 사용할 시간을 지정할 수 있습니다. 예를 들어, 교체 시작 시간이 오전 12:00이고 교체 간격이 1440분(1일)인 경우 현재 시간과 관계 없이 변경 사항을 저장 및 적용하는 즉시 새 로그 파일이 만들어집니다. 로그 파일은 매일 오전 12:00에 교체되며 액세스 로그 파일은 오전 12:00으로 스탬프되고 access.200505172400으로 저장됩니다. 마찬가지로 간격을 240분(4시간)으로 설정하고 이 4시간 간격이 오전 12:00에 시작하면 액세스 로그 파일에는 오전 12:00에서 오전 4:00까지, 오전 4:00에서 오전 8:00까지 등의 순서로 정보가 수집됩니다.

로그 교체를 사용하는 경우 로그 교체는 서버가 시작할 때 시작됩니다. 첫 로그 파일은 현재 시간부터 다음 교체 시간까지 정보를 수집합니다. 앞의 예에서 시작 시간을 오전 12:00으로, 교체 간격을 240분으로 설정하며 현재 시간이 오전 6:00이라면, 교체의 첫 번째 로그 파일에는 오전 6:00에서 오전 8:00까지 수집된 정보가 포함되며 다음 로그 파일에는 오전 8:00에서 오후 12:00(정오)까지의 정보가 포함됩니다.

스케줄러 기반 로그 교체

스케줄러 기반 로그 교체는 server-root/proxy- server_name/config/ 디렉토리의 server.xml 파일에 저장된 시간과 일자를 기준으로 수행됩니다. 이 방법을 사용하면 로그 파일을 즉시 보관하거나 특정 일자의 특정 시간에 서버가 로그 파일을 보관하도록 할 수 있습니다. 서버의 스케줄러 구성 옵션은 server-root/proxy- server_name/config/ 디렉토리의 server.xml에 저장됩니다. 스케줄러 기반 방법으로 교체된 로그는 다음의 형식으로 저장됩니다.

<original_filename>.<YYYY><MM><DD><HHMM>

예를 들어, access가 오후 4:30에 교체되면 access.200505171630 이 됩니다.

로그 교체는 서버가 시작할 때 초기화됩니다. 교체를 사용하는 경우 Proxy Server는 타임스탬프 액세스 로그 파일을 만들고 서버가 시작할 때 교체가 시작됩니다.

교체가 시작되면 Proxy Server는 액세스 또는 오류 로그 파일에 기록해야 할 요청 또는 오류가 발생하는 경우 새로운 타임스탬프 로그 파일을 만들며 또한 이 작업은 미리 설정된 "다음 교체 시간"이 경과하면 수행됩니다.


주 –

로그 분석기를 실행하기 전에 서버 로그를 보관합니다.


로그 파일을 보관하고 내부 데몬 방법 또는 스케줄러 기반 방법을 사용할 것인지 지정하려면 Server Manager의 Archive Log Files 페이지를 사용합니다.

액세스 로그 기본 설정 지정

설치하는 동안 access라는 이름의 액세스 로그 파일이 해당 서버용으로 만들어집니다. 액세스 기록 여부, 기록에 사용할 형식 및 자원에 액세스할 때 서버가 클라이언트의 도메인 이름을 조회할 것인지 여부를 지정하여 모든 자원에 대한 액세스 로깅을 사용자 정의할 수 있습니다.

Server Manager의 Set Access Log Preferences 페이지를 사용하여 로깅 기본 설정을 지정하거나 obj.conf 파일에서 직접 지시문을 구성할 수 있습니다. obj.conf에서 서버는 flex-init 함수를 호출하여 유연한 로깅 시스템을 초기화하고 flex-log 함수를 호출하여 요청 관련 데이터를 유연한 로그 형식으로 기록합니다. 공통 로그 파일 형식을 사용하여 요청을 기록하려면 서버가 init-clf를 호출하여 obj.conf에 사용되는 공통 로그 하위 시스템을 초기화하고 common-log를 호출하여 요청에 대한 데이터를 대부분의 HTTP 서버에서 사용되는 공통 로그 형식으로 기록합니다.

자원용 액세스 로그가 일단 만들어지면 해당 로그를 보관하거나 해당 자원용으로 새 액세스 로그 파일을 만들지 않는 한, 이 로그를 변경할 수 없습니다.

표 9–2 Administration Server용 로그 파일 형식

로그 형식 항목 

설명 

Client Hostname

액세스를 요청하는 클라이언트의 호스트 이름(또는 DNS를 사용하지 않는 경우 IP 주소). 

Authenticate User Name

인증이 필요한 경우 액세스 로그에 인증된 사용자 이름을 나열할 수 있습니다. 

System Date

클라이언트 요청의 일자 및 시간 

Full Request

클라이언트가 수행한 그대로의 요청 

상태

서버가 클라이언트에게 반환한 상태 코드 

Content Length

클라이언트에게 송신한 문서의 길이(바이트 단위) 

HTTP Header, “referer”

참조자는 클라이언트가 현재 액세스한 페이지의 상위 페이지를 지정합니다. 예를 들어, 사용자가 텍스트 검색 쿼리의 결과를 보려는 경우 참조자는 사용자가 텍스트 검색 엔진에 액세스한 페이지가 됩니다. 서버는 참조자를 통해 역방향 추적 링크 목록을 만듭니다. 

HTTP Header, "user-agent"

클라이언트가 사용하는 브라우저 유형, 버전 및 실행되는 운영 체제가 포함된 사용자 에이전트 정보. 이 정보는 클라이언트가 서버에 보내는 HTTP 헤더 정보의 User-agent 필드에서 제공합니다. 

Method

GET, PUT 또는 POST와 같은 HTTP 요청 방법이 사용됩니다. 

URI

Universal Resource Identifier. 서버의 자원 위치입니다. 예를 들어, http://www.a.com:8080/special/docs의 경우 URI는 special/docs입니다.

Query String Of The URI

URI의 물음표 뒤에 있는 텍스트. 예를 들어, http://www.a.com:8080/special/docs?find_this 의 경우 URI의 쿼리 문자열은 find_this입니다.

Protocol

사용된 전송 프로토콜 및 버전 

기존 로그 파일의 형식을 변경하는 경우 우선 기존 로그 파일을 삭제/이름 변경하거나 다른 파일 이름을 사용해야 합니다.

ProcedureAdministration Server용 액세스 로그 기본 설정을 지정하는 방법

  1. Administration Server에 액세스하고 Preferences 탭을 누릅니다.

  2. Set Access Log Preferences 링크를 누릅니다.

    Set Access Log Preferences 페이지가 표시됩니다.

  3. 드롭다운 목록에서 자원을 선택하거나 Regular Expression 버튼을 눌러 정규 표현식을 입력하고 OK를 누릅니다.

  4. 클라이언트 액세스를 기록할지 여부를 지정합니다.

    이 설정을 사용하려면 DNS(Domain Name Service)를 활성화해야 합니다.

  5. 액세스 로그 파일의 절대 경로를 지정합니다.

    기본적으로 로그 파일은 서버 루트의 logs 디렉토리에 저장됩니다. 부분적인 경로를 지정하면 서버는 이 경로를 서버 루트의 logs 디렉토리에 대한 상대 경로로 가정합니다.

    전체 서버를 편집하는 경우 이 필드의 기본값은 $accesslog이며, 이 변수는 구성 파일에서 해당 서버의 액세스 로그 파일을 나타냅니다.

  6. 액세스 로그에 서버에 액세스하는 시스템의 IP 주소를 기록할 것인지 또는 도메인 이름을 기록할 것인지 선택합니다.

  7. 액세스 로그에 사용할 로그 파일 형식의 유형을 선택합니다.

    다음 옵션을 사용할 수 있습니다.

    • Use Common LogFile Format. 클라이언트의 호스트 이름, 인증된 사용자 이름, 요청 일자 및 시간, HTTP 헤더, 클라이언트에 반환된 상태 코드 및 클라이언트에 전송된 문서의 컨텐트 길이가 포함됩니다.

    • Only Log.기록되는 정보를 확인할 수 있습니다. 표 9–2에 나열된 유연한 로그 형식 항목 중에서 선택할 수 있습니다.

    • 사용자 정의 형식을 선택한 경우 Custom Format 필드에 입력합니다.

  8. OK를 누릅니다.

  9. Restart Required를 누릅니다.

    Apply Changes 페이지가 표시됩니다.

  10. Restart Proxy Server 버튼을 눌러 변경 사항을 적용합니다.

서버 인스턴스에 대한 액세스 로그 기본 설정 지정

서버 인스턴스에 대한 액세스 로그 기본 설정을 지정하는 데 사용할 수 있는 유연한 로그 형식은 다음 표와 같습니다.

표 9–3 서버 인스턴스에 대한 로그 파일 형식

로그 형식 항목 

설명 

Client Hostname

액세스를 요청하는 클라이언트의 호스트 이름(또는 DNS를 사용하지 않는 경우 IP 주소). 

Authenticate User Name

인증이 필요한 경우 액세스 로그에 인증된 아이디 목록이 표시되도록 할 수 있습니다. 

System Date

클라이언트 요청의 일자 및 시간 

Full Request

클라이언트가 수행한 그대로의 요청 

Status

서버가 클라이언트에게 반환한 상태 코드 

Content Length

클라이언트에게 송신한 문서의 길이(바이트 단위) 

HTTP Header, “referer”

참조자는 클라이언트가 현재 액세스한 페이지의 상위 페이지를 지정합니다. 예를 들어, 사용자가 텍스트 검색 쿼리의 결과를 보려는 경우 참조자는 사용자가 텍스트 검색 엔진에 액세스한 페이지가 됩니다. 서버는 참조자를 통해 역방향 추적 링크 목록을 만듭니다. 

HTTP Header, "user-agent"

클라이언트가 사용하는 브라우저 유형, 버전 및 실행되는 운영 체제가 포함된 사용자 에이전트 정보. 이 정보는 클라이언트가 서버에 보내는 HTTP 헤더 정보의 User-agent 필드에서 제공합니다. 

Method

GET, PUT 또는 POST와 같은 HTTP 요청 방법이 사용됩니다. 

URI

Universal Resource Identifier. 서버의 자원 위치입니다. 예를 들어, http://www.a.com:8080/special/docs의 경우 URI는 special/docs입니다.

Query String Of The URI

URI의 물음표 뒤에 있는 텍스트. 예를 들어, http://www.a.com:8080/special/docs?find_this 의 경우 URI의 쿼리 문자열은 find_this입니다.

Protocol

사용된 전송 프로토콜 및 버전 

Cache Finish Status

이 필드는 최신 검사를 통해 캐시 파일이 쓰여졌는지, 새로 고쳐졌는지 또는 반환되었는지 여부를 지정합니다. 

cs 필드에는 다음과 같은 값 중 하나를 가질 수 있습니다. 

-는 자원을 캐시할 수 없음을 나타냅니다. 

WRITTEN은 캐시 파일이 생성되었음을 나타냅니다. 

REFRESHED는 캐시 파일이 업데이트되었거나 새로 고쳐졌음을 나타냅니다. 

NO-CHECK는 캐시 파일이 최신 검사 없이 반환되었음을 나타냅니다. 

UP-TO-DATE는 캐시 파일이 최신 검사 수행 후 반환되었음을 나타냅니다.  

HOST-NOT-AVAILABLE은 원격 서버에서 최신 검사를 수행할 수 없기 때문에 검사를 수행하지 않고 캐시 파일을 반환했음을 나타냅니다. 

CL-MISMATCH는 컨텐트 길이가 일치하지 않으므로 캐시 파일 쓰기가 중단되었음을 나타냅니다.  

ABORTED는 특별한 이유로 캐싱이 중단되었음을 나타냅니다. 예를 들어 유효한 Last-Modified 헤더가 없는 것일 수 있습니다. 

Remote Server Finish Status

이 필드는 원격 서버에 대한 요청이 성공적으로 완료되었는지, 브라우저에서 클라이언트가 Stop 버튼을 클릭하여 중단했는지 또는 오류 조건에 의해 중지되었는지 여부를 지정합니다. 

Status Code From Server

서버에서 반환된 상태 코드입니다. 

Route To Proxy (PROXY, SOCKS, DIRECT)

자원을 검색하는 데 사용된 라우팅입니다. 프록시 또는 SOCKS 서버를 통해 문서를 직접 검색할 수 있습니다. 

Transfer Time

전송 시간 길이(초 또는 밀리초)입니다. 

Header-length From Server Response

서버 응답의 헤더 길이입니다. 

Request Header Size From Proxy To Server

프록시에서 서버로의 요청 헤더 크기입니다. 

Response Header Size Sent To Client.

클라이언트에 전송된 응답 헤더의 크기입니다. 

Request Header Size Received From Client

클라이언트에서 수신된 요청 헤더의 크기입니다. 

Content-length From Proxy To Server Request.

프록시에서 서버로 전송된 문서의 길이(바이트)입니다. 

Content-length Received From Client

클라이언트의 문서 길이(바이트)입니다. 

Content-length From Server Response

서버의 문서 길이(바이트)입니다. 

Unverified User From Client

인증 시 원격 서버에 제공된 사용자 이름입니다. 

Procedure서버 인스턴스에 대한 액세스 로그 기본 설정을 지정하는 방법

  1. Server Manager에 액세스하고 Server Status 탭을 누릅니다.

  2. Set Access Log Preferences 링크를 누릅니다.

    Set Access Log Preferences 페이지가 표시됩니다.

  3. 드롭다운 목록에서 자원을 선택하거나 Regular Expression 버튼을 눌러 정규 표현식을 입력하고 OK를 누릅니다.

  4. 클라이언트 액세스를 기록할지 여부를 지정합니다.

    이 설정을 사용하려면 DNS(Domain Name Service)를 활성화해야 합니다.

  5. 액세스 로그 파일의 절대 경로를 지정합니다.

    로그 파일은 기본적으로 서버 루트의 logs 디렉토리에 보관됩니다. 부분적인 경로를 지정하면 서버는 이 경로를 서버 루트의 logs 디렉토리에 대한 상대 경로로 가정합니다.

    전체 서버를 편집하는 경우 이 필드의 기본값은 $accesslog이며, 이 변수는 구성 파일에서 해당 서버의 액세스 로그 파일을 나타냅니다.

  6. 액세스 로그에 서버에 액세스하는 시스템의 IP 주소를 기록할 것인지 또는 도메인 이름을 기록할 것인지 선택합니다.

  7. 다음 중 로그 파일의 형식을 선택합니다. Common, Extended, Extended-2, 지정된 정보만("Only log" 선택 버튼) 또는 custom.

    Only log를 누르면 다음과 같은 유연한 로그 형식 항목을 사용할 수 있습니다.

  8. 액세스 로그에 사용할 로그 파일 형식의 유형을 선택합니다.

    서버 액세스 로그는 Common Logfile Format, Extended Logfile Format, Extended2 Logfile Format, 유연한 로그 형식 또는 사용자 정의 형식을 사용할 수 있습니다. Common LogFile Format은 흔히 지원되는 형식으로 서버에 대한 고정된 양의 정보를 제공합니다. 유연한 로그 형식을 사용하면 기록할 내용을 Proxy Server에서 선택할 수 있습니다. 사용자 정의 형식의 경우 로그할 사항을 조정하는 매개 변수 블록을 사용합니다.

    • Use Common LogFile Format. 클라이언트의 호스트 이름, 인증된 사용자 이름, 요청 일자 및 시간, HTTP 헤더, 클라이언트에 반환된 상태 코드 및 클라이언트에 전송된 문서의 컨텐트 길이가 포함됩니다.

    • Use Extended LogFile Format. 공통 로그 파일 형식의 모든 필드뿐만 아니라 원격 상태, 프록시-클라이언트 컨텐트 길이, 원격-프록시 컨텐트 길이, 프록시-원격 컨텐트 길이, 클라이언트-프록시 헤더 길이, 프록시-클라이언트 헤더 길이, 프록시-원격 헤더 길이, 원격-프록시 헤더 길이 및 전송 시간과 같은 일부 추가 필드를 포함합니다.

    • Use Extended2 LogFile Format. 확장된 로그 파일 형식의 모든 필드뿐만 아니라 클라이언트 상태, 서버 상태, 원격 상태, 캐시 완료 상태 및 실제 라우팅과 같은 일부 추가 필드를 포함합니다.

    • Only Log.로그할 정보를 선택할 수 있습니다. 표 9–3에 나열된 유연한 로그 형식 항목에서 선택할 수 있습니다.

    • 사용자 정의 형식을 선택한 경우 Custom Format 필드에 입력합니다.

  9. 특정 호스트 이름 또는 IP 주소에서 클라이언트 액세스를 기록하지 않으려면 호스트 이름 및 IP Addresses 필드에 입력합니다.

    액세스를 기록하지 않을 호스트의 와일드카드 패턴을 입력합니다. 예를 들어, *.example.com은 도메인이 example.com인 사용자의 액세스를 기록하지 않습니다. 호스트 이름, IP 주소 또는 둘 모두에 대한 와일드카드 패턴을 입력할 수 있습니다.

  10. 로그 파일에 형식 문자열을 포함할지 여부를 선택합니다.

    Proxy Server의 로그 분석기를 사용하는 경우 형식 문자열이 포함되어야 합니다. 타사 분석기를 사용하는 경우 로그 파일에 형식 문자열을 포함하지 않을 수 있습니다.

  11. OK를 누릅니다.

  12. Restart Required를 누릅니다.

    Apply Changes 페이지가 나타납니다.

  13. Restart Proxy Server 버튼을 눌러 변경 사항을 적용합니다.

용이한 쿠키 로깅

Proxy Server에서는 flexlog 기능을 사용하여 특정 쿠키를 쉽게 기록할 수 있습니다. 구성 파일 obj.conf에서 flex-log 하위 시스템을 초기화하는 줄에 Req->headers.cookie.cookie_name을 추가합니다. 이렇게 하면 쿠키 변수가 요청의 헤더에 있는 경우 쿠키 변수 cookie_name의 값을 기록하며, 쿠키 변수가 없는 경우에는 "-"을 기록합니다.

오류 로깅 옵션 설정

서버의 오류 로그에 기록할 정보를 구성할 수 있습니다.

Procedure오류 로깅 옵션 설정 방법

  1. Administration Server에서 오류 로깅 옵션을 설정하려면 Preferences 탭을 선택한 다음 Set Error Log Preferences 링크를 누릅니다.

    Server Manager에서 서버 인스턴스에 대한 오류 로깅 옵션을 설정하려면 Server Status 탭을 선택한 다음 Set Error Log Preferences 링크를 누릅니다.

  2. Error Log File Name 필드에 서버의 메시지를 저장한 파일을 지정합니다.

  3. Log Level 드롭다운 목록에서 오류 로그에 기록할 수 있는 정보의 양을 지정합니다. 다음 옵션을 사용할 수 있습니다.

  4. stdout 출력을 오류 로그로 리디렉션하려면 Log Stdout을 선택합니다.

  5. stderr 출력을 오류 로그로 리디렉션하려면 Log Stderr을 선택합니다.

  6. 메시지를 콘솔로 리디렉션하려면 Log To Console을 선택합니다.

  7. UNIX syslog 서비스 또는 Windows 이벤트 로깅을 사용하여 로그를 생성하고 관리하려면 Use System Logging을 선택합니다.

  8. OK를 누릅니다.

  9. Restart Required를 누릅니다.

    Apply Changes 페이지가 나타납니다.

  10. Restart Proxy Server 버튼을 눌러 변경 사항을 적용합니다.

LOG 요소 구성

다음 표에는 server.xml 파일에서 구성할 수 있는 LOG 요소의 속성이 정리되어 있습니다.

표 9–4 LOG 속성

속성 

Default 

설명 

file

errors

서버에서 메시지를 저장하는 파일을 지정합니다. 

loglevel

info

다른 요소가 오류 로그에 기록한 메시지의 기본 유형을 제어합니다. 최고에서 최저까지 허용되는 값은 다음과 같습니다. 

finest, fine, fine, info, warning, failure, config, security, and catastrophe.

logstdout

true

(선택 사항) true인 경우 stdout 출력을 오류 로그로 리디렉션합니다. 유효한 값은 on, off, yes, no, 1, 0, true, false입니다.

logstderr

true

(선택 사항) true인 경우 stderr 출력을 오류 로그로 리디렉션합니다. 유효한 값은 on, off, yes, no, 1, 0, true, false입니다.

logtoconsole

true

(선택, UNIX 전용) true인 경우 로그 메시지를 콘솔로 리디렉션합니다.

createconsole

false

(선택, Windows 전용) true인 경우 stderr 출력용 Windows 콘솔을 만듭니다. 유효한 값은 on, off, yes, no, 1, 0, true, false입니다.

usesyslog

false

(선택 사항) true인 경우 UNIX syslog 서비스 또는 Windows 이벤트 로깅을 사용하여 로그를 생성하고 관리합니다. 유효한 값은 on, off, yes, no, 1, 0, true, false입니다.

액세스 로그 파일 보기

서버의 활성 액세스 로그 파일 및 보관된 액세스 로그 파일을 볼 수 있습니다.

Administration Server에서 Administration Server의 액세스 로그를 보려면 Preference 탭을 선택한 후 View Access Log 링크를 선택합니다.

Server Manager에서 서버 인스턴스의 액세스 로그를 보려면 Server Status 탭을 선택한 다음 View Access Log 링크를 누릅니다.

다음 예에서는 Common Logfile Format의 액세스 로그를 표시합니다.


198.18.17.222 - - [20/May/2005:14:15:49 +0530] 
"GET http://www.example.com/ HTTP/1.1" 504 622 198.18.17.222 - abc 
[20/May/2005:14:16:09 +0530] "GET http://www.test.com/report.zip HTTP/1.1" 
504 630
      

다음 표에서는 이 샘플 액세스 로그의 마지막 줄에 대해 설명합니다.

액세스 로그 필드 

예 

클라이언트의 호스트 이름 또는 IP 주소 

198.18.17.222(이 경우 프록시 서버에서 DNS 조회에 대한 설정이 비활성화되어 있기 때문에 클라이언트의 IP 주소가 표시됩니다. DNS 조회가 활성화된 경우 클라이언트의 호스트 이름이 나타납니다.)

IFC 931 정보 

- (RFC 931 ID는 구현되지 않음) 

사용자 이름 

abc(클라이언트가 인증용으로 입력한 사용자 이름)

요청 일자/시간 

20/May/2005:14:16:09 +0530 

요청 

GET 

프로토콜 

HTTP/1.1 

상태 코드 

504 

전송된 바이트 

630 

오류 로그 파일 보기

오류 로그 파일에는 로그 파일이 만들어진 이후 서버에서 발생한 오류가 기록되어 있습니다. 또한 파일에는 서버를 시작한 시간과 같은 서버에 대한 정보 메시지가 포함되어 있습니다. 성공하지 못한 사용자 인증 또한 오류 로그에 기록됩니다. 오류 로그를 사용하여 끊어진 URL 경로나 누락된 파일을 찾을 수 있습니다.

Administration Server에서 Administration Server의 오류 로그 파일을 보려면 Preferences 탭을 선택하고 View Error Log 링크를 누릅니다.

서버 인스턴스의 오류 로그 파일을 보려면 Server Manager에서 Server Status 탭을 선택하고 View Error Log 링크를 누릅니다.

다음 오류 로그 예에는 다음과 같은 세 가지 항목이 있습니다.


20/May/2005:14:08:37] info ( 6141): CORE1116: Sun Java System Web Proxy 
Server 4.0 B05/10/2005 01:26 20/May/2005:14:08:37] info ( 6142): CORE3274: 
successful server startup 20/May/2005:14:08:37] security (23246): 
for host 198.18.148.89 trying to GET /, deny-service reports:
 denying service of /

      

로그 분석기로 작업

server-root/extras/log_anly 디렉토리에는 Server Manager 사용자 인터페이스를 통해 실행할 수 있는 로그 분석 도구가 있습니다. 이 로그 분석기는 오직 공통 로그 형식의 파일만 분석합니다. 도구의 매개 변수를 설명하는 log_anly 디렉토리 내의 HTML 문서입니다. server-install/extras/ flexanlg 디렉토리에는 유연한 로그 파일 형식용 명령줄 로그 분석기가 있습니다. 그러나 Server Manager는 선택한 로그 파일 형식과 관계 없이 기본적으로 유연한 로그 파일 보고 도구를 사용합니다.

로그 분석기를 사용하여 작동 요약, 가장 많이 액세스된 URL, 하루 중 서버에 대한 액세스가 가장 많은 시간, 등의 기본 서버에 대한 통계를 생성합니다. 또한 Proxy Server 또는 명령줄에서 로그 분석기를 실행할 수 있습니다.

flexanlg 명령줄 유틸리티를 실행하기 전에 반드시 라이브러리 경로를 설정해야 합니다. 다양한 플랫폼용 설정은 다음과 같습니다.

Solaris 및 Linux:

LD_LIBRARY_PATH=server-root/bin/proxy/lib:$LD_LIBRARY_PATH

AIX:

LIBPATH=server-root/bin/proxy/lib:$LIBPATH

HP-UX:

SHLIB_PATH=server-root/bin/proxy/lib:$SHLIB_PATH

Windows:

path=server-root\\bin\\proxy\\bin;%path%

주 –

로그 분석기를 실행하기 전에 서버 로그를 보관해야 합니다. 서버 로그 보관에 대한 자세한 내용은 로그 파일 보관을 참조하십시오.


또한 라이브러리 경로를 설정하는 대신 server-root/proxy-serverid 디렉토리로 변경한 후 명령 프롬프트에서 ./start -shell을 입력할 수 있습니다.

Extended 또는 Extended-2 로깅 형식을 사용하는 경우 로그 분석기는 보고하도록 지정한 정보 외에도 출력 파일 내에 여러 보고서를 생성합니다. 다음 절에서는 이러한 보고서에 대해 설명합니다.

전송 시간 분산 보고서

전송 시간 분산 보고서는 프록시 서버가 요청을 전송하는 데 걸린 시간을 표시합니다. 이 보고서에는 서비스 시간 및 완료율(%)을 기준으로 분류된 정보가 표시됩니다. 다음은 전송 시간 분산 보고서의 예입니다.

서비스 시간 기준:

< 1 sec [644%] ........................................

< 2 sec [33.3%] ....................

< 3 sec [ 2.7%] .

< 4 sec [ 1.7%] .

< 5 sec [ 0.6%]

< 6 sec [ 0.4%]

< 7 sec [ 0.2%]

< 8 sec [ 0.0%]

< 9 sec [ 0.0%]

완료율(%) 기준:

< 1 sec [64.4%] ........................................

< 2 sec [97.7%] ....................................

< 3 sec [100.4%]..............................................

데이터 흐름 보고서

데이터 흐름 보고서는 클라이언트에서 프록시, 프록시에서 클라이언트, 프록시에서 원격 서버 및 원격 서버에서 프록시로의 데이터 흐름(전송된 바이트 수)을 표시합니다. 보고서에는 이러한 각 시나리오에 대해 헤더 및 컨텐트 형식으로 전송된 데이터 양이 표시됩니다. 또한 데이터 흐름 보고서에는 캐시에서 클라이언트로의 데이터 흐름이 표시됩니다. 다음은 데이터 흐름 보고서의 예입니다.

 
Headers
Content
Total
- Client -> Proxy.........
0 MB
0 MB
0 MB
- Proxy  -> Client...........
0 MB
2 MB
3 MB
- Proxy  -> Remote...........
0 MB
0 MB
0 MB
- Remote -> Proxy..........
0 MB
2 MB
2 MB
       
Approx:
     
- Cache  -> Client...........
0 MB
0 MB
0 MB

상태 코드 보고서

상태 코드 보고서는 프록시 서버가 원격 서버에서 수신하고 클라이언트로 전송한 상태 코드와 상태 코드 수를 표시합니다. 또한 상태 코드 보고서는 이러한 모든 상태 코드에 대한 설명을 제공합니다. 다음은 상태 코드 보고서의 예입니다.

Code
-From remote-
 
-To client-
-Explanation-
200
338  [70.7%]
352  [73.6%]
OK
302
33  [ 6.9%]
36  [ 7.5%]
Redirect
304
90  [18.8%]
99  [20.7%]
Not modified
404
3  [ 0.6%]
3  [ 0.6%]
Not found
407
 
5  [ 1.0%]
Proxy authorization required
500
 
2  [ 0.4%]
Internal server error
504
 
6  [ 1.3%]
Gateway timeout

요청 및 연결 보고서

요청 및 연결 보고서는 프록시 서버가 클라이언트에서 수신한 요청 수, 원격 서버에 대한 프록시 연결 수(초기 검색, 최신 상태 검사 및 새로 고침) 및 캐시된 문서를 사용하여 프록시 서버가 회피한 원격 연결 수를 표시합니다. 다음은 요청 및 연결 보고서의 예입니다.

- Total requests.............     478
- Remote connections.........     439
- Avoided remote connects....      39 [ 8.2%]

캐시 성능 보고서

캐시 성능 보고서는 클라이언트 캐시, 프록시 서버 캐시 및 직접 연결의 성능을 표시합니다.

클라이언트 캐시

클라이언트 캐시 적중은 클라이언트가 문서에서 최신 상태 검사를 수행하고 원격 서버가 클라이언트 문서가 수정되지 않았음을 알려 주는 304 메시지를 반환하는 경우 발생합니다. 클라이언트에 의해 시작된 최신 상태 검사는 클라이언트의 캐시 내에 고유한 문서 사본이 있음을 표시합니다.

클라이언트 캐시의 경우 보고서는 다음을 표시합니다.

프록시 캐시

프록시 캐시 적중은 클라이언트가 프록시 서버에서 문서를 요청하고 프록시 서버의 캐시에 이미 문서가 있는 경우 발생합니다. 프록시 서버의 캐시 적중 횟수의 경우 보고서는 다음을 표시합니다.

결합된 프록시 캐시 적중 횟수

결합된 프록시 캐시 적중 횟수의 경우 보고서는 총 프록시 서버 캐시 적중 횟수 및 이러한 요청을 처리하는 데 소요된 평균 시간을 표시합니다.

직접 트랜잭션

직접 트랜잭션은 캐시 적중 횟수 없이 원격 서버에서 프록시 서버를 통해 클라이언트로 직접 이동하는 트랜잭션입니다. 직접 트랜잭션의 경우 보고서는 다음을 표시합니다.

다음은 캐시 성능 보고서의 예입니다.


                  
CLIENT CACHE:
- Client & proxy cache hits... 86 reqs [18.0%] 0.21 sec/req- Proxy shortcut 
no-check........ 13 reqs [ 2.7%] 0.00 sec/req- Client cache hits only.....
- TOTAL client cache hits.......... 99 reqs [20.7%] 0.18 sec/req

                  PROXY CACHE:
- Proxy cache hits w/check........ 4 reqs [ 0.8%] 0.50 sec/req- Proxy cache 
hits w/o check.. 10 reqs [ 2.1%] 0.00 sec/req- Pure proxy cache hits...... 
14 reqs [ 2.9%] 0.14 sec/req

                  PROXY CACHE HITS COMBINED:
- TOTAL proxy cache hits....... 113 reqs [23.6%] 0.18 sec/req

                  DIRECT TRANSACTIONS:
- Retrieved documents..313 reqs [65.5%]  0.90 sec/req 2 MB- Other 
transactions.. 52 reqs [10.9%] 7.79 sec/req- TOTAL direct traffic..
365 reqs [76.4%] 1.88 sec/req 2 MB

               

전송 시간 보고서

전송 시간 보고서는 프록시 서버에서 트랜잭션을 처리하는 데 소요한 시간 정보를 표시합니다. 이 보고서에서는 다음 범주에 대한 값을 표시합니다.

Average transaction time:기록된 모든 전송 시간의 평균.

Average transfer time without caching:캐시에서 반환되지 않은 트랜잭션(원격 서버에서 200 응답 반환)의 평균 전송 시간.

Average with caching, without errors:모든 비오류 트랜잭션(2xx 및 3xx 상태 코드)에 대한 평균 전송 시간.

Average transfer time improvement:오류 없이 캐시된 평균 전송 시간을 평균 트랜잭션 시간에서 제한 값.

다음은 전송 시간 보고서의 예입니다.

- Average transaction time... 1.48 sec/req- Ave xfer time w/o caching.. 
	0.90 sec/req- Ave w/caching, w/o errors.. 0.71 sec/req - Ave xfer 
	time improvement.. 0.19 sec/req

시간별 작동 보고서

각 분석된 시간에 대해 시간별 작동 보고서는 다음을 표시합니다.

ProcedureServer Manager에서 로그 분석기를 실행하는 방법

  1. Server Manager에 액세스하고 Server Status 탭을 누릅니다.

  2. Generate Report 링크를 누릅니다.

    Generate Report 페이지가 표시됩니다.

  3. 서버 이름을 입력합니다. 이 이름은 생성된 보고서에 나타납니다.

  4. 보고서를 HTML 또는 ASCII 형식으로 표시할지 여부를 선택합니다.

  5. 분석할 로그 파일을 선택합니다.

  6. 결과를 파일로 저장하려면 Output File 필드에 출력 파일 이름을 입력합니다.

    필드를 비워두면 보고서 결과가 화면으로 출력됩니다. 로그 파일이 큰 경우 출력을 화면에 표시하는 데 시간이 많이 걸릴 수 있으므로 결과를 저장해야 합니다.

  7. 특정 서버 통계에 대한 총계 생성 여부를 선택합니다.

    다음 총계를 생성할 수 있습니다.

    • Total Hits- 액세스 로깅을 활성화한 이후 서버가 수신한 총 적중 횟수.

    • 304 (Not Modified) Status Codes- 페이지를 반환하는 서버가 아니라 요청한 문서의 로컬 복사본이 사용된 횟수.

    • 302 (Redirects) Status Codes- 원래 URL이 이동하여 서버가 새 URL로 리디렉션한 횟수.

    • 404 (Not Found) Status Codes- 서버가 요청된 문서를 찾을 수 없거나 클라이언트가 인증된 사용자가 아니므로 문서를 서비스하지 않은 횟수.

    • 500 (Server Error) Status Codes- 서버 관련 오류가 발생한 횟수.

    • Total Unique URLs- 액세스 로그를 활성화한 후 액세스된 고유 URL의 수.

    • Total Unique Hosts- 액세스 로그를 활성화한 후 서버에 액세스한 고유 호스트의 수.

    • Total Kilobytes Transferred- 액세스 로그를 활성화한 후부터 서버가 전송한 데이터 양(KB).

  8. 일반 통계 생성 여부를 선택합니다. 일반 통계를 생성하는 경우 다음 옵션을 선택합니다.

    • Find Top Number Seconds Of Log- 가장 최신 초 단위 수의 정보를 기반으로 통계를 생성합니다.

    • Find Top Number Minutes Of Log-

    • 가장 최신 분 단위 수의 정보를 기반으로 통계를 생성합니다.

    • Find Top Number Hours Of Log- 가장 최신 시간 단위 수의 정보를 기반으로 통계를 생성합니다.

    • Find Number Users (If Logged)- 사용자 수의 정보를 기반으로 통계를 생성합니다.

    • Find Top Number Referers (If Logged)- 참조자 수의 정보를 기반으로 통계를 생성합니다.

    • Find Top Number User Agents (If Logged)- 브라우저 유형, 버전 및 운영 체제 등의 사용자 에이전트에 대한 정보를 기반으로 통계를 생성합니다.

    • Find Top Number Miscellaneous Logged Items (If Logged)- 사용자 수의 정보를 기반으로 통계를 생성합니다.

  9. 목록 생성 여부를 선택합니다.

    목록을 생성하는 경우 목록을 생성하려는 대상 항목을 다음 목록에서 지정합니다.

    • URLs Accessed- 액세스한 URL을 표시합니다.

    • Number Most Commonly Accessed URL- 가장 많이 액세스된 URL 또는 지정된 횟수보다 많이 액세스된 URL을 표시합니다.

    • URLs That Were Accessed More Than Number Times- 지정된 횟수보다 많이 액세스된 URL을 표시합니다.

    • Hosts Accessing Your Server- Proxy Server에 액세스한 호스트를 표시합니다.

    • Number Hosts Most Often Accessing Your Server- 서버에 가장 자주 액세스한 호스트 또는 지정된 횟수보다 많이 서버에 액세스한 호스트를 표시합니다.

    • Hosts That Accessed Your Server More Than Number Times- 지정된 횟수보다 많이 서버에 액세스한 호스트를 표시합니다.

  10. 결과를 표시할 순서를 지정합니다.

    우선 순위를 1에서 3까지 지정하여 각 세션이 보고서에 표시될 순서를 정합니다. 특정 세션을 생성하지 않기로 하면 해당 세션은 자동으로 무시됩니다. 각 섹션은 다음과 같습니다.

    • Find Totals

    • General Statistics

    • Make Lists

  11. OK를 누릅니다.

    새 창에 보고서가 표시됩니다.

명령줄에서 로그 분석기 실행 방법

명령줄에서 액세스 로그 파일을 분석하려면 flexanlg 도구를 실행합니다. 이 도구는 server-install/extras/flexanlg 디렉토리에 있습니다.

flexanlg를 실행하려면 명령 프롬프트에서 다음 명령 및 옵션을 입력합니다.

./flexanlg [-n name] [-x] [-r] [-p order] [-i file]* [ -m metafile ]* [-o file][-c opts] [-t opts] [-l opts]

*가 표시된 옵션은 반복할 수 있습니다.

You can display this information online by 
typing ./flexanlg -h.

-P: proxy log format                                  Default: no
-n servername: The name of the server
-x : Output in HTML                                   Default: no
-r : Resolve IP addresses to hostnames                Default: no
-p [c,t,l]: Output order (counts, time stats, lists)  Default: ctl
-i filename: Input log file                           Default: none
-o filename: Output log file                          Default: stdout
-m filename: Meta file                                Default: none
-c [h,n,r,f,e,u,o,k,c,z]: Count these item(s) -       Default: hnreuokc
    h: total hits
    n: 304 Not Modified status codes (Use Local Copy)
    r: 302 Found status codes (Redirects)
    f: 404 Not Found status codes (Document Not Found)
    e: 500 Server Error status codes (Misconfiguration)
    u: total unique URL’s
    o: total unique hosts
    k: total kilobytes transferred
    c: total kilobytes saved by caches
    z: Do not count any items.
-t [sx,mx,hx, xx,z]: Find time stats -      Default:s5m5h10u10a10r10x10
    s(number): Find top (number) seconds of log
    m(number): Find top (number) minutes of log
    h(number): Find top (number) hours of log
    u(number): Find top (number) users of log
    a(number): Find top (number) user agents of log
    r(number): Find top (number) referers of log
    x(number): Find top (number) for miscellaneous keywords
    z: Do not find any time stats.
-l [cx,hx]: Make a list of -                          Default: c+3h5
    c(x,+x): Most commonly accessed URL’s
             (x: Only list x entries)
             (+x: Only list if accessed more than x times)
    h(x,+x): Hosts (or IP addresses) most often accessing your server
             (x: Only list x entries)
             (+x: Only list if accessed more than x times)
    z: Do not make any lists.


         

이벤트 보기(Windows)

서버 오류 로그에 오류를 기록하는 것 외에 Proxy Server는 이벤트 뷰어에 심각한 시스템 오류를 기록합니다. 이벤트 뷰어를 사용하여 시스템의 이벤트를 모니터링할 수 있습니다. 이벤트 뷰어를 사용하여 기능적 구성 문제로 인한 오류를 볼 수 있습니다. 이 오류는 오류 로그가 열리기 전에 발생할 수 있습니다.

Procedure이벤트 뷰어 사용 방법

  1. 시작 메뉴에서 모든 프로그램을 선택한 후 관리 도구를 선택합니다.

    관리 도구 프로그램 그룹에서 이벤트 뷰어를 선택합니다.

  2. 로그 메뉴에서 응용 프로그램을 선택합니다.

    이벤트 뷰어에 응용 프로그램 로그가 표시됩니다. Proxy Server의 오류에는 proxy-serverid의 소스 레이블이 포함됩니다.

  3. 보기 메뉴에서 찾기를 선택하여 로그에서 이들 레이블 중 한 가지를 검색합니다.

    로그 항목을 업데이트하려면 보기 메뉴에서 새로 고침을 선택합니다.

    이벤트 뷰어에 대한 자세한 내용은 시스템 설명서를 참조하십시오.