packetbeat的oracle协议扩展

作者 ggg | 发布于2017年05月10日 | | 阅读数:2617

oracle由于是商用软件,协议并不公开,而且相比mysql等开源数据库软件,协议复杂度加了不止一个量级。
出于版权考虑,packetbeat并没有加入oracle协议的支持,只能自己动手。
好在beats充分考虑了扩展性,把公共的基础工作抽象成框架,新协议的扩展只需要专注于协议的分析和解码。
tns协议是oracle客户端和服务端通信协议,应用可以通过OCI、JDBC等接口去访问数据库。
tns协议有多个版本,不同版本之间差异也比较大,11g是主流tns版本为314。
目前完成308、310、313、314、315版本的解析
 
packetbeat支持pcap、pf_ring等抓包方式,通过kafka+es+kibana展示,效果如图
 
es.png

[尊重社区原创,转载请保留或注明出处]
本文地址:http://elasticsearch.cn/article/169


20 个评论

赞啊,代码考虑开源不咯?
不错!?
ggg

ggg 回复 medcl

估计packetbeat官方也不会接受oracle的代码的,毕竟oracle不开源
medcl

medcl 回复 ggg

这个需求 其实大大的有,可以发个 pr试试。
发pr的话那我得好好整理代码,因为针对实际网络流量在代码处理上做了一些妥协,不并能完全覆盖通用环境
请问您的代码已经开源了吗?我能参考学习吗,谢谢了
还没有,原因一个是涉及oracle公司产权保护,第二是代码不算通用,部分协议细节没有完全分析透彻
你好,你的这个responseTime的时间单位是多少?ms吗?还是ms/1000?
ggg

ggg 回复 李乃东

ms/1000
我先解析一下sql语句部分,能否学习一下你的代码
楼主。。能否给一份TNS的协议呢?DATA部分实在不知道怎么下手。
ggg

ggg 回复 李乃东

给个邮箱吧
李乃东

李乃东 回复 ggg

sglnd@126.com,谢谢了
nnz

nnz 回复 李乃东

也给我一份吧,谢谢! nn.z@outlook.com
LZ,tns 314 Data数据包的数据部分前4个字节是Data flag吗?我解析出来的值一直不是 0x00,但是有的文章说前2个字节是Data flag,想请教一下这个问题
Data flag是两个字节,你可以看下Wireshark
nnz

nnz 回复 ggg

好的,谢谢
你好,指定连接Oracle时tns版本,用的什么工具?
ggg

ggg 回复 nnz

oracle JDBC Driver版本
nnz

nnz 回复 ggg

314版本,一直找不到合适的驱动包

要回复文章请先登录注册