본문으로 건너뛰기

exemONE Binary 모드 패치 방법 및 절차

1. 지원 환경

순번항목내용
1운영체제Rocky Linux 8, Rocky Linux 9
2CPU / Memory8 core / 16 GB 이상 (인스턴스 1대 기준)
3설치 유형바이너리 패키지 설치 환경에 한함

2. 모듈별 사용 포트 정보

순번Target출발지도착지TypePort포트 사용 내용
1exem-host-agentLinux, Windows 장비exemONE 수집 서버 (Receiver)gRPC9009범용 gRPC 요청 및 응답
2exem-host-agentUnix 장비exemONE 수집 서버 (Receiver)TCP9010범용 TCP 요청 및 응답
3exem-k8s-agent / exem-container-agent모니터링 대상 장비exemONE 수집 서버 (Receiver)gRPC9009범용 gRPC 요청 및 응답
4exem-db-agent / 개별 db agent모니터링 대상 장비exemONE 수집 서버 (Receiver)gRPC9009범용 gRPC 요청 및 응답
5exem-db-agentexemONE 수집 서버모니터링 대상 Target DBTCPDB Listener PortDB 지표 수집
6exem-java-agent모니터링 대상 장비exemONE 수집 서버 (Receiver)TCP9010범용 TCP 요청 및 응답
7Cloud-exemONE 수집 서버 (Receiver)TCP443-
8모니터링 사용자 PC사용자 PCexemONE 수집 서버 (Gateway)TCP(https)8443WEB UI 접속 포트
9모니터링 사용자 PC사용자 PCexemONE 수집 서버 (Gateway)HTTP8080WEB UI 접속 포트
10exemONE repo (ClickHouse)--TCP8123수집한 데이터 저장
11exemONE repo (PostgreSQL)--TCP5432meta 데이터 저장

3. 모듈별 설정 파일 경로

순번모듈명설정 파일 경로
1exemone-api$EXEMONE_HOME/services/exemone-api/configs/application.yaml
2exemone-core$EXEMONE_HOME/services/exemone-core/configs/core.yml
3exemone-alert$EXEMONE_HOME/services/exemone-alert/configs/alert.yml
4exemone-ingester$EXEMONE_HOME/services/exemone-ingester/configs/ingester.yml
5exemone-gateway$EXEMONE_HOME/services/exemone-gateway/configs/gateway.yaml
6exemone-receiver$EXEMONE_HOME/services/exemone-receiver/configs/receiver.yaml
7exemone-cloud-agent$EXEMONE_HOME/services/exemone-cloud-agent/configs/agent.yml
8exemone-db-agent$EXEMONE_HOME/services/exemone-db-agent/configs/agent.yml
9exemone-cache$EXEMONE_HOME/services/exemone-cache/conf.d/http.conf
10exemone-front$EXEMONE_HOME/services/exemone-front/conf.d/http.conf
11exemone-https$EXEMONE_HOME/services/exemone-https/conf.d/http.conf
12exemone-redis$EXEMONE_HOME/services/exemone-redis/configs/redis.conf
13exemone-clickhouse$EXEMONE_HOME/services/exemone-clickhouse/configs/config.xml
14exemone-postgresql$EXEMONE_HOME/services/exemone-postgresql/data/postgresql.conf

4. 전체 모듈 패치 (patch_all.sh 사용)

전체 모듈을 일괄 패치할 경우 patch_all.sh 파일을 사용합니다.

순번단계명령어 / 내용
1patch_all.sh 파일을 $EXEMONE_HOME에 위치시킵니다.-
2patch.tar 파일을 $EXEMONE_HOME/patch 폴더명으로 압축 해제합니다.tar -xvf patch.tar -C $EXEMONE_HOME/patch/
3$EXEMONE_HOME/.env 파일에 패치할 버전을 작성합니다.vi $EXEMONE_HOME/.env
4patch_all.sh를 실행합니다../patch_all.sh
5전체 모듈을 기동합니다../onectl start all


5. 개별 모듈 패치

5-1. 패치 파일 업로드 및 압축 해제

순번단계명령어
1패치 파일([모듈명]-v[버전].tar.gz)을 서버에 업로드합니다.-
2압축 해제합니다.tar -xvzf [모듈명]-v[버전].tar.gz

5-2. 모듈 유형별 패치 파일 배치

모듈 유형에 따라 패치 방식이 4가지로 구분됩니다.

{EXEMONE_HOME} = exemONE이 설치된 경로, [버전]은 실제 패치 적용 버전명(예: v3.0.504.15.9)을 의미합니다.

유형 1. 데이터 수집 모듈 패치 (패치 버전 파일 복사)

대상 모듈: exemone-alerter, exemone-ingester, exemone-gateway, exemone-receiver, exemone-cloud-agent, exemone-db-agent

순번단계명령어 / 내용
1압축 해제한 폴더 내 {모듈이름}-v[버전] 파일을 $EXEMONE_HOME/bins/{모듈이름} 경로에 복사합니다.cp -r exemone-alerter-v3.0.504.15.0/exemone-alerter-v3.0.504.15.0 {EXEMONE_HOME}/bins/exemone-alerter/v3.0.504.15.0/

유형 2. exemone-api 모듈 패치 (jar 파일 복사)

대상 모듈: exemone-api

순번단계명령어 / 내용
1$EXEMONE_HOME/bins/exemone-api 내에 패치 버전명으로 폴더를 새로 생성합니다.mkdir {EXEMONE_HOME}/bins/exemone-api/v3.0.504.15.9/
2압축 해제된 폴더 내의 jar 파일을 생성한 폴더에 복사합니다.cp -r exemone-api-v3.0.504.15.9/exemone-api-v3.0.504.15.9.jar {EXEMONE_HOME}/bins/exemone-api/v3.0.504.15.9/

유형 3. exemone-front 모듈 패치 (dist 파일 복사)

대상 모듈: exemone-front

순번단계명령어 / 내용
1압축 해제 후 dist 폴더를 $EXEMONE_HOME/bins/exemone-front/에 복사합니다.cp -r exemone-front/dist {EXEMONE_HOME}/bins/exemone-front
2버전 파일을 복사합니다.cp exemone-front/version.text {EXEMONE_HOME}/services/exemone-front

유형 4. exemone-core 모듈 패치 (data 폴더 + 패치 버전 파일 복사)

대상 모듈: exemone-core

순번단계명령어 / 내용
1core 프로세스를 중지합니다../onectl stop core
2프로세스 중지를 확인합니다.ps -ef \| grep core
3$EXEMONE_HOME/services/exemone-core/db의 기존 db 폴더를 백업합니다.-
4패치본의 db 디렉터리로 교체합니다. (ClickHouse 테이블 마이그레이션 포함)cp -r exemone-core-v3.0.504.15.9/db $EXEMONE_HOME/services/exemone-core/
5패치 파일을 복사합니다.cp exemone-core-v3.0.504.15.9/exemone-core-v3.0.504.15.9 $EXEMONE_HOME/bins/exemone-core/

5-3. 실행 권한 부여

순번단계명령어
1jar 또는 실행 파일인 경우 실행 권한을 부여합니다.chmod +x [파일명]

참고: 폴더인 경우 실행 권한 부여는 불필요합니다.


5-4. .env 파일 버전 수정

순번단계명령어 / 내용
1.env 파일을 열어 패치할 모듈의 버전 항목을 수정합니다.vi $EXEMONE_HOME/.env
EXEMONE_ALERTER=exemone-alerter-v3.0.506.15.14
EXEMONE_API=exemone-api-v3.0.506.15.3
EXEMONE_CLOUD_AGENT=exemone-cloud-agent-v3.0.506.15.3
EXEMONE_CORE=exemone-core-v3.0.506.15.20
EXEMONE_DB_AGENT=exemone-db-agent-v3.0.506.15.9
EXEMONE_GATEWAY=exemone-gateway-v3.0.506.15.4
EXEMONE_INGESTER=exemone-ingester-v3.0.506.15.14
EXEMONE_RECEIVER=exemone-receiver-v3.0.506.15.7
EXEMONE_FRONT=exemone-front-v3.0.506.15.46
EXEMONE_POSTGRES=17.3-alpine3.21

5-5. 설정 파일 수정 (필요 시)

패치 내용에 따라 설정 파일 변경이 필요한 경우, 위 [2. 모듈별 설정 파일 경로] 표를 참고하여 해당 모듈의 설정 파일을 수정합니다.


5-6. 모듈 재시작 (필수)

순번단계명령어
1패치 완료 후 해당 모듈을 재시작합니다../onectl restart [모듈명]
예시api 모듈 재시작./onectl restart api

6. 주의사항 및 참고

순번항목내용
1지원 OSRocky Linux 8, Rocky Linux 9만 지원
2core 모듈 패치 시반드시 프로세스 중지 후 db 폴더 백업 및 교체 진행
3.env 파일 수정패치 후 반드시 .env 파일의 버전을 패치 버전으로 변경해야 함
4모듈 재시작.env 파일 수정 및 파일 배치 후 반드시 onectl restart [모듈명] 실행 필요
5포트 변경 시특정 모듈 포트 변경 시 해당 포트를 참조하는 다른 모듈의 설정 파일도 함께 수정 필요
6Receiver gRPC 포트 변경 시db-agent, cloud-agent 설정 파일에도 변경된 포트 반영 필요
7patch.sh 자동 패치Nexus 서버(nexus.exem.xyz)와 네트워크 연결이 가능한 환경에서만 자동 다운로드 가능
8패치 파일 없거나 네트워크 오류 시에러 메시지 확인 후 파일 수동 업로드 진행

참고 문서