에이전트 설치
이제 모든 핵심 참고 문서를 확인했습니다. 답변을 작성합니다.
exemONE 에이전트 종류, 역할 및 설치 개요
참고 문서:
- 설치 가이드 README
- 수집 모듈 설명
- 모듈별 사용 Port
- Host Agent 지원 환경
- Host Agent 필요 Port
- Host Agent Linux 설치
- Host Agent Windows 설치
- DB Agent
- DB Agent 지원 환경
- DB Agent 필요 Port
- DB Agent Linux 설치
- DB Agent Windows 설치
- Java Agent 지원 환경
- Java Agent 필요 Port
- Java Agent On-Premise 설치
- Java Agent InitContainer 방식
- Java Agent Dockerfile Rebuild 방식
- Python Agent 지원 환경
- Python Agent 필요 Port
- Dotnet Agent 지원 환경
- Dotnet Agent 신규 설치
- Kafka Agent
- Kafka Agent 지원 환경
- Kafka Agent On-Premise
- NDM Agent 설치 및 실행 가이드
- Web Server Agent
- Web Server Agent Binary 설치
- Web Server Agent Docker 설치
- Web Daemon Nginx Module 설치
- Web Daemon Apache Module 설치
1. exemONE 에이전트 전체 개요
exemONE은 모니터링 대상 시스템에 설치되는 에이전트(Agent)를 통해 다양한 인프라, 데이터베이스, 애플리케이션, 네트워크, 메시지 큐 등의 성능 데이터를 수집합니다. 에이전트는 수집한 데이터를 exemONE 수집 서버의 Receiver 모듈로 전송하며, Receiver는 gRPC(9009) 또는 TCP(9010) 프로토콜을 통해 데이터를 수신합니다.

2. 에이전트 종류 및 역할 상세
2-1. Host Agent (exem-host-agent)
| 항목 | 내용 |
|---|---|
| 역할 | 서버(호스트)의 인프라 성능 데이터 수집 (CPU, Memory, Disk, Network, Process 등) |
| 통신 방식 | Linux/Windows: gRPC (Port 9009), Unix(AIX/HP-UX/SunOS): TCP (Port 9010) |
| 설치 대상 | 모니터링 대상 서버 (호스트) |
지원 환경:
| OS | 버전 |
|---|---|
| Windows (64bit) | Windows 7 이상, Windows Server 2008 R2 이상 |
| Linux | Kernel 2.6.32 이상 (Ubuntu 12.04+, Rocky 8+, SUSE 10+, CentOS 6+, Red Hat 6+, Fedora, Amazon Linux) |
| AIX | 5.3 이상 (64bit) — 기본 SMS 데이터 수집만 지원 |
| HP-UX | 11.31 이상 (64bit) — 기본 SMS 데이터 수집만 지원 |
| SunOS | 5.10 이상 (64bit) — 기본 SMS 데이터 수집만 지원 |
| Docker | Docker version 28.x까지 지원 (host-agent 3.0.24 이상, API Version 1.42까지) |
통신 구조:
(Linux & Windows: gRPC 9009)
(Unix: TCP 9010)
설치 개요:
- root 계정으로 설치 필요 (일반 user 설치 시 서비스 등록 및 프로세스 디스크 read/write 정보 수집 불가)
- Linux:
exem-host-agent_{version}.tgz파일 압축 해제 후 설치 - Windows:
setup_exem-host-agent_[버전].exe실행하여 설치
2-2. DB Agent (exemone-db-agent)
| 항목 | 내용 |
|---|---|
| 역할 | 데이터베이스 성능 지표 수집 (세션, SQL, Wait Event, Tablespace 등) |
| 통신 방식 | gRPC (Port 9009)를 이용하여 Receiver와 통신 (Unix 미지원) |
| 설치 대상 | DB 서버 또는 수집 서버 (수집 대상 DB에 접근 가능한 서버) |
통신 구조:

지원 DB:
| DB | 지원 버전 |
|---|---|
| Oracle | 12c 이상 |
| PostgreSQL | 9.6 이상 |
| MySQL | 5.7 이상 |
| MariaDB | 10 이상 |
| SQL Server | 2012 이상 |
| MongoDB | 3.0.0 이상 |
| Tibero | 5 이상 |
| Redis | 3.0.0 이상 |
| Cubrid | 9.2.1 이상 |
| Altibase | 6.1 이상 |
| ClickHouse | 24.8.6.70 |
| SingleStore | 8.9 이상 |
Cloud DB 지원:
| 환경 | PostgreSQL | Oracle | MySQL | MariaDB | SQL Server |
|---|---|---|---|---|---|
| AWS | ✅ | ✅ | ✅ | ✅ | ✅ |
| Azure | ✅ | ❌ | ✅ | ✅ | ✅ |
| NCP | ✅ | ❌ | ✅ | ❌ | ✅ |
| SCP | ✅ | ❌ | ✅ | ✅ | ✅ |
설치 개요:
- exemONE 웹 UI에서 Agent 등록: Setting > Database > Agent Management > Add Agent

- Agent ID 및 Access Token 확인: Agent 편집 > Regenerate 후 토큰 확인 (Save 필수)

- Instance 등록: Instance 탭 > Add Group > Add Instance
- DB 서버에 설치:
- Linux (CentOS 7 이상): tar 파일 또는 bin 파일로 설치
- Windows (윈도우 10 이상): exe 파일로 설치
- conf/agent.yaml 파일 수정 (Agent ID, Access Token, Receiver 정보 입력)
./startup.sh(Linux) 또는start.bat(Windows) 실행

2-3. Java Agent (exem-java-agent)
| 항목 | 내용 |
|---|---|
| 역할 | Java VM 기반 프로세스에 agent 형태로 구동하여 JVM에서 실행되는 애플리케이션(WAS)을 추적하여 Receiver로 전송 (트랜잭션, SQL, Call Tree 등) |
| 통신 방식 | TCP (Port 9010)를 이용하여 Receiver와 통신 |
| 설치 대상 | Java 애플리케이션 서버 (WAS) |
통신 구조:

지원 환경:
- JDK 8 이상, 23 이하
- 애플리케이션 서버: Tmaxsoft JEUS 7.x+, Oracle WebLogic 12.x+, Apache Tomcat 8.x+, IBM WebSphere 8.5.x+, Red Hat JBoss 7.x+, Undertow
- 지원 DB: Oracle, PostgreSQL, MySQL, MariaDB, SQL Server, DB2, Informix, Sybase, SAP HANA, Altibase, CUBRID, Tibero, MongoDB, Cassandra, ClickHouse
설치 방법 (3가지):
방법 1. On-Premise 설치
EXEM-JAVA-AGENT-[version].tar.gz압축 해제/cfg/agent/java.conf에서receiver_addr설정 (수집 서버 IP:9010)
- JVM 옵션 설정 (WAS 재기동 시 적용):
JAVA_OPTS="$JAVA_OPTS -Dexem.groupid=default -Dexem.agent.name=tomcat8_test -Dexem.bid=$(hostname) -javaagent:/home/exem/java/lib/exem-java-agent.jar"
| 옵션 | 설명 |
|---|---|
-Dexem.groupid | WAS 그룹 이름 |
-Dexem.agent.name | 모니터링할 이름 |
-Dexem.bid | exem-host-agent와 연결 key |
-javaagent | 설치 경로/exem-java-agent.jar |
JDK 9 이상에서는
--add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED옵션 추가 필요
방법 2. Kubernetes InitContainer 방식
- Application을 재빌드하지 않고, Pod initContainer 방식으로 agent 설치 (PV + PVC 마운트)
- deployment.yaml에 exem-java-agent 관련 initContainer, 볼륨, ConfigMap, 환경변수 추가
- 주요 환경변수:
EXEM_GROUP_ID,EXEM_RUN_ON_CONTAINER,EXEMWID,EXEM_JAVA_AGENT_NAME,EXEM_RECEIVER_ADDR
방법 3. Dockerfile Rebuild 방식
- Application Build Dockerfile에 exemONE agent 옵션을 넣고 같이 빌드하여 배포
COPY {패키지_경로}/exem {애플리케이션내경로}/exem
ENV EXEM_GROUP_ID=default
ENV EXEM_RECEIVER_ADDR=10.10.40.120:9010
ENV JAVA_OPTS="$JAVA_OPTS -Dexem.groupid=$EXEM_GROUP_ID -Dexem.agent.name=tomcat_test -javaagent:/exem/java/lib/exem-java-agent.jar -Dexem.run.on.container=true"
2-4. Python Agent (exem-python-agent)
| 항목 | 내용 |
|---|---|
| 역할 | Python 기반 웹 애플리케이션의 트랜잭션, SQL, Exception 등 성능 데이터 수집 |
| 통신 방식 | TCP (Port 9010)를 이용하여 Receiver와 통신 |
| 설치 대상 | Python 애플리케이션 서버 |
통신 구조:

지원 환경:
- Python 3.7 이상
- 프레임워크: Django, Flask, FastAPI, Kafka (kafka_python, confluent_kafka)
- 데이터베이스: SQLite, MySQL (pymysql, MySQLdb), Oracle (cx_Oracle), PostgreSQL (psycopg2), Redis, MongoDB (pymongo, motor)
2-5. Dotnet Agent (exem-dotnet-agent)
| 항목 | 내용 |
|---|---|
| 역할 | .NET Framework 기반 애플리케이션(IIS/WAS)의 트랜잭션, SQL, Exception 등 성능 데이터 수집 |
| 통신 방식 | TCP를 이용하여 Receiver와 통신 |
| 설치 대상 | Windows IIS 서버 |
지원 환경:
- OS: Windows
- .NET Framework 4.8까지 사용 (.NET Core 호환 불가)
설치 개요:
- (선택) 최신 Visual C++ 재배포 패키지 설치
- Exem.DotNet.Profiler 레지스트리 등록:
DLL_Install.bat관리자 권한 실행 - Exem.DotNet.Agent GAC 등록:
assembly_regist.bat관리자 권한 실행 - exem-dotnet-agent 서비스 등록:
profile_for_service_start.bat관리자 권한 실행 - Receiver 주소 설정:
config/net.conf에서RECEIVER_ADDR=IP:port설정 - 필수 환경변수 설정:
EXEM_DOTNET_PATH: exem 폴더까지의 경로EXEM_DOTNET_PROFILE_TARGET_PROCESS: 타겟 프로세스 (예:w3wp.exe)
2-6. Kafka Agent (exem-kafka-agent)
| 항목 | 내용 |
|---|---|
| 역할 | Kafka 클러스터의 Broker, Topic, Consumer Group 등 메트릭 데이터 수집 |
| 통신 방식 | Receiver와 통신 |
| 설치 대상 | Kafka 서버 또는 Kafka에 접근 가능한 서버 |
지원 환경:
- Java 17 이상
- Linux 환경
메트릭 수집 방식:
- JMX 방식: Kafka 프로세스에 JMX 활성화 후 실시간 모니터링 및 세밀한 메트릭 수집
- Admin Client 방식: bootstrap server 정보를 이용하여 토픽, 파티션, 브로커 등 클러스터 메타데이터 수집
설치 방법 (2가지):
On-Premise 설치:
EXEM-KAFKA-AGENT-{VERSION}.tar.gz압축 해제exem/kafka/cfg/kafka.conf에서RECEIVER_ADDR설정 (수집 서버 IP:PORT)
- 에이전트 실행:
java -jar {패키지_경로}/exem/kafka/lib/exem-kafka-agent.jar
Docker 설치:
$EXEMONE_HOME/containers에exemone-kafka-agent폴더 생성cfg/kafka.conf에 Receiver 정보 입력- Docker 이미지 로드 및
.env,docker-compose.yml설정 scripts/restart.sh kafka-agent로 실행
2-7. NDM Agent (exem-ndm-agent)
| 항목 | 내용 |
|---|---|
| 역할 | 네트워크 장비(Network Device) SNMP 데이터 수집 (인터페이스, 트래픽, Syslog, SNMP Trap 등) |
| 통신 방식 | TCP (Port 9010)를 이용하여 Receiver와 통신 |
| 설치 대상 | SNMP 수집을 수행할 Linux 서버 |
지원 환경:
- Linux 환경
- root 권한 필요
설치 개요:
- exemONE 웹 UI에서 Agent 사전 등록: Setting > Agent에서 Network Device Agent 등록
- 설치 파일 실행 권한 부여:
chmod 500 setup_exem_ndm_1.0.13.bin
- 설치 파일 실행:
./setup_exem_ndm_1.0.13.bin
- 설치 시 입력 정보: Agent Name, Agent ID, Agent Access Token, Receiver IP, Receiver Port(기본 9010)
======================================================
exem-ndm-agent v3.0.17 Install on linux 3.10
======================================================
Install Directory (/home/exemone/exem):
Agent Name(ndm-agent): ndm-agent-test
Agent ID: c58f790c-3fb2-48bd-b553-5efea8ed7f8e
Agent Access Token: 7f5cdaf7-596a-41e2-934d-0e88dced3d93
Receiver IP: 10.10.46.123
Receiver Port(9010):
- Silent 설치 지원:
--silent-sample로 설정 파일 생성 후 자동 설치 가능

NDM Agent 설치 후, OID Pack Manager 등록이 필요합니다.
2-8. Web Server Agent (exem-webserver-agent)
| 항목 | 내용 |
|---|---|
| 역할 | 웹 서버(Nginx, Apache)의 트랜잭션, 요청/응답 데이터 수집 |
| 통신 방식 | gRPC (Port 9009) + 모듈 연결 Port 12848 |
| 설치 대상 | 웹 서버(Nginx/Apache)가 구동되는 서버 |
지원 환경:
- exemONE 3.0.506.15.0 릴리즈 버전 이후 사용 가능
- JDK 17 이상 필요
구성 요소: Web Server 모니터링은 2개의 컴포넌트로 구성됩니다:
- Web Server Agent: 수집 서버(Receiver)와 통신하는 에이전트 프로세스
- Web Daemon Module: Nginx/Apache에 설치되는 모듈 (Web Agent와 12848 포트로 통신)
설치 방법:
1단계: exemONE 웹 UI에서 Agent 등록
- 프로필 > 환경설정 > 관리 > 에이전트 > 에이전트 추가 (타입: 웹 서버)

- Agent ID, Access Token 발급 후 기록

2단계: Web Server Agent 설치 (Binary 또는 Docker)
Binary 설치:
chmod +x exem-webserver-agent_${VERSION}.bin
./exem-webserver-agent_${VERSION}.bin
- 설치 시 Token, Agent ID, Agent Name, Receiver IP 입력

Docker 설치:
exem-webserver-agent-package.tar.gz압축 해제- Docker 이미지 로드,
.env설정 후install.sh실행
3단계: Web Daemon Module 설치
Nginx Module:
- 지원 Nginx 버전: 1.14.1, 1.14.2, 1.18.0, 1.20.1, 1.24.0, 1.27.0, 1.28.0
setup_exem-nginx-module_{Version}.bin실행하여 설치nginx.conf에 모듈 load 및 설정 파일 include 추가
Apache Module:
- 지원 Apache 버전: 2.4
setup_exem-httpd-module_{Version}.bin실행하여 설치httpd.conf에 설정 파일 Include 추가
2-9. K8s Agent (exem-k8s-agent) & Container Agent (exem-container-agent)
| 항목 | 내용 |
|---|---|
| 역할 | Kubernetes 클러스터의 Node, Pod, Container, Workload, Namespace, Event 등 데이터 수집 |
| 통신 방식 | gRPC (Port 9009)를 이용하여 Receiver와 통신 |
| 설치 대상 | Kubernetes 클러스터 내 |
K8s Agent와 Container Agent는 모듈별 사용 Port 문서에서 확인되며, 둘 다 gRPC 9009 포트를 사용합니다.
3. 에이전트 통신 포트 요약
| Agent | 출발지 | 도착지 | Type | Port |
|---|---|---|---|---|
| exem-host-agent (Linux/Windows) | 모니터링 대상 장비 | Receiver | gRPC | 9009 |
| exem-host-agent (Unix) | Unix 장비 | Receiver | TCP | 9010 |
| exem-db-agent (개별) | 모니터링 대상 장비 | Receiver | gRPC | 9009 |
| exem-db-agent (수집서버 내장) | 수집 서버 | Target DB | TCP | DB Listener Port |
| exem-java-agent | 모니터링 대상 장비 | Receiver | TCP | 9010 |
| exem-python-agent | 모니터링 대상 장비 | Receiver | TCP | 9010 |
| exem-k8s-agent | 모니터링 대상 장비 | Receiver | gRPC | 9009 |
| exem-container-agent | 모니터링 대상 장비 | Receiver | gRPC | 9009 |
| exem-webserver-agent | 모니터링 대상 장비 | Receiver | gRPC | 9009 |
| exem-ndm-agent | 모니터링 대상 장비 | Receiver | TCP | 9010 |
| Cloud | - | Receiver | TCP | 443 |
4. 에이전트 비교 요약표
| 에이전트 | 모니터링 대상 | 지원 OS | 통신 프로토콜 | 포트 | 설치 방식 |
|---|---|---|---|---|---|
| Host Agent | 서버 인프라 (CPU/Mem/Disk/Net) | Linux, Windows, AIX, HP-UX, SunOS | gRPC / TCP | 9009 / 9010 | tgz/exe |
| DB Agent | 데이터베이스 (12종 DB) | Linux (CentOS 7+), Windows 10+ | gRPC | 9009 | tar/bin/exe |
| Java Agent | Java WAS (트랜잭션/SQL) | JDK 8~23 | TCP | 9010 | tar.gz + JVM 옵션 |
| Python Agent | Python 웹 앱 (Django/Flask/FastAPI) | Python 3.7+ | TCP | 9010 | pip/패키지 |
| Dotnet Agent | .NET Framework 앱 (IIS) | Windows (.NET Framework 4.8) | TCP | 9010 | zip + bat |
| Kafka Agent | Kafka 클러스터 | Java 17+, Linux | 수집 서버 연결 | 9009 | tar.gz / Docker |
| NDM Agent | 네트워크 장비 (SNMP) | Linux (root) | TCP | 9010 | bin |
| Web Server Agent | Nginx, Apache 웹 서버 | JDK 17+, Linux | gRPC | 9009 + 12848 | bin / Docker |
| K8s Agent | Kubernetes 클러스터 | K8s 환경 | gRPC | 9009 | YAML/DaemonSet |
| Container Agent | Docker/컨테이너 환경 | 컨테이너 환경 | gRPC | 9009 | 패키지 |
5. 주의사항
- 방화벽 포트 개방 필수: 에이전트와 수집 서버(Receiver) 간 통신을 위해 9009(gRPC) 또는 9010(TCP) 포트가 모니터링 대상 → 수집 서버 방향으로 개방되어야 합니다.
- Host Agent는 root 설치 권장: 일반 user로 설치 시 서비스 등록 및 프로세스 디스크 read/write 정보 수집이 불가합니다.
- Java Agent JDK 9+ 추가 옵션: JDK 9 이상에서는
--add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED옵션이 필요합니다. - DB Agent Oracle 환경: Oracle 접속 에러 시
.env파일에 Oracle 환경변수 추가 필요합니다. - Web Server Agent 2단계 설치: Web Server Agent 설치 후 반드시 Web Daemon Module(Nginx/Apache)도 함께 설치해야 웹 서버 모니터링이 가능합니다.
- NDM Agent OID Pack 등록: NDM Agent 설치 후 OID Pack Manager 등록을 진행해야 Network Device 데이터 모니터링이 가능합니다.
- 에이전트 패키지 파일: 각 에이전트의 설치 파일은 제품기술팀에 문의하여 준비합니다.