본문으로 건너뛰기

DB에이전트

DB에이전트는 BXI대신 데이터소스 정보를 관리하며, 프록시를 통해 DB에 접근해 BXI가 DB에 직접 접근하는 것을 방지한다.

Installation

Step1. unpack

전달받은 dbagent-0.0.1-distribution.zip을 DB에이전트 기동 위치에 압축 해제한다. 배포파일의 구조는 다음과 같다.

주의

DB에이전트 서버는 접속하고자 하는 DB에 접근이 가능해야 한다.

.
├── dbagent-0.0.1
│ ├── config
│ │ ├── application.yml
│ │ ├── logback.xml
│ ├── lib
│ │ └── dbagent-0.0.1.jar
│ ├── bxi-dbagent-boot.sh
└───└── README.md
  • bxi-dbagent-boot.sh : DB에이전트 기동 및 종료용 스크립트
  • config/application.yml : DB에이전트 설정yml
  • config/logback.xml : DB에이전트 로깅 설정xml
  • lib/dbagent-0.0.1.jar : DB에이전트jar

Step2. configuration

모니터링 인스턴스의 용도에 따라 application.yml을 수정한다.

config/application.yml
server:
port: 8080
proxy-port: 3034
threads: 256
buffer-size: 8192
connect-timeout: 2000

datasource:
jdbc-url: jdbc:oracle:thin:@localhost:3034:ora11g
username: fep344
password: fep344123
# encrypted-password: asw9RtjZ76dXOLSqkC+jKA==

database:
url: localhost
port: 1521

management:
endpoint:
health:
show-details: always

logging:
config: config/logback.xml
  • server.port: DB에이전트 REST API 톰캣서버의 포트. BXI에서 접근이 가능해야하며, BXI의 데이터소스 정보에는 실제 DB포트대신 해당 포트를 입력한다.
  • server.proxy-port: DB에이전트를 통해 DB에 접근할 시 사용하는 프록시 포트.
  • server.threads: 프록시 시 사용하는 스레드풀 최대 갯수
  • server.buffer-size: 프록시 데이터 IO시 사용할 버퍼 크기
  • server.connect-timeout: DB에 연결할 때 사용할 최대 대기 시간(ms)
  • datasource.jdbc-url: BXI에 REST API를 통해 리턴하는 JDBC URL. 반드시 DB에이전트의 IP와 프록시 포트가 입력되어야 한다.
  • datasource.username: BXI에 REST API를 통해 리턴하는 실제 데이터소스 유저
  • datasource.password: BXI에 REST API를 통해 리턴하는 실제 데이터소스 패스워드. 해당 값은 암호화되어 전송된다.
  • datasource.encrypted-password: 암호화된 패스워드일 시 사용한다. datasource.password와 중복으로 사용 시 에러가 발생하므로 유의한다.
  • database.url: 실제 접근할 DB의 URL
  • database.port: 실제 접근할 DB의 포트
  • management.endpoint.health.show-details: DB에이전트 헬스체크 시 상세정보를 반환한다. 설정 내용 중 datasource 내용이 변경되었을 시, 엔진에서 해당 내용을 자동 적용하고자 하는 경우 사용한다.
  • logging.config: DB에이전트 로깅 설정파일 위치

Usage1: 스크립트 기동

스크립트를 통해 인스턴스를 기동한다. 정상 기동 시, dbagent-0.0.1 디렉토리 하위에 logs디렉토리가 생성된다.

./bxi-dbagent-boot.sh start

Usage2: 윈도우 서비스 등록

bxi-db-agent.service.exe를 이용해 서비스를 등록한다. 만약 사용 중인 PC의 .net framework버전이 2.x만 설치되어 있다면 bxi-db-agent.NET2.exebxi-db-agent.service.exe로 변경해 사용한다.

bxi-db-agent.service.exe install

설정 예시

실제로 접속할 DB는 URL 17.0.0.1의 1521포트로 열려있고, DB에이전트는 17.0.0.2의 8080포트로 기동 중이며, DB에이전트와 DB는 3034포트로 통신한다.

BXI Webadmin

DB에이전트 application.yml

config/application.yml
server:
port: 8080
proxy-port: 3034
threads: 256
buffer-size: 8192

datasource:
jdbc-url: jdbc:oracle:thin:@17.0.0.2:3034:ora11g
username: fep344
password: fep344123

database:
url: 17.0.0.1
port: 1521

FAQ

Oracle RAC사용 시 설정

각각의 데이터소스를 에이전트 2대로 기동해야 하며, 인터페이스에는 1번 데이터소스를 등록한다.

JDBC URL

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=OFF)(FAILOVER=ON)
(ADDRESS=(PROTOCOL=TCP)(HOST=192.0.0.1)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=192.0.0.2)(PORT=1522)))
(CONNECT_DATA=(SERVICE_NAME=orcl)(SERVER=DEDICATED)))

DB에이전트1

config/application.yml
server:
port: 8080
proxy-port: 3034
threads: 256
buffer-size: 8192

datasource:
jdbc-url: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=OFF)(FAILOVER=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=17.0.0.2)(PORT=3034)(ADDRESS=(PROTOCOL=TCP)(HOST=17.0.0.2)(PORT=3035)))(CONNECT_DATA=(SERVICE_NAME=orcl)(SERVER=DEDICATED)))
username: fep344
password: fep344123

database:
url: 192.0.0.1
port: 1521

DB에이전트2

config/application.yml
server:
port: 8081
proxy-port: 3035
threads: 256
buffer-size: 8192

datasource:
jdbc-url: jdbc:oracle:thin:@17.0.0.2:3035:orcl
username: fep344
password: fep344123

database:
url: 192.0.0.2
port: 1522