[환경&구성]
- 환경 : aws
- OS : rocky8.6
- zabbix : 6.4
zabbix 서버 (3ea) | agent (3ea) |
zabbix-server zabbix-proxy zabbix-db(postgre) |
web(apache 2.4.41) was(tomcat 8.5.53) db(postgreSQL 14.7) |
[zabbix-proxy 서버 작업]
zabbix-proxy 통해서 관제 하는걸로 구성되어있어서 zabbix-proxy 서버에 zabbix-java-gateway를 설치했다.
# yum install zabbix-java-gateway
/etc/zabbix 디렉토리에 zabbix_java_gateway.conf 파일이랑 zabbix_proxy.conf 파일 둘 다 있었는데,
설정은 zabbix_proxy.conf 파일에다 함.
zabbix_proxy.conf |
### Option: JavaGateway # IP address (or hostname) of Zabbix Java gateway. # Only required if Java pollers are started. # # Mandatory: no # Default: # JavaGateway= JavaGateway=proxy서버 IP (proxy server 통해서 해서 server ip가 아닌 proxy server ip로 함) ### Option: JavaGatewayPort # Port that Zabbix Java gateway listens on. # # Mandatory: no # Range: 1024-32767 # Default: # JavaGatewayPort=10052 JavaGatewayPort=포트는 그냥 위에 default setting 되어있는 10052로함 ### Option: StartJavaPollers # Number of pre-forked instances of Java pollers. # # Mandatory: no # Range: 0-1000 # Default: # StartJavaPollers=0 StartJavaPollers=0이상 값으로 주면 되는듯 해서 3으로 함 |
[tomcat 서버 작업]
1) catalina-jmx-remote.jar 파일 필요
tomcat 서버에서 삽질을 좀 오래 했는데,
필요 없을 것 같았던 catalina-jmx-remote.jar 파일이 있어야 했다.
tomcat 버전에 맞는 파일을 들고와서 tomcat 설치 된 lib 디렉토리에 넣어준다.
파일이 필요한 이유는 tomcat 서비스 내릴 때 already in use port 조치하다 확인 했다.
아래 여러군데 사이트들(글 하단 링크참조) 확인하면서 미리 받아두긴 했었는데,
proxy 서버에서 다 처리 될 줄 알고 크게 유무가 관계 없을 줄 알았다만 매우 필요했던 부분인걸로.
설치 될 때 필수로 들고오는 파일이 아닌 관계로 직접 다운로드 했다.
8.5.53 버전으로 설치해서 아래 주소에서 가져왔고,
적절하게 버전명 바꾸면서 아래 경로에서 파일 들고오면 될 것 같다.
- https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.53/bin/extras/
2) config 파일 수정
회사 내 표준 설치 구성하는게 있어서, 다른 내용들과는 좀 다를 수 있으나,
일단 추가/수정은 주석 참고하면 된다.
서비스 기동하는 환경설정 파일 (ex, setenv.sh ..?) |
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote" JAVA_OPTS="$JAVA_OPTS -Dcohttp://m.sun.management.jmxremote.ssl=false" JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false" JAVA_OPTS="$JAVA_OPTS -Dcohttp://m.sun.management.jmxremote.ssl.need.client.auth=false" #add JAVA_OPTS="$JAVA_OPTS -Dcohttp://m.sun.management.jmxremote.registry.ssl=false" #add JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=서버 IP" ##mod |
외국사이트(링크는 추가못함..기억안남) jmxremote.port 와 jmxremote.rmi.port 를 둘 다 같은 포트번호로 추가하라는 글이 있었는데 이슈 해결하면서 제거대상이 되었다. 원래는 10061로 두개 내용을 위에 환경파일에 같이 넣어줬었다.
-Dcohttp://m.sun.management.jmxremote.port=
-Dcohttp://m.sun.management.jmxremote.rmi.port=
그다음 tomcat conf 디렉토리에서 server.xml에 아래와 같이 추가해줬다.
참고 페이지에선 포트번호 다르게 했던데 그냥 같게 함. (아직 이슈없음)
server.xml |
<Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="10061" rmiServerPortPlatform="10061"/> <!-- Security listener. Documentation at /docs/config/listeners.html <Listener className="org.apache.catalina.security.SecurityListener" /> |
[aws]
- zabbix-proxy 서버 인스턴스에 outbound 에 10061 등록.
- tomcat 서버 인스턴스에 inbound에 10061 등록.
[zabbix]
tomcat 서버 호스트에서 JMX 로 인터페이스 추가 해주고,
10061로 포트 맞춰준다.
10052가 zabbix-proxy의 zabbix-java-gateway 로 되어있어서 그걸로 했는데 안됨.
구조 이해를 못해서 그런거 같긴 한데 서버도 10052로 맞춰도 될거같긴하지만...일단 모르겠어서 다르게 함 서버는;;
아래처럼 jmx 초록불 들어오면 이슈없음.
![]() |
![]() |
[기타]
1) failed: SSL peer shut down incorrectly 이슈
TLS1.2 로 바꾸라든둥 이런저런 말이 많았었는데,
-Dcohttp://m.sun.management.jmxremote.ssl.need.client.auth=false" 추가 하나 더 해주고,
zabbix에 jmx 인터페이스 추가시 tomcat 서버에 설정한 포트 (10061) 와 맞춰주고, aws in/outbound 설정해주니 해결됨.
2) already in use 원인을 찾고싶었지 해결방안에 대해서 찾으려 했던게 아니었는고...
해결방안은 그냥 프로세스 킬 하라는게 전부였는데, 그럼 기동 할 때마다 프로세스 죽여야 한다는거잖...
그래서 10060, 10061 포트를 다르게 해보고 진행하고 aws에 아웃바운드 추가해주고 난리쳤었는데,
결론적으로 setenv 환경파일에서 해당 내용을 지우는게 맞았던 것 같다.
setenv에 없으면 기동 시 포트가 안뜰꺼라 생각했는데...서버까지 reboot 해보고 다시 했으나 포트 잘 잡힘.
server.xml 에 shutdown 항목에만 넣어두었는데... 모르겠음.
3) 구성하면서 봐온 웹 페이지 : 일단 너무 많은 페이지들 보는바람에 기억나는 페이지만 3개 링크
https://infotake.tistory.com/87
https://yeti.tistory.com/122
https://www.lesstif.com/java/apache-tomcat-jmx-monitoring-20776824.html
'업무 > zabbix' 카테고리의 다른 글
[zabbix 6.4] unknown metric system.run (0) | 2024.01.04 |
---|---|
[zabbix][6.4]no active checks on server [ip]: host [hostname] not found (0) | 2023.12.13 |