Application Servers & Java

JBoss 장애 사례: 설정 실수 및 시스템 환경 문제로 인한 장애

midworker 2025. 5. 15. 22:24
반응형

JBoss 장애 사례: 설정 실수 및 시스템 환경 문제로 인한 장애

이번 글에서는 Web/WAS 운영 중 다음과 같은 시스템 환경 문제설정 실수로 인해 발생하는 장애 사례들을 소개합니다.

  • 파일 핸들 초과
  • 권한 오류
  • 파일 복제 시스템 문제 (NAS 등)
  • 외부 패치 반영 누락

✅ 1. Too many open files 오류

🔹 증상

  • WAS 기동 도중 예외 발생
  • DB 연결 또는 파일 접근 시 에러 로그 출력
  • Too many open files 또는 EMFILE 메시지

🔹 원인

  • 리눅스 OS의 open file 수 제한
  • JBoss는 소켓, 로그, 라이브러리 등 많은 파일 핸들을 사용

🔹 해결 방법

현재 제한 확인

ulimit -n

시스템 전체 수정

vi /etc/security/limits.conf
jboss soft nofile 65535
jboss hard nofile 65535

재로그인 후 확인

ulimit -n

✅ 2. 슬레이브 호스트 구성 시 권한 오류

🔹 증상

  • slave 호스트에서 domain.sh 실행 시 연결 실패
  • management user로 등록했는데도 CLI 인증 실패

🔹 원인

  • 사용자 등록이 Management가 아닌 Application으로 되어 있음
  • domain.xml의 security realm 설정이 충돌됨

🔹 해결 방법

  • add-user.sh 실행 시 "Management User"로 정확히 선택
  • host-slave.xml 내 domain controller 주소 및 사용자 정보 확인

✅ 3. NAS 구성 시 파일 복제 지연

🔹 증상

  • .war 파일 복사 후 .dodeploy 생성했으나 배포가 지연되거나 실패
  • 로그에 undeployed 또는 timeout 메시지 발생

🔹 원인

  • NAS(NFS) 복제 지연으로 인해 .war 파일 완전 복사 전에 .dodeploy 인식됨
  • deployment scanner가 zip 파일을 완전히 읽지 못하고 실패 처리

🔹 해결 방법

  • NAS 환경에서는 auto-deploy 사용 금지
<deployment-scanner auto-deploy-zip="false"/>
  • CLI 또는 Admin Console을 통한 수동 배포 사용

✅ 4. 시스템 패치 반영 누락

🔹 증상

  • 운영 중 보안패치 또는 시스템 업데이트 누락
  • 특정 jar/library 버전과 호환되지 않아 기동 실패

🔹 해결 방법

  • 패치 릴리즈 시 jar 버전 확인
  • $JBOSS_HOME/modules/ 하위 모듈 확인 및 교체

예: log4j, commons-lang, jdbc 드라이버 등은 반드시 일치된 버전 사용


✅ 마무리

이번 글에서는 시스템 자원 설정, 계정 권한, 파일 시스템 환경(NAS),
그리고 운영 중 놓치기 쉬운 패치 반영 누락 등으로 인해 발생하는
비정형 장애 사례들을 정리했습니다.


✅ 시리즈 요약

회차 주요 주제
1편 문자 인코딩, 클러스터, 포트 설정 문제
2편 파일 업로드, 라이브러리 충돌, 네트워크 오류
3편 세션 끊김, 로그 문제, 배포 언디플로이 현상
4편 파일 핸들 초과, 권한 설정, NAS 구성 문제

이 시리즈를 통해 JBoss 실무 운영 시 자주 마주하는 장애를
미리 대비하고 빠르게 대응하는 데 도움이 되길 바랍니다.

반응형