본문 바로가기

IT 라이프

Apache Tomcat Connectors 중 Status Worker에 관하여 (JK Status Manager)

반응형

 Apache 웹서버와 Tomcat의 연결에 대해서 모니터링을 하고 컨트롤을 하고자 하는 니즈가 생겼다. 이를 어떻게 하면 쉽게 해결할 수 있을까 하고 알아보다 보니 Apache Tomcat Connectors 중 Status Worker라는 워커의 존재에 대해 알게되었다. 흔히 JK Status Manager라고 불리는 워커이다. 이 존재에 대해 자세히 알아보고자 한다.

 

Status Worker 개요 (JK Status manager)

  • 톰캣 커넥터의 타입 중 status worker라고 불리는 특별한 커넥터 타입은 런타임 환경에서 톰캣으로부터 상태와 설정 정보를 가져오는 역할을 한다
  • 추가적으로 다이나믹하게 설정을 변경시킬 수도 있게 한다
  • 단순한 웹 인터페이스를 통하여 이러한 기능을 사용할 수 있도록 한다
<참고사이트>
The Apache Tomcat Connectors - Status Worker https://tomcat.apache.org/connectors-doc/reference/status.html

 

Status Worker 활용방안

기능 활성화 방법

Apache HTTP Server 설정

  • Apache Webserver 내 workers.properties 파일 내에 worker.list 추가 (JK_STATUS_MANAGER)
  • 해당 worker의 type을 status로 설정
  • JkMount 로 jkstatus 마운트

workers.properties 설정 내에 status worker를 추가해준다.

# workers.properties
 
worker.list=jkstatus            #연동 상태 모니터링 워커 이름
worker.jkstatus.type=status     #상태 체크

modjk.conf 설정 내에 jkstatus 를 마운트해주었다.

# modjk.conf
 
JkMount /jkmanager* jkstatus
 
<Location /jkmanager/>
JkMount jkstatus
Order deny,allow
Deny from all
Allow from all
</Location>

 

밸런싱 변경 방법

  1. 변경 대상 Worker 찾은 후 "S(Show only this worker)" 선택
  2. Balancer Member 하위의 변경대상 타겟 찾은 후 "E(Edit worker)" 선택
  3. Activation을 "Stopped"로 변경 후 "Update Worker" 선택

Activation 설정

  • Disabled : 해당 worker에 이미 세션이 연결되어 있는 case에 대해서는 요청을 받아주는 것으로 보여짐  (A disabled worker only gets requests, which belong to sessions for that worker)
  • Stopped : 어느 요청도 받아들이지 않음

결론 : 대부분의 경우 Stopped를 사용하면 된다.

인증절차 추가

  1. htpasswd 도구를 사용하여 암호파일을 생성
    cd /hli_app/sw/web/jbcs/httpd/sbin
    htpasswd -c /hli_app/sw/web/jbcs/httpd/passwd/passwords webadmin
  2. devinf_vhost.conf 수정
    <Location /jkmanager/>
    JkMount jkstatus
    Order deny,allow
    Deny from all
    Allow from all
     
    # 인증 추가 부분
    AuthType Basic
    AuthName "Restricted Files"
    AuthUserFile /hli_app/sw/web/jbcs/httpd/passwd/passwords
    Require user webadmin
    </Location>
  3. httpd 재시작
  4. 접근 URI에 계정과 비밀번호 추가하여 접근 
    http://webadmin:{password}@[TARGET_DOMAIN]:[PORT]/jkmanager

 

WAS 처리상황 확인 방안

JK Status Manager에서 확인 방법

  1. Stop된 대상 worker 좌측의 "R"(Reset worker state) 클릭하여 런타임 통계 초기화
  2. F5(새로고침)을 눌러보며 LR(통계초기화 시점으로부터 지난 시간(초)) 이 정상적으로 늘어나는지 확인
  3. 동시에 Acc (요청 수), Sess (생성된 세션 수) 가 증가하는지 모니터링하여 신규 Request가 인입되는지 점검
  4. 동시에 Rd (읽은 바이트 수) 값이 증가하는지 모니터링하여 Backend로부터 응답되는 값이 있는지 확인
  5. Con (Backend 커넥션의 수) 값이 0으로 감소한 뒤 더 이상 증가하지 않는지 확인
  6. 모니터링 대상 항목들(Acc, Sess, Wr, Rd)이 0이 아니고 증가한 경우 1번부터 다시 수행
  7. 모니터링 대상 항목들(Acc, Sess, Wr, Rd) 일정시간 (약 1분 이상) 이상 0인 경우 종료
반응형