일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 앱스토어
- 애플
- FIDO2
- otpkey
- 안드로이드
- kmip
- OSX
- SSL
- apple
- Android
- 인증
- Xcode
- fido
- 앱리소스
- OTP
- Nodejs
- SWIFT
- openssl
- MYSQL
- albumbook
- SSH
- MFA
- 앨범북
- css
- WebAuthn
- MSYS2
- appres
- git
- SwiftUI
- 2FA
- Today
- Total
인디노트
아파치 톰캣(apache tomcat) 을 jmx 로 monitoring 하기 본문
서비스의 정상 동작 여부 및 상태를 모니터링 하는 것은 굉장히 중요하면서도 어려운 작업이다.
ps 로 해당 서비스 프로세스가 살아 있는지 확인하는 방법은 프로세스가 떠있지만 데드락이 걸렸거나 Hang on 상태라 정상 동작하지 않을 경우 전혀 도움이 되지 않는다.
특히 자바 기반의 서비스라면 JVM 의 메모리나 쓰레드 및 VM 내부의 정보를 알아야 정확한 모니터링이 가능할 수 있다.
JMX(Java Management Extensions) 를 사용하여 아파치 톰캣을 모니터링 하기 위한 설정 절차를 알아 보자.
설정
- 사전에 톰캣 7이 설치되고 정상 동작해야 하며 다른 버전의 톰캣이라면 설정 방법이 다를 수도 있다.
- 톰캣을 구동하는 서버의 IP 는 192.168.152.131 로 가정한다.
https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.21/bin/extras/catalina-jmx-remote.jar
catalina-jmx-remote.jar 라는 별도의 jar 파일이 하나 필요하다. 기본 설치 패키지에는 포함되어 있지 않으므로 톰캣 다운로드 사이트에서 다운로드 한후에 톰캣의 lib 폴더에 추가하자.
bin/setenv.sh 를 만들고 다음 내용을 추가 한다.
line 4 - 일단 JMX가 동작하게 설정하는게 중요하므로 인증을 사용하지 않게 설정한다.
line 5 - 톰캣이 구동되는 서버의 IP 를 기술한다. 자신의 서버 IP 로 치환하자.
line 6 - 연결에 SSL 을 사용하지 않는다. SSL 을 사용하게 하려면 설정할 게 많으므로 넘어가자.톰캣의 conf/server.xml 을 열고 Server 항목에 다음 Listener 를 추가한다.
방화벽을 사용한다면 9840, 9841 포트를 열어야 한다. RHEL이나 CentOS 를 사용한다면 lokkit 로 간단하게 설정할 수 있다.
- 톰캣을 구동한다.
jconsole 로 연결
JMX 의 구현물을 많지만 간단하게 JDK 에 포함되어 있는 jconsole 을 사용하여 연결해 보자.
- jconsole 을 구동한다.
- Remote Process 를 클릭하고 하하하연결 설정
- 프로토콜이 SSL 이 아니면 다음과 같은 경고를 내보낸다. Insecure 를 선택하여 연결을 진행하자.
- 다음과 같이 JMX 관리 창이 뜨며 VM 관련한 다양한 정보를 모니터링할 수 있다.
인증 설정
이제 정상 동작 여부를 확인했으면 인증을 통해야 JMX 로 연결 가능하게 설정해 보자.
bin/setenv.sh 를 다음과 같이 수정한다.
conf/jmxremote.access 와 conf/jmxremote.password 두 개의 파일을 생성해서 다음 내용을 추가한다.
계정명 권한의 의미로 monitorRole 가 계정이고 readonly 가 허용된 권한이다.계정명 암호로 monitorRole 계정의 암호는 tomcat 이다.
또는 다음 쉘 스크립트를 구동하자.위 설정은 예제이므로 실 환경에서는 계정과 암호를 다른 것으로 변경하자.
- 톰캣을 재구동한다.
- jconsole 을 구동하고 연결 정보에 위에서 설정한 계정과 암호를 입력한다.
'개발 플랫폼 및 언어' 카테고리의 다른 글
톰캣 세션 클러스터링 내가 적용한 것 (0) | 2018.11.24 |
---|---|
tomcat 세션 클러스터링 설정 (0) | 2018.11.24 |
세션 클러스터링 (0) | 2018.11.24 |
아파치2 톰캣7 로드밸런싱, 세션 클러스터링 설정하기 (0) | 2018.11.24 |
톰캣 7 세션 클러스터링 (0) | 2018.11.24 |