oneproxy-monitor 支持協議層的數據調試功能

    oneproxy-monitor是平民軟件開發的一款數據庫監控軟件框架,在oneproxy-monitor中支持客戶端和服務端之間的數據包的輸出。進行中間件開發或者協議開發的時候會使用到這個功能來監控先後端數據的交互狀況,重而進行協議層的調試。前端

    oneproxy-monitor進行協議調試的實現已經被開源到github上面。地址爲:https://github.com/onexsoft/oneproxy-monitor。若是你們有其餘的功能需求能夠留言,咱們將會在在這個框架上面進行增長。mysql

    oneproxy-monitor自己是數據庫監控軟件的框架,在這個框架下只須要簡單的實現幾個接口及能夠開發出一款數據庫監控軟件。目前平民軟件已經在這個框架下面實現了sqlserver,postgresql的數據庫監控軟件。效果能夠參見mysql的監控效果linux

    安裝

1. 從https://github.com/onexsoft/oneproxy-monitor/tree/master/bin/monitor下載目標程序。當前提供了:git

linux的x64版本:oneproxy-monitor-linuxgithub

windows的x64版本:oneproxy-monitor-win64.exesql

2. 從https://github.com/onexsoft/oneproxy-monitor/tree/master/bin/monitor下載配置文件config.ini數據庫

[oneproxy]
logfile = oneproxy_log.log
pidfile = oneproxy_pid.pid
listen_addr = 0.0.0.0
listen_port = 9999,8888,7777,6666
log_level = error
data_dump = true

[fakeprotocol]
host = 127.0.0.1
port = 7838
classname = FakeProtocol

listen_addr: 是監聽客戶端的地址windows

listen_port: 是監控的端口號,能夠經過,來指定多個端口後端

data_dump: 當設置爲true時,就會輸出客戶端與服務端交互的數據包信息服務器

[fakeprotocol]這是後端服務器的標籤名稱,能夠隨意命名(不能重複),這個標籤下面表明一個後端服務器信息

host和port分別表示後端的服務器地址和端口

classname: 當oneproxy-monitor做爲先後端的調試工具時,必須配置爲FakeProtocol.

若是須要指定固定的監控端口的數據轉發到固定的後端,則能夠經過frontport來指定,好比在fakeprotocol下面增長以下的配置項:

frontport = 9999

表示監控端口9999的數據轉發到fakeprotocol指定的後端,其餘的端口都不會轉發到這個後端。

3. 使用方法

把可執行文件和配置文件放到同一個目錄下,或者經過參數-f指定。其中配置文件名稱能夠隨意,可是必定要以.ini文件結尾。下面以調試sql server數據庫爲例,目前個人sqlserver是按照在本地主機的(127.0.0.1),端口爲默認端口:1433。

3.1 修改配置文件

修改後的配置文件以下所示:

[oneproxy]
logfile = oneproxy_log.log
pidfile = oneproxy_pid.pid
listen_addr = 0.0.0.0
listen_port = 9999
log_level = error
data_dump = true

[fakeprotocol]
host = 127.0.0.1
port = 1433
classname = FakeProtocol

配置文件中只指定了一個監控端口9999,,輸出dump數據。

3.2 啓動命令

當配置文件和可執行文件在同一個目錄下時:

./oneproxy-monitor-linux

windows下面直接雙擊oneproxy-monitor-win64.exe程序便可。

3.3 使用客戶端鏈接oneproxy-monitor的地址

設置Mircrosoft Sql Server Manager的地址爲監聽地址爲127.0.0.1, 端口爲9999。在直接鏈接便可。

則Mircrosoft Sql Server Manager與sql server之間的交互數據一一被輸出到了目錄上和日誌文件中。

輸出的數據格式

前端發送數據包到後端和後端發送數據包到前端時都會輸出數據包的內容,格式以下所示:

[dump][1864]front =====> backend:94
 12 01 00 5E 00 00 01 00     |...^....|
 00 00 24 00 06 01 00 2A     |..$....*|
 00 01 02 00 2B 00 01 03     |....+...|
 00 2C 00 04 04 00 30 00     |.,....0.|
 01 05 00 31 00 24 06 00     |...1.$..|
 55 00 01 FF 04 06 06 32     |U......2|
 00 00 00 00 00 00 28 BC     |......(.|
 00 DA 84 CE 96 A3 99 4F     |.......O|
 4B 94 F7 62 E7 00 DB 5E     |K..b...^|
 27 64 4A 45 09 D2 3E D9     |"dJE..>.|
 4A 91 00 2E 9D 5C 98 CB     |J....\..|
 37 02 00 00 00 01           |7.....  |
[dump][1864]backend =====> front:48
 04 01 00 30 00 00 01 00     |...0....|
 00 00 1F 00 06 01 00 25     |.......%|
 00 01 02 00 26 00 01 03     |....&...|
 00 27 00 00 04 00 27 00     |."....".|
 01 05 00 28 00 00 FF 0C     |...(....|
 00 07 D0 00 00 00 00 00     |........|

若是你有更好的想法,請留言,或者關注oneproxy-monitor.

相關文章
相關標籤/搜索