installer를활용한설치
v3.0.23.2 버전부터 installer를 통한 설치 방법을 지원합니다.
1. 개요
setup_exem-kafka-agent_{version}.bin은 exemOne Kafka Agent의 설치 및 업데이트를 수행하는 셀프 익스트랙팅 설치 파일입니다.- 내부에 에이전트 바이너리(jar), 설정 템플릿, 번들 JRE가 포함되어 있으며 별도의 Java 설치 없이도 동작합니다.
2. 작업 유형
2.1. 대화형 모드 메뉴
| 번호 | 작업 | 설명 |
|---|---|---|
| 1 | install(patch) | 신규 설치 또는 기존 설치 감지 시 패치 수행 (기본값) |
| 2 | unpack | 현재 경로에 패키지를 압축 해제한 후 종료 |
| 3 | exit | 종료 |
2.2. 설정 파일 모드 (Silent mode)
- v3.0.23.3부터 지원
- 설정 파일을 인수로 전달하여 사용자 입력 없이 자동 설치/패치를 수행합니다.
- 3.2. 설정 파일 모드 (Silent mode) 참고
3. 실행 방법
3.1. 대화형 모드 (Interactive)
./setup_exem-kafka-agent_{version}.bin
- bin 파일을 실행하면 메뉴가 표시되고 각 항목을 입력합니다.
3.1.1. install(patch) 설치 과정
- bin 파일 실행
./setup_exem-kafka-agent_{version}.bin
- 모드 선택 - install/patch
- 설치 디렉토리 지정(EXEM_HOME)
- JRE 감지
- 에이전트 필수 입력값 지정
- 입력 데이터 확인

- Y 입력 시 : 설치 진행
- n 입력 시 : 에이전트 필수 입력값 재입력
- 설치 완료

3.1.2. unpack 설치 과정
- bin 파일 실행
./setup_exem-kafka-agent_{version}.bin
- 모드 선택 - unpack
- 설치 완료

현재 경로(bin 실행 위치) 에 패키지 압축 해제 후 종료
3.2. 설정 파일 모드 (Silent mode)
- v3.0.23.3부터 지원
- 설정 파일을 인수로 전달하면 사용자 입력 없이 자동으로 설치/패치가 수행됩니다.
- 설정 파일 모드에서는 항상
install(patch)모드로 수행됩니다. - 설정파일의 파일명은 자유이며, 절대경로/상대경로 모두 사용 가능합니다.
KEY=VALUE형식으로 한 줄에 하나씩 작성합니다.#으로 시작하는 줄은 주석으로 무시됩니다.- 설정파일 예시
vi kafka-install-file
INSTALL_DIR=/home/exem
RECEIVER_IP=10.20.30.40
RECEIVER_PORT=9009
EXEM_AGENT_NAME=kafka-agent
:wq!
- 설정파일 키
| 파라미터 | 필수 | 기본값 | 설명 |
|---|---|---|---|
| INSTALL_DIR | 선택 | {실행경로}/exem | 에이전트 설치 경로 |
| RECEIVER_IP | 필수 | - | exemOne Receiver IP 주소 |
| RECEIVER_PORT | 선택 | 9009 | exemOne Receiver 포트 |
| EXEM_AGENT_NAME | 선택 | kafka-agent | 에이전트 식별 이름 |
- 실행
./setup_exem-kafka-agent_{version}.bin kafka-install-file
4. install 동작 상세
4.1. 설치 디렉토리 설정
- 기본값: 실행 위치 하위의
exem/디렉토리 - 입력 경로가
/exem으로 끝나지 않으면 자동으로/exem이 추가됩니다. - Kafka Agent는
{INSTALL_DIR}/kafka/에 설치됩니다.
예시) INSTALL_DIR = /home/exem → KAFKA_HOME = /home/exem/kafka
4.2. 신규 설치 vs 패치 자동 판별
{INSTALL_DIR}/kafka/lib/exem-kafka-agent.jar파일 존재 여부로 판별합니다.
| 조건 | 동작 |
|---|---|
| JAR 없음 | 신규 설치 |
| JAR 있음 | 패치 (기존 설정 유지, jar 파일 교체, pkg_version.sh, pkg_version.bat, installconfig 파일 업데이트) |
5. 신규 설치
5.1. Java 자동 감지 순서
- 별도 Java 지정 없이 아래 순서로 자동 감지합니다.
- Java 17 미만 버전은 감지되더라도 사용하지 않고 다음 우선순위로 넘어간다.
| 우선순위 | 조건 | 동작 |
|---|---|---|
| 1 | 패키지 내 번들 JRE 존재 | 번들 JRE를 {KAFKA_HOME}/jre에 설치 |
| 2 | 환경변수 JAVA_HOME 설정됨 | 해당 Java 사용 |
| 3 | PATH에 java 존재 | PATH의 Java 사용 |
| 4 | 위 모두 없음 | 수동 입력 요청 (대화형) / 오류 종료 (설정 파일 모드) |
5.2. 신규 설치 완료 후 생성 파일 및 구조
exem/
└── kafka/
├── lib/
│ └── exem-kafka-agent.jar
├── cfg/
│ ├── kafka.conf
│ └── cfg.reload
├── jre/ ← 번들 JRE
├── log/
├── .installconfig ← 설치 정보 저장 파일
├── pkg_version.sh
├── start.sh
└── stop.sh
5.3. 설치 완료 출력
VERSION=3.0.23.3
RECEIVER_ADDR=10.20.30.40:9009
START_SCRIPT_PATH=/home/exem/kafka/start.sh
STOP_SCRIPT_PATH=/home/exem/kafka/stop.sh
xmSuccess(0): installation completed
6. 패치
- 기존 설치가 감지되면 자동으로 패치 모드로 진입합니다.
- 실행 중인 에이전트는 패치 시 자동으로 중지됩니다. 단, 아래 경우 수동으로 종료해야 합니다.
- stop.sh가 없는 경우 (installer가 종료 명령을 실행할 수 없음)
- 기존 agent가 상대경로로 기동된 경우 (프로세스 경로 매칭 불가로 실행 중인 agent를 감지할 수 없음)
6.1. 패치 동작
.installconfig존재 여부 확인- 있으면 → 기존 설정값을 로드하여 기본값으로 표시, 변경 여부 입력
- 없으면(installer 미지원 버전) → 안내 메시지 출력 후 신규 입력 받기
- 실행 중인 에이전트 자동 중지 (
stop.sh있을 때만 자동 중지) .installconfig업데이트 (없으면 신규 생성)- JAR 파일 교체
pkg_version.sh,pkg_version.bat업데이트start.sh없으면 패키지에서 복원stop.sh없으면 패키지에서 복원
정보
참고
- 패치 완료 후 에이전트는 자동으로 실행되지 않습니다. 수동으로
start.sh를 실행해야 합니다. - cfg/, start.sh, stop.sh, jre/, log/ 등 기존 파일은 보존됩니다.
6.2. 패치 버전 출력
Existing installation found. Running patch...
Existing version:
agent : 3.0.23.3 [abc1234]
package : 3.0.23.3
New version:
agent : 3.0.23.3 [abc1234]
package : 3.0.23.3-1
6.3. 패치 완료 출력
VERSION=3.0.23.3
KAFKA_HOME=/home/exem/kafka
To start: /home/exem/kafka/start.sh
xmSuccess(0): patch completed
7. unpack
- 패키지 내용물을 현재 디렉토리에 압축 해제만 하고 종료합니다.
- 설치 설정(
.installconfig) 없이 바로start.sh로 실행할 수 있습니다.
실행 위치/
└── exem/
└── kafka/
├── lib/
├── cfg/
├── jre/
├── start.sh
├── stop.sh
└── ...
- 완료 시 출력 :
UNPACK_DIR={실행경로}/exem/kafka
xmSuccess(0): unpack completed
정보
⚠️ 기존에 같은 경로에 설치된 파일이 있을 경우, 패키지에 포함된 파일(cfg/kafka.conf 등)이 덮어씌워진다. 기존 설정을 유지한 채 업데이트하려면 unpack 대신 install(patch) 모드를 사용해야 합니다.
8. .installconfig 파일
- install 모드로 설치 시
{KAFKA_HOME}/.installconfig에 저장되며, 이후 패치 시 기존 설정을 불러오는 데 사용됩니다.
INSTALL_DIR=/home/exem
JAVA_HOME=/home/exem/kafka/jre
EXEM_AGENT_NAME=kafka-agent
RECEIVER_IP=10.20.30.41
RECEIVER_PORT=9009
- 파일 권한:
640(소유자 읽기/쓰기, 그룹 읽기) - 값 변경이 필요할 경우
.installconfig를 직접 수정한 후 기동하면 됩니다.
9. 에이전트 시작/중지
- 시작 (백그라운드)
sh {KAFKA_HOME}/start.sh
- 시작 (포그라운드)
sh {KAFKA_HOME}/start.sh foreground
- 중지
sh {KAFKA_HOME}/stop.sh
10. 에러 코드
| 코드 | 발생 상황 |
|---|---|
| xmError(300) | 잘못된 메뉴 번호 선택 |
| xmError(301) | 패키지 압축 해제 실패 |
| xmError(302) | 설정 파일 모드에서 Java 17+ 감지 실패 |
| xmError(307) | 설정 파일에 RECEIVER_IP 없음 |
| xmError(308) | RECEIVER_IP 형식 오류 |
| xmError(309) | 사용자가 종료 선택 |
| xmError(310) | RECEIVER_PORT 범위 오류 |
| xmError(311) | 설치 디렉토리 생성 실패 |
| xmError(312) | 파일 이동 실패 |
| xmError(404) | 패치 패키지에 JAR 없음 |
| xmError(406) | JAR 복사 실패 |
| xmError(407) | 에이전트 중지 실패 |