Sun Java logo     이전      목차      색인      다음     

Sun logo
Sun Java System Web Proxy Server 4 .0.1 관리 설명서 

9 장
로그 파일 사용

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

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


로그 파일 설명

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


참고

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



UNIX 및 Windows 플랫폼에서의 로깅

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

기본 오류 로깅

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

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

syslog를 사용하여 로깅

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


참고

  • 하나의 파일에 기록되는 모든 서버 인스턴스 및 관리 서버용 데이터는 읽고 디버깅하기 어려운 것이 될 수 있습니다. 오직 문제 없이 실행되는 응용 프로그램에 대해 syslog 마스터 로그 파일을 사용하는 것이 좋습니다.
  • 기록된 메시지는 Solaris 데몬 응용 프로그램으로부터의 모든 기타 로그와 혼합됩니다.

syslogd 및 시스템 로드 데몬과 함께 syslog 로그 파일을 사용하면 syslog.conf 파일을 다음과 같이 구성할 수 있습니다.

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

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

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

man syslog

man syslogd

man syslog.conf

Windows eventlog를 사용하여 로깅

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


로그 수준

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분(하루)이면, 현재 시간에 상관없이 변경 사항을 저장 및 적용할 때 새 로그 파일이 만들어집니다. 로그 파일은 매일 오전 12:00에 교체되며 액세스 로그 파일은 오전 12:00으로 스탬프되고 access.200505172400으로 저장됩니다. 마찬가지로 간격을 240분(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 페이지를 사용합니다.


액세스 로그 기본 설정

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

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

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

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

Administration 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 디렉토리에 대한 상대 경로로 가정합니다.
  6. 전체 서버를 편집하는 경우 이 필드의 기본값은 $accesslog이며, 이 변수는 구성 파일에서 해당 서버용 액세스 로그 파일을 나타냅니다.

  7. 서버에 액세스하는 시스템의 도메인 이름 또는 IP 주소를 액세스 로그에 기록할 것인지 선택합니다.
  8. 액세스 로그에 사용할 로그 파일 형식을 선택합니다. 선택할 수 있는 옵션은 다음과 같습니다.
    • Use Common LogFile Format. 클라이언트의 호스트 이름, 인증된 사용자 이름, 요청 일자 및 시간, HTTP 헤더, 클라이언트에 반환된 상태 코드 및 클라이언트에 전송된 문서의 내용 길이 등이 포함됩니다.
    • Only Log. 로그할 정보를 선택할 수 있습니다. 다음의 유연한 로그 형식 항목을 선택할 수 있습니다.
      • Client Hostname. 액세스를 요청하는 클라이언트의 호스트 이름(또는 DNS를 사용하지 않는 경우 IP 주소)
      • Authenticate User Name. 인증이 필요한 경우, 인증된 아이디 목록이 액세스 로그에 기록되도록 합니다.
      • System Date. 클라이언트 요청의 일자 및 시간
      • Full Request. 클라이언트가 수행한 그대로의 요청
      • Status. 서버가 클라이언트에게 반환한 상태 코드
      • Content Length. 클라이언트에게 송신한 문서의 길이(바이트 단위)
      • HTTP Header, "referer". 참조자(referer)는 클라이언트가 현재 액세스한 페이지의 상위 페이지에 해당합니다. 예를 들어 사용자가 텍스트 검색 쿼리의 결과를 보고 있다면 참조자는 사용자가 검색할 텍스트를 입력한 페이지가 됩니다. 서버는 참조자를 사용하여 역방향 추적 링크를 만듭니다.
      • HTTP Header, "user-agent".사용자 에이전트 정보에는 클라이언트가 사용하는 브라우저의 종류, 버전 및 실행되는 운영 체제 등이 포함되며, 이 정보는 클라이언트가 서버로 보내는 HTTP 헤더 정보의 User-agent 필드에서 가져옵니다.
      • Method. 사용된 HTTP 요청 메소드(GET, PUT, POST, 등)
      • 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.사용된 전송 프로토콜 및 버전.
    • 사용자 정의 형식을 선택하려면 Custom Format 필드에 입력합니다.
  9. OK를 누릅니다.
  10. Restart Required를 누릅니다. Apply Changes 페이지가 표시됩니다.
  11. Restart Proxy Server 버튼을 눌러 변경 사항을 적용합니다.
Server Instance의 액세스 로그 기본 설정을 구성하려면 다음과 같이 합니다.
  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 디렉토리에 대한 상대 경로로 가정합니다.
  6. 전체 서버를 편집하는 경우 이 필드의 기본값은 $accesslog이며, 이 변수는 구성 파일에서 해당 서버용 액세스 로그 파일을 나타냅니다.

  7. 서버에 액세스하는 시스템의 도메인 이름 또는 IP 주소를 액세스 로그에 기록할 것인지 선택합니다.
  8. 로그 파일 형식을 공통, 확장, 확장 2, 지정한 정보만("Only log" 선택 버튼) 또는 사용자 정의로 선택합니다. Only log를 누르면 다음의 유연한 로그 형식 항목을 사용할 수 있습니다.
  9. 액세스 로그에 사용할 로그 파일 형식을 선택합니다. 서버 액세스 로그는 Common Logfile Format, Extended Logfile Format, Extended2 Logfile 형식, 유연한 로그 형식 또는 사용자 정의 형식을 사용할 수 있습니다. Common LogFile Format은 흔히 지원되는 형식으로 서버에 대한 고정된 양의 정보를 제공합니다. 유연한 로그 형식을 사용하면 로그할 내용을 선택(Proxy Server에서)할 수 있습니다. 사용자 정의 형식의 경우 로그할 사항을 조정하는 매개 변수 블록을 사용합니다.
    • Use Common LogFile Format. 클라이언트의 호스트 이름, 인증된 사용자 이름, 요청 일자 및 시간, HTTP 헤더, 클라이언트에 반환된 상태 코드 및 클라이언트에 전송된 문서의 내용 길이 등이 포함됩니다.
    • Use Extended LogFile Format. 일반적인 로그 파일 형식의 모든 필드를 포함하고, 추가적으로 원격 상태, 프록시에서 클라이언트로의 내용 길이, 원격에서 프록시로의 내용 길이, 프록시에서 원격으로의 내용 길이, 클라이언트에서 프록시로의 헤더 길이, 프록시에서 클라이언트로의 헤더 길이, 프록시에서 원격으로의 헤더 길이, 원격에서 프록시로의 헤더 길이 및 전송 시간과 같은 필드를 기록합니다.
    • Use Extended2 LogFile Format. 확장형 로그 파일 형식의 모든 필드를 포함하고, 추가적으로 클라이언트 상태, 서버 상태, 원격 상태, 캐시 완료 상태, 실제 라우팅 방식과 같은 필드를 기록합니다.
    • Only Log. 로그할 정보를 선택할 수 있습니다. 다음의 유연한 로그 형식 항목을 선택할 수 있습니다.
      • Client Hostname. 액세스를 요청하는 클라이언트의 호스트 이름(또는 DNS를 사용하지 않는 경우 IP 주소).
      • Authenticate User Name. 인증이 필요한 경우, 인증된 사용자 이름 목록이 액세스 로그에 기록되도록 합니다.
      • System Date. 클라이언트 요청의 일자 및 시간
      • Full Request. 클라이언트가 수행한 그대로의 요청
      • Status. 서버가 클라이언트에게 반환한 상태 코드
      • Content Length. 클라이언트에게 송신한 문서의 내용 길이(바이트 단위)
      • HTTP Header, "referer". 참조자(referer)는 클라이언트가 현재 액세스한 페이지의 상위 페이지에 해당합니다. 예를 들어 사용자가 텍스트 검색 쿼리의 결과를 보고 있다면 참조자는 사용자가 검색할 텍스트를 입력한 페이지가 됩니다. 서버는 참조자를 사용하여 역방향 추적 링크를 만듭니다.
      • HTTP Header, "user-agent".사용자 에이전트 정보에는 클라이언트가 사용하는 브라우저의 종류, 버전 및 실행되는 운영 체제 등이 포함되며, 이 정보는 클라이언트가 서버로 보내는 HTTP 헤더 정보의 User-agent 필드에서 가져옵니다.
      • Method. 사용된 HTTP 요청 메소드(GET, PUT, POST 등)
      • URI. Universal Resource Identifier. 서버에 있는 리소스의 위치입니다. 예를 들어 http://www.a.com:8080//special/doc의 경우 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. 이 필드는 캐시 파일이 쓰여졌는지, 새로 고쳤는지, 또는 최신인지의 검사를 통해 반환되었는지를 나타냅니다.
      • Remote Server Finish Status. 이 필드는 원격 서버로의 요청이 성공적으로 전달되었는지, Netscape Navigator에서 클라이언트가 중지 버튼을 눌러 중단되었는지, 또는 오류 조건에 의해 취소되었는지를 나타냅니다.
      • 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. 인증 과정에서 원격 서버에 주어진 사용자 이름
    • 사용자 정의 형식을 선택하려면 Custom Format 필드에 입력합니다.
  10. 특정 호스트 이름이나 IP 주소로부터의 클라이언트 액세스를 기록하지 않으려면 이를 호스트 이름 및 IP 주소 필드에 입력합니다. 액세스를 기록하지 않을 호스트의 와일드카드 패턴을 입력할 수 있습니다. 예를 들어 *.example.com을 입력하면 도메인이 example.com인 사용자의 액세스는 로그에 기록하지 않습니다. 호스트 이름, IP 주소 또는 호스트 이름과 IP 주소 모두에 대한 와일드카드 패턴을 입력할 수 있습니다.
  11. 로그 파일에 형식 문자열을 포함할 것인지 선택합니다. Proxy Server의 로그 분석기를 사용할 경우, 형식 문자열을 포함해야 합니다. 타사 분석기를 사용할 경우, 로그 파일에 형식 문자열이 필요하지 않은 경우가 많습니다.
  12. OK를 누릅니다.
  13. Restart Required를 누릅니다. Apply Changes 페이지가 나타납니다.
  14. Restart Proxy Server 버튼을 눌러 변경 사항을 적용합니다.

용이한 쿠키 로깅

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


오류 로깅 옵션 설정

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

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

  3. 서버 메시지를 저장할 파일을 Error Log File Name 필드에 지정합니다.
  4. Log Level 드롭다운 목록에서 오류 로그에 기록될 정보의 양을 지정합니다. 선택할 수 있는 옵션은 다음과 같습니다.
  5. stdout 출력을 오류 로그로 재지정하려면 Log Stdout 확인란을 선택합니다.
  6. stderr 출력을 오류 로그로 재지정하려면 Log Stderr 확인란을 선택합니다.
  7. 로그 메시지를 콘솔로 재지정하려면 Log To Console 확인란을 선택합니다.
  8. UNIX syslog 서비스 또는 Windows Event Logging이 로그를 생성하고 관리하게 하려면 Use System Logging 확인란을 선택합니다.
  9. OK를 누릅니다.
  10. Restart Required를 누릅니다. Apply Changes 페이지가 나타납니다.
  11. Restart Proxy Server 버튼을 눌러 변경 사항을 적용합니다.


LOG 요소 구성

server.xml 파일에서 구성할 수 있는 LOG 요소용 속성은 다음 표와 같습니다.

표 9-2
LOG 속성

속성

기본 모드

설명

file

errors

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

loglevel

info

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

finest, fine, fine, info, warning, failure, config, security 및 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 Event Logging을 사용하여 로그를 생성하고 관리합니다. 유효한 값은 on, off, yes, no, 1, 0, true, false입니다.


액세스 로그 파일 확인

서버의 사용 중인 로그 파일과 보관된 로그 파일을 볼 수 있습니다.

Administration Server에서 Administration Server의 액세스 로그를 보려면 Preferences 탭을 선택한 후 View Access Log 페이지를 누릅니다.

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

다음은 Common Logfile Format의 액세스 로그 예입니다. 형식은 Log Preferences 창에서 지정합니다. 자세한 내용은 액세스 로그 기본 설정을 참조하십시오.

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

표 9-3 은 이 예제 액세스 로그 마지막 줄에 대한 설명입니다.

표 9-3
예제 액세스 로그 파일의 마지막 줄 필드 

액세스 로그 필드

예

클라이언트의 호스트 이름 또는 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을 입력할 수도 있습니다.

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

Transfer Time Distribution Report

전송 시간 배포 보고서는 프록시 서버가 요청을 전송하는 데 걸린 시간을 표시합니다. 이 보고서에서는 정보를 서비스 시간 및 완료된 퍼센트별로 구분하여 표시합니다. 다음은 전송 시간 배포 보고서의 예입니다.

By service time category:

< 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%]

By percentage finished:

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

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

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

Status Code Report

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

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

Data Flow Report

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

 

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

Requests and Connections Report

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

- Total requests............. 478

- Remote connections......... 439

- Avoided remote connects.... 39 [ 8.2%]

Cache Performance Report

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

Client Cache


참고

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


이 보고서에서는 클라이언트 캐시에 대해 다음을 표시합니다.

Proxy Cache

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

Proxy Cache Hits Combined

보고서에서는 통합된 프록시 캐시 적중에 대해 다음을 표시합니다.

Direct Transactions

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

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

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

Transfer Time Report

전송 시간 보고서는 프록시 서버가 트랜잭션을 처리하는 데 걸린 시간 정보를 표시합니다. 이 보고서에서는 다음 범주에 따라 값을 표시합니다.

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

Hourly Activity Report

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

프록시 서버 캐시에 대한 적중 없이 원격 서버로부터 문서를 직접 검색한 요청 수

Server 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. 일반 통계 생성 여부를 선택합니다. 일반 통계를 만드는 방식은 다음 중에서 선택할 수 있습니다.
  9. Find Top 숫자 Seconds Of Log. 가장 최근 몇 초의 정보를 기반으로 통계를 생성합니다.
  10. Find Top 숫자 Minutes Of Log. 가장 최근 몇 분의 정보를 기반으로 통계를 생성합니다.
  11. Find Top 숫자 Hours Of Log. 가장 최신 시간 단위 수의 정보를 기반으로 통계를 생성합니다.
  12. Find 숫자 Users (If Logged). . 사용자 수의 정보에 기반하여 통계를 생성합니다.
  13. Find Top 숫자 Referers (If Logged). 참조자 수의 정보에 기반하여 통계를 생성합니다.
  14. Find Top 숫자 User Agents (If Logged). 브라우저 종류, 버전, 운영 체제 등의 사용자 에이전트에 대한 정보를 기반으로 통계를 생성합니다.
  15. Find Top 숫자 Miscellaneous Logged Items (If Logged). 사용자 수의 정보에 기반하여 통계를 생성합니다.
  16. 목록 생성 여부를 선택합니다. 목록을 만들도록 선택한 경우에는 목록을 생성하려는 대상 항목을 다음 목록에서 지정합니다.
    • URLs Accessed.액세스된 URL을 표시합니다.
      • 숫자 Most Commonly Accessed URL. 가장 많이 액세스된 URL 또는 지정된 회수 이상 액세스된 URL을 표시합니다.
      • URLs That Were Accessed More Than 숫자 Times. 지정된 횟수보다 많이 액세스된 URL을 표시합니다.
    • Hosts Accessing Your Server.Proxy Server에 액세스한 호스트를 표시합니다.
      • 숫자 Hosts Most Often Accessing Your Server. 서버에 가장 자주 액세스한 호스트 또는 지정된 횟수보다 많이 서버에 액세스한 호스트를 표시합니다.
      • Hosts That Accessed Your Server More Than Number Times. 지정된 횟수보다 많이 서버에 액세스한 호스트를 표시합니다.
  17. 결과를 확인할 순서를 지정합니다. 항목의 우선 순위를 1에서 3까지 지정하여 각 세션이 보고서에 표시될 순서를 정합니다. 이 중 생성하려는 것이 없는 경우 해당 부분은 자동으로 무시됩니다. 다음 옵션에서 선택하십시오.
    • Find Totals
    • General Statistics.
    • Make Lists
  18. 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]

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

구문은 다음의 설명과 같습니다. (./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는 Event Viewer에 심각한 시스템 오류를 기록합니다. Event Viewer를 사용하여 시스템의 이벤트를 모니터할 수 있습니다. Event Viewer를 사용하여 기능적 구성 문제로 인한 오류를 볼 수 있습니다. 이 오류는 오류 로그가 열리기 전에 발생할 수 있습니다.

Event Viewer를 사용하려면 다음과 같이 합니다.
  1. 시작 메뉴에서 모든 프로그램을 선택한 후 관리 도구를 선택합니다. 관리 도구 프로그램 그룹에서 Event Viewer를 선택합니다.
  2. Log 메뉴에서 Application을 선택합니다.
  3. Event Viewer에 Application 로그가 표시됩니다. Proxy Server 오류에는 proxy-serverid의 소스 레이블이 포함됩니다.

  4. View 메뉴에서 Find를 선택하여 로그에서 이들 레이블 중 한 가지를 검색합니다. 로그 항목을 업데이트하려면 Veiw 메뉴에서 Refresh를 선택합니다.
  5. Event Viewer에 대한 자세한 내용은 시스템 설명서를 참조하십시오.



이전      목차      색인      다음     


부품 번호: 819-3161.   저작권 2005 Sun Microsystems, Inc. 모든 권리는 저작권자의 소유입니다.