Host Agent 설치
1. 모듈 설명
exemONE Host Agent(exem-host-agent)는 서버(Linux, Windows, Unix 등)의 시스템 성능 지표를 수집하여 exemONE 수집 서버(Receiver)로 전송하는 에이전트입니다.
전제 조건:
root 계정으로 설치해야 하며, 일반 user 권한으로 설치 시 서비스 등록 및 프로세스 디스크 read/write 정보 수집이 불가능합니다.
2. 지원 환경
Linux
- Kernel version 2.6.32 이상
- Ubuntu 12.04 이상
- Rocky Linux 8 이상
- SUSE 10 이상
- CentOS 6 이상
- Red Hat 6 이상 (RHEL 기반 배포 버전 지원)
- Fedora
- Amazon Linux
Windows (64bit)
- Windows 7 이상
- Windows Server 2008 R2 이상
Unix 계열
- AIX 5.3 이상 (64bit) — 현재 기본 SMS 데이터 수집만 지원
- HP-UX 11.31 이상 (64bit) — 현재 기본 SMS 데이터 수집만 지원
- SunOS 5.10 이상 (64bit) — 현재 기본 SMS 데이터 수집만 지원
Unix 계열(AIX, HP-UX, SunOS)은 추후 Log Monitoring, Script Manager, Process 감시 기능 지원 예정입니다.
Docker
- host-agent 3.0.24 이상인 경우 Docker version 28.x까지 지원 (API Version 1.42까지)
3. 통신 포트
| 대상 | 출발지 | 도착지 | 프로토콜 | Port | 설명 |
|---|---|---|---|---|---|
| exem-host-agent | Linux, Windows 장비 | exemONE 수집서버 (Receiver) | gRPC | 9009 | 범용 gRPC 요청 및 응답 |
| exem-host-agent | Unix 장비 (AIX, HP-UX, SunOS) | exemONE 수집서버 (Receiver) | TCP | 9010 | 범용 TCP 요청 및 응답 |

4. Linux 환경 설치 방법
주의사항
- root 계정으로 설치를 권장합니다.
- 일반 user 권한으로 설치 시 서비스 등록 및 프로세스 디스크 read/write 정보 수집이 불가능합니다.
단계별 설치 절차
단계 1. setup 파일 실행

- [install(patch)] 선택
단계 2. 설치 옵션 설정

- 환경 변수 설정
| NO | Name | Required | Default | Description |
|---|---|---|---|---|
| 1 | EXEM_NAME | O | setup 파일 실행 위치에 exem 폴더 추가 | exemONE agent들을 설치할 디렉토리 설정 |
| 2 | RECEIVER_IP | O | X (기본값 없음) | host agent와 연결할 receiver의 ip |
| 3 | RECEIVER_PORT | O | Linux: 9009(gRPC) / Unix: 9010(TCP) | host agent와 연결할 receiver의 port |
단계 3. 설치 완료

단계 4. exem-host-agent 실행
실행/종료 방법
- 기본적으로
${EXEM_HOME}/host디렉토리의start.sh와stop.sh사용하여 실행/종료합니다.
case 1) root 계정인 경우
- start/stop 시 각각 서비스 등록 및 실행, 서비스 제거 및 종료를 진행합니다.
- 실행: ${EXEM_HOME}/host/start.sh
- 종료: ${EXEM_HOME}/host/stop.sh
case 2) sudo 권한이 있는 일반 user 계정인 경우
- start/stop 시 각각 서비스 등록 및 실행, 서비스 제거 및 종료를 진행합니다.
- 각각의 스크립트 실행 시 반드시 sudo를 붙여줘야 합니다. (해당 user가 sudo 권한 부여 시 NOPASSWD를 설정하지 않은 경우 비밀번호를 물어볼 수 있음)
- 실행: sudo ${EXEM_HOME}/host/start.sh
- 종료: sudo ${EXEM_HOME}/host/stop.sh
case 3) sudo 권한이 없는 일반 user 계정인 경우 권장하지 않음
- start/stop 시 단순 에이전트 실행 및 종료를 진행합니다. (서비스 사용 불가)
- 각각의 스크립트 실행 시 서비스를 등록/제거할 수 없다는 안내 문구가 출력됩니다.
- 실행: ${EXEM_HOME}/host/start.sh
- 종료: ${EXEM_HOME}/host/stop.sh
정상 실행 확인 방법
- 서비스 등록 시 확인 방법
Linux (systemctl을 사용하는 경우)
systemctl status exem-host-agent
Linux (service, chkconfig를 사용하는 경우)
chkconfig --list exem-host-agent
service 등록 없이 실행 시 확인 방법
ps -ef | grep exem-host-agent
버전 확인 방법
간단한 버전 확인 방법 (Linux & Unix 모두 동일)
${EXEM_HOME}/host/pkg_version.sh
자세한 버전 확인 방법 (Linux & Unix 모두 동일)
${EXEM_HOME}/host/bin/exem-host-agent -v
5. Linux 환경 패치 방법
주의사항
- 패치 진행 시 기존 설정한
${EXEM_HOME}디렉토리를 변경 없이 진행해야 합니다. - 패치 시
${EXEM_HOME}/host/data/host_id파일이 유지되어야 기존과 동일한 host로 인식합니다. - 해당 파일이 없는 경우 새 host_id가 발급되어 패치 이전의 데이터와 연결되지 않을 수 있으며, 수동 패치 시 해당 파일을 백업하여
${EXEM_HOME}/host/data폴더에 저장 후 기동해야 합니다. - setup 파일의 patch 메뉴 사용 시 자동으로 기존 host_id를 유지하므로 setup 파일을 사용한 패치 권장합니다.
단계별 설치 절차
단계 1. setup 파일 실행

- [install(patch)] 선택
단계 2. 설치 옵션 설정

1) 설정했던 EXEM_HOME 입력: setup 파일이 실행된 위치 기준으로 default 값이 설정됩니다.
2) 이미 설치되어 있는지 확인 후 패치 여부 선택
3) EXEM_HOME을 제외한 나머지 옵션은 기존에 설치했던 옵션대로 default 값이 설정됨
- 주의사항: 설치 이후 변경된 옵션(ex. RECEIVER_IP/PORT)은 반영되지 않으니, 해당 설정 값 필수 확인 후 진행 필요합니다.
단계 2. 패치 완료

6. Windows 환경 설치 방법
주의사항
- 설치 및 실행은 관리자 권한으로 진행해야 합니다.
단계별 설치 및 패치
단계 1. setup exe 파일 실행

- [다음 > ] 선택
해당 서버에 이미 설치되어 있는 경우 자동으로 감지하여 아래 팝업 발생 (패치)

- [예(Y)]를 선택하는 경우 마지막 설치 과정에서 기존 에이전트를 제거하고 새 버전을 설치합니다. (설치 파일을 중도에 취소하는 경우 기존 에이전트 유지)
- [아니오(N)]를 선택하는 경우 설치 파일이 종료됩니다.
단계 2. 설치 경로 설정

① [ 설치 폴더 ] 설정 -> 기본 경로는 C:\Program Files (x86)\exem
② [ 다음 > ] 선택
단계 3. Receiver IP & Port 설정

① [ RECEIVER_ADDR ] 입력
- {IP}:{port} 형식으로 입력합니다.
ex) 10.10.10.10:9009 - 기본값 설정이 없으므로 반드시 설정해야 합니다.
- Windows host agent는 gRPC port (default 9009)를 사용해야 합니다.
② [ 다음 ] 선택
단계 4. Receiver IP & Port 체크

① [ 예(Y) ] 선택
- 설치를 시작합니다. ② [ 아니요(N) ] 선택
- 다시 Receiver IP & Port를 입력할 수 있습니다.
단계 5. 서비스 등록 여부 선택

① [ ⓥ ] 선택
- 서비스 등록을 합니다. ② [ 설치 ] 선택
- 참고: 설치시 서비스 등록한 경우 exem-host-agent가 비정상 종료시 자동 재기동됩니다.
단계 6. 설치 완료

① [ 닫음 ] 선택
- 위 ❺ 서비스 등록 여부 선택 에서 서비스를 등록한 경우에만 설치가 완료되면 자동으로 exem-host-agent가 실행되어 동작합니다.(서비스 등록 하지 않은 경우 수동으로 실행해야 합니다.)
exem-host-agent 삭제
삭제 참고사항
- 삭제시 기존 실행되고 있는 host agent는 자동 종료 후 삭제 과정이 진행됩니다.
- 기존 host id를 유지하기 위해
C:\Users\[사용자]\AppData\Local\exem\host\data 경로에 $EXEM_HOME\host\data\host_id 파일이 자동 백업됩니다. - host_id 이외 파일의 경우 삭제시 백업되지 않으며, 로그 등 중요한 데이터는 삭제 전 백업이 필요합니다.
삭제 참고사항
- [방법 1] $EXEM_HOST_HOME 경로의 Uninstall.exe 실행
- [방법 2] 제어판 ➝ 프로그램 제거 ➝ exem-host-agent 선택 ➝ 마우스 우클릭 ➝ 제거/변경(U) 선택
단계 1. Uninstall.exe 실행

① [ 다음 > ] 선택
단계 2. 제거 대상 확인

① [ 제거 대상 ] 확인
기존 설치한 경로\host자동 설정 ② [ 제거 ] 선택
단계 3. 삭제 완료

exem-host-agent 실행 참고 사항
정상 실행 확인 방법
작업관리자 ➝ 프로세스에서 "exem-host-agent"가 있는지 확인합니다.

버전 확인 방법
- [간단한 버전 확인] 윈도우 PowerShell을 실행하여 $EXEM_HOST_HOME 폴더로 이동 후
.\pkg_version.bat명령어로 exem-host-agent의 버전 정보를 확인할 수 있습니다.

- [자세한 버전 확인] 윈도우 PowerShell을 실행하여 $EXEM_HOST_HOME/bin 폴더로 이동 후
.\exem-host-agent_win_64.exe -v명령어로 exem-host-agent의 버전 정보를 확인할 수 있습니다.

- 작업관리자 ➝ 프로세스 에서 실행 프로세스명으로 exem-host-agent의 버전 정보를 확인할 수 있습니다.

서비스 등록 확인
- 서비스에 EXEM HOST AGENT로 아래와 같이 설정됩니다.

7. 수집 항목
Host Agent는 다음과 같은 항목을 수집합니다:
기본 수집 항목
| 카테고리 | 수집 항목 |
|---|---|
| CPU | CPU 사용률, CPU User, System, Wait, Idle 등 |
| Memory | 메모리 총량, 사용량, 사용률, Available, Free, Buffer, Cached 등 |
| Disk | 디스크 사용량, 사용률, I/O Read/Write |
| Network | 네트워크 인터페이스별 In/Out 트래픽, Packet 등 |
| File System | 파일시스템별 사용량, 잔여량, 마운트 정보 |
| Process | 프로세스별 CPU, Memory, Disk Read/Write 사용량 |
| System Info | OS 정보, Hostname, IP, Uptime 등 |
| Installed Package | 설치된 패키지 목록 (Summary 최대 100자) |
추가 수집 항목 (Config 설정 필요)
| 기능 | Config Key | 설명 |
|---|---|---|
| TCP Port 모니터링 | HOST_INTERVAL_PORT_MONITORING, HOST_PORT_MONITORING_LIST | 지정 포트의 LISTENING 상태 모니터링 |
| GPU 모니터링 | HOST_INTERVAL_GPU_MONITORING | GPU 사용률, 온도, 메모리, 전력, 프로세스 등 |
| 네트워크 드라이브 | HOST_COLLECT_WINDOWS_NETWORK_DRIVE (Windows) | Windows 네트워크 드라이브 사용량 수집 |
| NFS (Linux) | HOST_RECEIVER_SESSION_TIMEOUT | Linux NFS 파일시스템 수집 |
GPU 수집 데이터 상세 (Host Agent 3.0.23 이상)
- Metadata: GPU Index, Driver Version, Model Name, Vbios Version, Bus ID, UUID
- Metric: GPU Utilization(%), Memory Utilization(%), Encoder/Decoder Utilization(%), FB Memory Usage, GPU Temperature, Clock 정보(mem/sm/graphic/video), Power 사용량, Fan Speed
- Process: PID, Process Name, Type, Used Memory, GPU Instance ID, Compute Instance ID
8. 설정
default IP 수동 설정
파일 경로: $EXEM_HOME/host/data/manual_ip.conf
# IP 직접 지정
default_ip=10.10.36.108
# 또는 네트워크 인터페이스명으로 지정
default_name=bond0
스크립트를 통한 설정:
# IP로 설정
./set_manual_ip.sh --ip 10.10.36.108
# 네트워크 이름으로 설정
./set_manual_ip.sh --name bond0
# 설정 제거
./set_manual_ip.sh --unset
9. 추가 주의사항
- root 권한 필수: 일반 사용자로 설치 시 서비스 등록 및 프로세스 디스크 I/O 수집이 불가능합니다.
- 방화벽 설정: Linux/Windows는 gRPC 9009 포트, Unix는 TCP 9010 포트가 수집서버 방향으로 열려있어야 합니다.
- Unix 계열 제약: AIX, HP-UX, SunOS는 현재 기본 SMS 데이터만 수집 가능하며, Log Monitoring/Script Manager/Process 감시는 추후 지원 예정입니다.
- ulimit 설정: AIX 등 Unix 환경에서
data size등 ulimit 값이 작으면 Agent가 정상 동작하지 않을 수 있습니다.ulimit -d unlimited명령으로 조정이 필요합니다. (트러블슈팅 참고) - Memory 사용률 산출식: 기본값은
(total-available)/total*100이며, 필요 시 PostgreSQL에서hostUsedAvailable값을 변경하여 산출 방식을 조정할 수 있습니다. (메모리 사용률 변경) - Windows 네트워크 드라이브 수집 시 서비스가 아닌 Binary로 실행해야 수집이 가능합니다. (Network Drive 모니터링)