본문으로 건너뛰기

에이전트 설치

이제 모든 핵심 참고 문서를 확인했습니다. 답변을 작성합니다.


exemONE 에이전트 종류, 역할 및 설치 개요

참고 문서:


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 이상
LinuxKernel 2.6.32 이상 (Ubuntu 12.04+, Rocky 8+, SUSE 10+, CentOS 6+, Red Hat 6+, Fedora, Amazon Linux)
AIX5.3 이상 (64bit) — 기본 SMS 데이터 수집만 지원
HP-UX11.31 이상 (64bit) — 기본 SMS 데이터 수집만 지원
SunOS5.10 이상 (64bit) — 기본 SMS 데이터 수집만 지원
DockerDocker 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지원 버전
Oracle12c 이상
PostgreSQL9.6 이상
MySQL5.7 이상
MariaDB10 이상
SQL Server2012 이상
MongoDB3.0.0 이상
Tibero5 이상
Redis3.0.0 이상
Cubrid9.2.1 이상
Altibase6.1 이상
ClickHouse24.8.6.70
SingleStore8.9 이상

Cloud DB 지원:

환경PostgreSQLOracleMySQLMariaDBSQL Server
AWS
Azure
NCP
SCP

설치 개요:

  1. exemONE 웹 UI에서 Agent 등록: Setting > Database > Agent Management > Add Agent
  2. Agent ID 및 Access Token 확인: Agent 편집 > Regenerate 후 토큰 확인 (Save 필수)
  3. Instance 등록: Instance 탭 > Add Group > Add Instance
  4. DB 서버에 설치:
    • Linux (CentOS 7 이상): tar 파일 또는 bin 파일로 설치
    • Windows (윈도우 10 이상): exe 파일로 설치
  5. conf/agent.yaml 파일 수정 (Agent ID, Access Token, Receiver 정보 입력)
  6. ./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 설치

  1. EXEM-JAVA-AGENT-[version].tar.gz 압축 해제
  2. /cfg/agent/java.conf에서 receiver_addr 설정 (수집 서버 IP:9010)
  3. 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.groupidWAS 그룹 이름
-Dexem.agent.name모니터링할 이름
-Dexem.bidexem-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 호환 불가)

설치 개요:

  1. (선택) 최신 Visual C++ 재배포 패키지 설치
  2. Exem.DotNet.Profiler 레지스트리 등록: DLL_Install.bat 관리자 권한 실행
  3. Exem.DotNet.Agent GAC 등록: assembly_regist.bat 관리자 권한 실행
  4. exem-dotnet-agent 서비스 등록: profile_for_service_start.bat 관리자 권한 실행
  5. Receiver 주소 설정: config/net.conf에서 RECEIVER_ADDR=IP:port 설정
  6. 필수 환경변수 설정:
    • 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 환경

메트릭 수집 방식:

  1. JMX 방식: Kafka 프로세스에 JMX 활성화 후 실시간 모니터링 및 세밀한 메트릭 수집
  2. Admin Client 방식: bootstrap server 정보를 이용하여 토픽, 파티션, 브로커 등 클러스터 메타데이터 수집

설치 방법 (2가지):

On-Premise 설치:

  1. EXEM-KAFKA-AGENT-{VERSION}.tar.gz 압축 해제
  2. exem/kafka/cfg/kafka.conf에서 RECEIVER_ADDR 설정 (수집 서버 IP:PORT)
  3. 에이전트 실행:
java -jar {패키지_경로}/exem/kafka/lib/exem-kafka-agent.jar

Docker 설치:

  1. $EXEMONE_HOME/containersexemone-kafka-agent 폴더 생성
  2. cfg/kafka.conf에 Receiver 정보 입력
  3. Docker 이미지 로드 및 .env, docker-compose.yml 설정
  4. 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 권한 필요

설치 개요:

  1. exemONE 웹 UI에서 Agent 사전 등록: Setting > Agent에서 Network Device Agent 등록
  2. 설치 파일 실행 권한 부여:
chmod 500 setup_exem_ndm_1.0.13.bin
  1. 설치 파일 실행:
./setup_exem_ndm_1.0.13.bin
  1. 설치 시 입력 정보: 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):
  1. 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개의 컴포넌트로 구성됩니다:

  1. Web Server Agent: 수집 서버(Receiver)와 통신하는 에이전트 프로세스
  2. 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출발지도착지TypePort
exem-host-agent (Linux/Windows)모니터링 대상 장비ReceivergRPC9009
exem-host-agent (Unix)Unix 장비ReceiverTCP9010
exem-db-agent (개별)모니터링 대상 장비ReceivergRPC9009
exem-db-agent (수집서버 내장)수집 서버Target DBTCPDB Listener Port
exem-java-agent모니터링 대상 장비ReceiverTCP9010
exem-python-agent모니터링 대상 장비ReceiverTCP9010
exem-k8s-agent모니터링 대상 장비ReceivergRPC9009
exem-container-agent모니터링 대상 장비ReceivergRPC9009
exem-webserver-agent모니터링 대상 장비ReceivergRPC9009
exem-ndm-agent모니터링 대상 장비ReceiverTCP9010
Cloud-ReceiverTCP443

4. 에이전트 비교 요약표

에이전트모니터링 대상지원 OS통신 프로토콜포트설치 방식
Host Agent서버 인프라 (CPU/Mem/Disk/Net)Linux, Windows, AIX, HP-UX, SunOSgRPC / TCP9009 / 9010tgz/exe
DB Agent데이터베이스 (12종 DB)Linux (CentOS 7+), Windows 10+gRPC9009tar/bin/exe
Java AgentJava WAS (트랜잭션/SQL)JDK 8~23TCP9010tar.gz + JVM 옵션
Python AgentPython 웹 앱 (Django/Flask/FastAPI)Python 3.7+TCP9010pip/패키지
Dotnet Agent.NET Framework 앱 (IIS)Windows (.NET Framework 4.8)TCP9010zip + bat
Kafka AgentKafka 클러스터Java 17+, Linux수집 서버 연결9009tar.gz / Docker
NDM Agent네트워크 장비 (SNMP)Linux (root)TCP9010bin
Web Server AgentNginx, Apache 웹 서버JDK 17+, LinuxgRPC9009 + 12848bin / Docker
K8s AgentKubernetes 클러스터K8s 환경gRPC9009YAML/DaemonSet
Container AgentDocker/컨테이너 환경컨테이너 환경gRPC9009패키지

5. 주의사항

  1. 방화벽 포트 개방 필수: 에이전트와 수집 서버(Receiver) 간 통신을 위해 9009(gRPC) 또는 9010(TCP) 포트가 모니터링 대상 → 수집 서버 방향으로 개방되어야 합니다.
  2. Host Agent는 root 설치 권장: 일반 user로 설치 시 서비스 등록 및 프로세스 디스크 read/write 정보 수집이 불가합니다.
  3. Java Agent JDK 9+ 추가 옵션: JDK 9 이상에서는 --add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED 옵션이 필요합니다.
  4. DB Agent Oracle 환경: Oracle 접속 에러 시 .env 파일에 Oracle 환경변수 추가 필요합니다.
  5. Web Server Agent 2단계 설치: Web Server Agent 설치 후 반드시 Web Daemon Module(Nginx/Apache)도 함께 설치해야 웹 서버 모니터링이 가능합니다.
  6. NDM Agent OID Pack 등록: NDM Agent 설치 후 OID Pack Manager 등록을 진행해야 Network Device 데이터 모니터링이 가능합니다.
  7. 에이전트 패키지 파일: 각 에이전트의 설치 파일은 제품기술팀에 문의하여 준비합니다.