DBエージェント
DBエージェントは、BXIの代わりにデータソース情報を管理し、プロキシでDBにアクセスしてBXIがDBに直接アクセスすることを防止する。
Installation
Step1. unpack
伝達されたdbagent-0.0.1-distribution.zip
をDBエージェント起動位置に圧縮解凍する。
配布ファイルの構造は、下記のとおりである。
caution
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 : Windowsサービスの登録
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