关于smartanalyst的项目设想

smartanalyst是去年年底时一时兴起开发的一个用于Eudemon 1000E防火墙丢包统计查询的软件,后来又增加了IPSecDebug信息分析以及简单的接口统计信息分析。软件采用插件的形式完成各个功能模块,可以利用C/C++来开发插件,而主程序主要用于需要分析的文本的读取,分析操作,结果显示。后来又将IPSecDebug的插件改为一种自定的脚本smartscript来解析,使用该脚本,可以采用xls来编写文本匹配脚本,并保存为csv格式来解析。

smartanalyst到现在为止只是自己实验室分析数据的辅助工具,并且是一个单机版本的软件。后面还是希望将该软件做好,做强大,为整个Eudemon防火墙团队提供数据分析。为了让smartanalyst更好的发展,必须具备以下功能:

1 支持快速开发插件或者脚本,这个就必须要smartscript支持更多的文本匹配能力,如正则表达式,基本的运算;插件开发方面还需要增加支持python脚本的开发环境。这样就可以在一定层度上快速响应临时的分析需求。

2 让主程序支持更多的编辑、查找功能,以便使其代替我们常用的UE或者记事本。目前考虑到可以增加的是可编辑的高亮关键字或关键行显示,支持类似UE的文本查找功能以及文本替换功能。

3 开发服务端程序,现在还是有很多数据以文本的形式存在服务器上,大多数情况下都是靠人的记忆去查找一些关键信息。但随着信息量的增加,记忆变得越来越不可靠,搜索成本越来越高,急需将服务器上的数据导入数据库,提供程序分析,而分析的功能 与当前的插件是一致的,所以可以开发一份服务器版本来复用当前的单机版主程序。

4 单机版本要变为一个客户端,支持单机和联网形式的操作,能自动升级,并同步分析历史数据。

5 需要让更多的人去使用该软件。初步的打算如下:

            a 先网上问题专家组自己使用,这个时候是要替代一些专家组常靠人力重复分析的功能,如丢包统计,接口统计,关键日志分析,重要模块debug分析等。

            b 提供给版本组使用,这个时候需要支持版本组常用的一些功能,如异常栈分析等。

            c 提供给服务人员使用,这个时候需要支持配置有效性查询,简单的巡检项查询等。


增强版的smartscript

最原始的smartscript是采用C++编写的,只支持include匹配和print输出,即某行文本包含脚本中的字符串就执行打印程序。但要支持稍微复杂的匹配,就比较难了,比如从文本中取数据,并执行某些运算,最后再输出,当时想到的是在C++中嵌入TCL,但考虑到自己对TCL不是很熟悉,并且到时候服务端的程序是需要用python开发,所以决定采用python做嵌入脚本,但在网上找了很多资料,却没有找到可以单独在C++中执行python语句,并获取语句中的变量在C++中进行其他运算和格式化输出的,最后还是决定直接用python写。使用python的parser模块,可以直接读取字符串中的脚本,并执行,同时还可以取出变量,用于后期的运算和打印。这样smartscript采用python直接编写后,可以很方便的嵌入python脚本。

在增强版的smartscript中,要先实现之前的include语句,再实现equal语句,最后,也就是重点,实现match语句。所谓match语句,就是在smartscript中直接书写要匹配的文本,其中可以嵌入变量名,每个变量名都可以使用正则表达式来表达其内容,再附上执行的python脚本,主要是对这些变量的值进行处理,得到需要的内容,比如从文本中读到接口的入字节数和入报文数,可以用脚本计算出平均报文大小,并输出。


服务端程序

由于服务端的代码需要全部在公司里完成,依赖公司里的数据去慢慢实现,在公司就没有足够的时间,所以无法迅速完成。只能一点一点去实现。

1 首先要做的是将所有的数据全部倒入到数据库中,初步选定数据库为mysql,需要在我自己的电脑上安装一个mysql。

2 然后完成基本的分析架构,允许直接使用单机版的插件和smartscript,并将输出结果格式化输入到数据库中,以便以后分析。

3 单机版程序增加升级功能和数据同步功能。

4 不断增强功能:如对配置的分析,列出配个配置文件的功能列表,统计每个功能的使用率,统计接口的流量等等。


服务端数据分析部分设计图:






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值