oneproxy-monitor 支持协议层的数据调试功能

原创
2016/10/19 13:46
阅读数 611

    oneproxy-monitor是平民软件开发的一款数据库监控软件框架,在oneproxy-monitor中支持客户端和服务端之间的数据包的输出。进行中间件开发或者协议开发的时候会使用到这个功能来监控前后端数据的交互情况,重而进行协议层的调试。

    oneproxy-monitor进行协议调试的实现已经被开源到github上面。地址为:https://github.com/onexsoft/oneproxy-monitor。如果大家有其他的功能需求可以留言,我们将会在在这个框架上面进行增加。

    oneproxy-monitor本身是数据库监控软件的框架,在这个框架下只需要简单的实现几个接口及可以开发出一款数据库监控软件。目前平民软件已经在这个框架下面实现了sqlserver,postgresql的数据库监控软件。效果可以参见mysql的监控效果

    安装

1. 从https://github.com/onexsoft/oneproxy-monitor/tree/master/bin/monitor下载目标程序。当前提供了:

linux的x64版本:oneproxy-monitor-linux

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

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: 是监听客户端的地址

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.

展开阅读全文
打赏
0
6 收藏
分享
加载中
好强大看起来
2016/10/19 19:08
回复
举报
更多评论
打赏
1 评论
6 收藏
0
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部