WebSphere v8.5 환경에서 보안 감사 및 트러블슈팅을 위해 NCSA Access Log를 활성화하는 방법을 정리합니다. 서버 전역 설정과 전송 체인(Transport Chain)별 설정을 모두 적용해야 하며,
accessLogFormat속성을 통해 클라이언트 IP, 수행 시간, User-Agent 등을 기록하도록 포맷을 변경하는 방법을 다룹니다.
0. 배경 및 필요성 (Context)
WAS 앞단에 웹 서버(Web Server)가 있다면 웹 서버 로그를 분석하면 되지만, WAS로 직접 들어오는 요청이나 내부 통신, 혹은 상세한 애플리케이션 수행 시간 분석을 위해서는 WAS 자체의 Access Log가 필요합니다. WebSphere는 NCSA 표준 포맷을 지원합니다.
Test Environment
- Version: WebSphere Application Server v8.5
1. 전역 로깅 서비스 활성화 (Global Setting)
가장 먼저 서버 차원에서 로깅 서비스를 켜야 합니다.
- 관리 콘솔에서 Servers > Server Types > WebSphere application servers > [서버명] 클릭
- 우측 하단의 Troubleshooting 섹션에서 NCSA access and HTTP error logging 클릭
- 설정 체크:
- Enable logging service at server start-up (서버 기동 시 서비스 활성화)
- Enable access logging (액세스 로깅 활성화)
2. 전송 체인별 로깅 활성화 (Chain Setting)
전역 설정을 했더라도, 실제 통신을 담당하는 전송 체인(Transport Chain)에서 로깅을 켜지 않으면 로그가 남지 않는 경우가 많습니다. 사용하는 포트(9080, 9443 등)에 해당하는 체인을 수정해야 합니다.
설정 경로
[서버명] > Web Container Settings > Web container transport chains
설정 방법
주로 사용되는 체인(WCInboundDefault, HttpQueueInboundDefault 등)을 선택하여 아래 작업을 반복합니다.
- 체인 이름 클릭 (예:
WCInboundDefault) - HTTP inbound channel (HTTP_2) 클릭
- Enable logging 체크박스 선택
WCInboundDefaultSecure 체인에 대해서도 동일하게 설정해야 합니다.
3. 로그 포맷 커스터마이징 (Custom Properties)
기본 포맷(Common Log Format)은 정보가 부족할 수 있습니다. 수행 시간이나 세션 ID, User-Agent 등을 남기기 위해 사용자 정의 속성을 추가합니다.
속성 추가 위치
위의 HTTP inbound channel (HTTP_2) 설정 화면에서 우측의 Custom properties (사용자 정의 특성) 메뉴로 진입합니다.
속성 값 (Key & Value)
- Name:
accessLogFormat - Value: (아래 예시 중 선택)
# 예시 1: 표준 확장 포맷 (IP, 시간, 요청, 상태, 크기, 수행시간)
%h %u %t "%r" %s %b %D
# 예시 2: 전체 정보 포함 (Referer, User-Agent, SessionID 포함)
%h %u %t "%r" %s %b %D "%{Referer}i" "%{User-agent}i" %{JSESSIONID}C
4. 주요 포맷 지시어 설명
| 지시어 | 설명 |
|---|---|
%h |
클라이언트 IP 주소 (Host) |
%t |
요청 시간 (Time) |
%r |
요청 라인 (Request Line) - Method, URI, Protocol |
%s |
응답 상태 코드 (Status Code, 예: 200, 404, 500) |
%D |
요청 처리 소요 시간 (마이크로초 단위, 성능 분석 시 중요) |
%{Header}i |
특정 요청 헤더 값 (예: %{User-Agent}i) |
%{Cookie}C |
특정 쿠키 값 (예: %{JSESSIONID}C) |
Next Step:
모든 설정을 마친 후에는 반드시 서버를 재기동해야 로그가 남기 시작합니다. logs/[서버명]/http_access.log 파일이 생성되는지 확인하십시오.