exemONE Binary 모드 패치 방법 및 절차
1. 지원 환경
| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | 운영체제 | Rocky Linux 8, Rocky Linux 9 |
| 2 | CPU / Memory | 8 core / 16 GB 이상 (인스턴스 1대 기준) |
| 3 | 설치 유형 | 바이너리 패키지 설치 환경에 한함 |
2. 모듈별 사용 포트 정보
| 순번 | Target | 출발지 | 도착지 | Type | Port | 포트 사용 내용 |
|---|---|---|---|---|---|---|
| 1 | exem-host-agent | Linux, Windows 장비 | exemONE 수집 서버 (Receiver) | gRPC | 9009 | 범용 gRPC 요청 및 응답 |
| 2 | exem-host-agent | Unix 장비 | exemONE 수집 서버 (Receiver) | TCP | 9010 | 범용 TCP 요청 및 응답 |
| 3 | exem-k8s-agent / exem-container-agent | 모니터링 대상 장비 | exemONE 수집 서버 (Receiver) | gRPC | 9009 | 범용 gRPC 요청 및 응답 |
| 4 | exem-db-agent / 개별 db agent | 모니터링 대상 장비 | exemONE 수집 서버 (Receiver) | gRPC | 9009 | 범용 gRPC 요청 및 응답 |
| 5 | exem-db-agent | exemONE 수집 서버 | 모니터링 대상 Target DB | TCP | DB Listener Port | DB 지표 수집 |
| 6 | exem-java-agent | 모니터링 대상 장비 | exemONE 수집 서버 (Receiver) | TCP | 9010 | 범용 TCP 요청 및 응답 |
| 7 | Cloud | - | exemONE 수집 서버 (Receiver) | TCP | 443 | - |
| 8 | 모니터링 사용자 PC | 사용자 PC | exemONE 수집 서버 (Gateway) | TCP(https) | 8443 | WEB UI 접속 포트 |
| 9 | 모니터링 사용자 PC | 사용자 PC | exemONE 수집 서버 (Gateway) | HTTP | 8080 | WEB UI 접속 포트 |
| 10 | exemONE repo (ClickHouse) | - | - | TCP | 8123 | 수집한 데이터 저장 |
| 11 | exemONE repo (PostgreSQL) | - | - | TCP | 5432 | meta 데이터 저장 |
3. 모듈별 설정 파일 경로
| 순번 | 모듈명 | 설정 파일 경로 |
|---|---|---|
| 1 | exemone-api | $EXEMONE_HOME/services/exemone-api/configs/application.yaml |
| 2 | exemone-core | $EXEMONE_HOME/services/exemone-core/configs/core.yml |
| 3 | exemone-alert | $EXEMONE_HOME/services/exemone-alert/configs/alert.yml |
| 4 | exemone-ingester | $EXEMONE_HOME/services/exemone-ingester/configs/ingester.yml |
| 5 | exemone-gateway | $EXEMONE_HOME/services/exemone-gateway/configs/gateway.yaml |
| 6 | exemone-receiver | $EXEMONE_HOME/services/exemone-receiver/configs/receiver.yaml |
| 7 | exemone-cloud-agent | $EXEMONE_HOME/services/exemone-cloud-agent/configs/agent.yml |
| 8 | exemone-db-agent | $EXEMONE_HOME/services/exemone-db-agent/configs/agent.yml |
| 9 | exemone-cache | $EXEMONE_HOME/services/exemone-cache/conf.d/http.conf |
| 10 | exemone-front | $EXEMONE_HOME/services/exemone-front/conf.d/http.conf |
| 11 | exemone-https | $EXEMONE_HOME/services/exemone-https/conf.d/http.conf |
| 12 | exemone-redis | $EXEMONE_HOME/services/exemone-redis/configs/redis.conf |
| 13 | exemone-clickhouse | $EXEMONE_HOME/services/exemone-clickhouse/configs/config.xml |
| 14 | exemone-postgresql | $EXEMONE_HOME/services/exemone-postgresql/data/postgresql.conf |
4. 전체 모듈 패치 (patch_all.sh 사용)
전체 모듈을 일괄 패치할 경우 patch_all.sh 파일을 사용합니다.
| 순번 | 단계 | 명령어 / 내용 |
|---|---|---|
| 1 | patch_all.sh 파일을 $EXEMONE_HOME에 위치시킵니다. | - |
| 2 | patch.tar 파일을 $EXEMONE_HOME/patch 폴더명으로 압축 해제합니다. | tar -xvf patch.tar -C $EXEMONE_HOME/patch/ |
| 3 | $EXEMONE_HOME/.env 파일에 패치할 버전을 작성합니다. | vi $EXEMONE_HOME/.env |
| 4 | patch_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
| 순번 | 단계 | 명령어 / 내용 |
|---|---|---|
| 1 | core 프로세스를 중지합니다. | ./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. 실행 권한 부여
| 순번 | 단계 | 명령어 |
|---|---|---|
| 1 | jar 또는 실행 파일인 경우 실행 권한을 부여합니다. | 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 | 지원 OS | Rocky Linux 8, Rocky Linux 9만 지원 |
| 2 | core 모듈 패치 시 | 반드시 프로세스 중지 후 db 폴더 백업 및 교체 진행 |
| 3 | .env 파일 수정 | 패치 후 반드시 .env 파일의 버전을 패치 버전으로 변경해야 함 |
| 4 | 모듈 재시작 | .env 파일 수정 및 파일 배치 후 반드시 onectl restart [모듈명] 실행 필요 |
| 5 | 포트 변경 시 | 특정 모듈 포트 변경 시 해당 포트를 참조하는 다른 모듈의 설정 파일도 함께 수정 필요 |
| 6 | Receiver gRPC 포트 변경 시 | db-agent, cloud-agent 설정 파일에도 변경된 포트 반영 필요 |
| 7 | patch.sh 자동 패치 | Nexus 서버(nexus.exem.xyz)와 네트워크 연결이 가능한 환경에서만 자동 다운로드 가능 |
| 8 | 패치 파일 없거나 네트워크 오류 시 | 에러 메시지 확인 후 파일 수동 업로드 진행 |