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.exe
를 bxi-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