본문으로 건너뛰기

DB Agent 설치

1. 모듈 설명

exemONE DB Agent(exemone-db-agent)는 데이터베이스의 성능 지표(세션, SQL, Wait Event, Tablespace, Parameter 등)를 수집하여 엑셈원 수집 서버(Receiver)로 전송하는 모니터링 에이전트입니다.

DB Agent는 두 가지 형태로 존재합니다.

  • Default DB Agent (수집서버 내장): 엑셈원 패키지에 포함되어 수집 서버에서 대상 DB로 직접 접속하여 데이터를 수집합니다.
  • 개별 DB Agent: 대상 DB 서버에 직접 설치하여 해당 DB의 데이터를 수집한 후 Receiver로 전송합니다. 보안상 수집 서버와 직접 연결이 불가능하거나, OS 정보, Slow Query 등 추가 데이터 수집이 필요한 경우 개별 DB Agent를 사용합니다.

2. 지원 환경

항목내용
OSLinux
Arch64bit (AMD64 · ARM64)
PlatformOn-premise
DBPostgreSQL 9.6 이상
SQL Server 2012 이상
MySQL 5.5 이상 / MariaDB 10 이상
(MySQL 5.5 는 일부 지원)
Oracle 12c 이상
Redis 3.0.0 이상
CUBRID 9.2.1 이상
MongoDB 4.0.0 이상
Tibero 5 이상
Altibase 6.3 이상
(6.3 은 일부 지원)
ClickHouse v24.8.6.70 이상
Amazon Redshift
SingleStore 8.9 이상
ProtocolgRPC 9009 → Receiver
CloudAWS
Azure
OCI
GCP
NCP
KT Cloud
Samsung Cloud (SCP)

3. 통신 포트

구분출발지도착지TypePort내용
Default DB Agent (수집서버 내장)엑셈원 수집 서버대상 DBTCPDB Listener PortDB 지표 수집
개별 DB Agent모니터링 대상 장비엑셈원 수집 서버 (Receiver)gRPC9009범용 gRPC 요청 및 응답

4. 설치 절차

개별 DB Agent를 설치하는 방법은 다음과 같습니다. 수집 서버 내장 DB Agent는 별도 에이전트 등록 없이 대상 연결이 가능합니다.

4-1. 엑셈원 웹 UI에서 Agent 등록

  1. 프로필 > 환경설정 > 관리 > 에이전트 메뉴로 이동합니다.

  2. 상단의 [에이전트 추가] 버튼을 클릭합니다.

clipboard

  1. 에이전트 타입에서 데이터베이스를 선택합니다.

  2. 에이전트 생성 화면에서 Agent IDAccess Token을 확인합니다. Access Token은 Regenerate 선택 후 확인하며, 확인 후 반드시 [저장]을 클릭합니다. 에이전트 이름을 직접 입력합니다.

위험
발급받은 에이전트 ID와 엑세스 토큰 정보를 반드시 기록해 두시고, **[저장]** 버튼을 클릭하여 에이전트가 목록에 정상적으로 추가되었는지 확인하세요.
  1. Instance 탭에서 Add Group을 선택하여 그룹을 추가한 후, Add Instance를 선택하여 인스턴스를 추가합니다. Agent 항목에는 1단계에서 추가한 Agent를 등록합니다.

clipboard

4-2. DB 서버에 exemone-db-agent 설치

Linux 환경 설치

방법 1. tar 파일로 설치

  1. exemone 계정을 생성한 후 exemone-db-agent 압축을 해제합니다.
  2. conf/agent.yaml 파일 내 Agent ID, Access Token, Receiver 정보를 추가합니다.
    주의

    값 입력 시 agent_id: 뒤에 반드시 한 칸 공백이 있어야 합니다.

clipboard

  1. ./startup.sh 스크립트를 실행하여 exemone-db-agent를 실행합니다.

  1. 에이전트가 실행되면 logs 폴더가 생성됩니다. logs/agent.log 파일을 확인하여 에러 발생 여부를 확인합니다. 정상적으로 연결된 경우 다음과 같은 로그가 발생합니다.

방법 2. bin 파일로 설치

  1. bin 파일에 실행 권한을 부여합니다.

    chmod +x setup_exemone-db-agent_v3.0.412.9.0.bin
  2. bin 파일을 실행합니다.

    ./setup_exemone-db-agent_v3.0.412.9.0.bin
    ===
    exemone-db-agent Install
    ===

    new install start
    Would you like to do a new install? (y/n)
    y
    xmSuccess(0): Installation is complete.
  3. exemone-db-agent/conf/agent.yaml 파일을 수정하여 Agent ID, Access Token, Receiver 정보를 입력합니다.

  4. exemone-db-agent/start.sh를 실행합니다.

    ./start.sh
    xmSuccess(0): exemONE DB agent start success

Windows 환경 설치

  1. setup_exemone-db-agent_{version}.exe 파일을 실행합니다. 서비스로 등록하여 사용하려면 해당 옵션을 체크하여 설치합니다.

  1. {exemone-db-agent-home}\\conf\\agent.yaml 파일 내 Agent ID, Access Token, Receiver 정보를 추가합니다.
    주의

    값 입력 시 agent_id: 뒤에 반드시 한 칸 공백이 있어야 합니다.

  1. start.bat을 실행하여 exemone-db-agent를 실행합니다.
  2. 에이전트가 실행되면 logs 폴더가 생성됩니다. logs/agent.log 파일을 확인하여 에러 발생 여부를 확인합니다. 정상적으로 연결된 경우 다음과 같은 로그가 발생합니다.

5. 설정 파일 상세 (agent.yaml)

agent.yaml 파일은 {DB_AGENT_HOME}/conf/agent.yaml 경로에 위치하며, 주요 설정 항목은 다음과 같습니다.

설정 항목설명비고
global.agent_id엑셈원 웹에서 발급받은 Agent ID필수. : 뒤에 공백 필수
global.access_token엑셈원 웹에서 발급받은 Access Token필수. 저장 후 확인
global.receiver수집 서버 Receiver 주소 (IP:9009)필수
global.installed_pathdb-agent 설치 경로필수
global.run_pathdb-agent 실행 경로필수
log.caller로그 호출자(함수명, 라인번호) 포함 여부기본값: false
log.level로그 레벨 설정info, warn, error, panic, debug, trace
log.file로그 파일 경로경로 변경 시 에이전트 재기동 필요
log.max-backups보관할 로그 파일 수v3.0.504.15.44 이후 지원
log.max-size로그 파일 최대 크기 (MB 단위)v3.0.504.15.44 이후 지원. 1024로 계산
log.max-age로그 파일 보관 일수v3.0.504.15.44 이후 지원

5-1. 로그 경로 변경 방법

  1. db-agent를 중지합니다: {DB_AGENT_HOME}/stop.sh
  2. {DB_AGENT_HOME}/conf/agent.yaml 파일 내 로그 경로를 변경합니다.

clipboard

  1. db-agent를 시작합니다: {DB_AGENT_HOME}/start.sh
    참고

    변경할 로그 경로에 에이전트 실행 계정의 권한이 설정되어 있어야 합니다.

6. Linux systemd 서비스 등록 (선택사항)

db-agent v3.0.506.15.10 이상 버전부터 systemd 서비스 등록이 지원됩니다.

  1. db-agent 설치 후 conf/agent.yaml 파일에 name: agent 항목을 추가합니다.

    log:
    caller: false
    level: info
    file: /home/exemone/db_agent/exemone-db-agent/logs/agent.log
    name: agent # ==> 추가
  2. 서비스 파일을 복사하고 적용합니다.

    # 서비스 파일 복사
    sudo cp exemone-db-agent.service /etc/systemd/system/

    # 서비스 파일 적용
    sudo systemctl daemon-reload
  3. 서비스를 실행하고 상태를 확인합니다.

    # 서비스 실행
    sudo systemctl start exemone-db-agent

    # 서비스 상태 확인
    systemctl status exemone-db-agent

    # 서비스 종료
    sudo systemctl stop exemone-db-agent

7. 수동 패치 방법

  1. db-agent를 중지합니다: {DB_AGENT_HOME}/stop.sh
  2. 별도 디렉토리를 생성하고 bin 파일을 수행합니다.
    mkdir ins
    chmod +x setup_exemone-db-agent_{version}.bin
    ./setup_exemone-db-agent_{version}.bin
  3. 생성된 실행 파일을 기존 경로에 복사합니다.
    cp -R exemone-db-agent/exemone-db-agent-{version} {DB_AGENT_HOME}
  4. .env 파일에서 버전 정보(DB_AGENT_VERSION)를 수정합니다.
  5. db-agent를 시작합니다: {DB_AGENT_HOME}/start.sh

8. 관리 스크립트

스크립트설명
./startup.sh 또는 ./start.shdb-agent 시작
./stop.shdb-agent 종료
start.bat (Windows)db-agent 시작 (Windows 환경)

9. 참고 사항

9-1. Oracle 접속 에러 발생 시

Oracle DB의 경우 다음과 같은 에러가 발생하면, db-agent 설치 경로 내 .env 파일에 Oracle 접속을 위한 환경변수 값을 추가합니다.

9-2. 비밀번호 암호화/복호화

보안 정책에 따라 모니터링 대상 DB 비밀번호를 암호화된 형태로 관리할 수 있습니다.

  • 암호화:
    {EXEMONE_HOME}/scripts/crypto-cli encrypt --plaintext {평문}
  • 복호화:
    {EXEMONE_HOME}/scripts/crypto-cli decrypt --ciphertext {암호화 텍스트}

10. 주의사항

  1. agent_id 설정 시 YAML 문법 주의: agent_id: 뒤에 반드시 한 칸 공백이 있어야 합니다.
  2. Unix 미지원: exem-db-agent는 AIX, HP-UX, SunOS 등 Unix 환경을 지원하지 않습니다. Linux 및 Windows만 지원합니다.
  3. 방화벽 포트 개방: 개별 DB Agent와 Receiver 간 gRPC 9009 포트, Default DB Agent와 대상 DB 간 DB Listener Port가 개방되어야 합니다.
  4. Access Token 저장 필수: Agent 생성 후 Regenerate로 토큰 확인 시 반드시 [저장]을 클릭해야 합니다. 저장하지 않으면 토큰이 적용되지 않습니다.
  5. Oracle 환경변수: Oracle DB 접속 에러 시 .env 파일에 Oracle 환경변수(LD_LIBRARY_PATH, ORACLE_HOME 등)를 추가해야 합니다.
  6. systemd 등록: db-agent v3.0.506.15.10 이상에서만 systemd 서비스 등록이 지원됩니다.
  7. 로그 설정: max-backups, max-size, max-age 옵션은 db-agent v3.0.504.15.44 이후 버전부터 지원됩니다.
  8. 수집 쿼리 수정 후 반드시 재기동: 수정된 쿼리를 적용하려면 db-agent를 재기동해야 합니다.
  9. 패키지 파일 준비: 설치 파일은 제품기술팀에 문의하여 준비합니다.