[환경&구성]

- 환경 : 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

 

728x90

+ Recent posts