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.