我们这边做的是一个监控工具,主要监控程控交换机的一些状态输出信息,如告警、日志、MML(man manchine language)等数据,对这些数据进行分析,然后回应一些命令,回应一般用telnet协议
2011-3-26 21:53:17 rocket
这块的日志数据量会很大,可能几秒就会产生十几个20M的日志记录文件
2011-3-26 21:53:47 rocket
要对日志信息作分析,会用到正则表达式的工具
2011-3-26 21:55:29 rocket
MML的格式: [命令][对象]:[参数名1=参数值1][参数名2=参数值2]...[参数名n=参数值n]
2011-3-26 21:56:11
telnet是自己实现吗?
2011-3-26 21:56:12 rocket
几个模块需要同时工作
2011-3-26 21:56:18 rocket
嗯 没错
2011-3-26 21:57:13 rocket
telnet协议比较简单,不过我这边还没有好的文档,《tcp-ip协议详解》里应该会有
2011-3-26 21:57:49 rocket
以前有本,搬家时不小心丢了
2011-3-26 21:58:53 rocket
哦 今天还是地球关灯一小时
2011-3-26 21:58:58
分析是在服务器做,还是客户端
2011-3-26 21:59:17
[表情]
2011-3-26 21:59:38
数据的分析
2011-3-26 21:59:52 rocket
客户端 服务器只是输出数据,然后可以接受一些命令
2011-3-26 22:00:12 rocket
对 这块的数据分析是个大头
2011-3-26 22:00:50
分析放在哪里做呢?
2011-3-26 22:01:00 rocket
客户端啊
2011-3-26 22:01:27 rocket
读取日志文件信息,告警信息,还有其他的一些
2011-3-26 22:01:55 rocket
分析可以使用正则表达式匹配
2011-3-26 22:02:33 rocket
我个人的想法是将这些正则表达式放在配置文件中,我想这个是可以肯定的
2011-3-26 22:03:13 rocket
这样可以随需求的变化更改
2011-3-26 22:04:14
对啊,这样比较方便
2011-3-26 22:04:28 rocket
如果是这样的话关键就是如何组织这些正则表达式,把它放在一个比较方便的地方,一个好的模型的
2011-3-26 22:05:16 rocket
可以肯定的是这里要用的状态机,当然正则表达式本身就是个状态机
2011-3-26 22:05:48
不同的格式应该有个编号吧
2011-3-26 22:05:54 rocket
数据读取后通过正则表达式进行分析,分类的
2011-3-26 22:06:00 rocket
嗯 应该有个版本号
2011-3-26 22:06:15 rocket
编号+版本号
2011-3-26 22:07:28 rocket
编号用于格式,版本号用于升级
2011-3-26 22:08:34 rocket
所以分析功能要作为一个单独的强模块
2011-3-26 22:10:02 rocket
然后日志、告警、MML再加个telnet几个模块,之间相对独立,但又有存在交互和调用
2011-3-26 22:10:30 rocket
所以需要一个管理类
2011-3-26 22:12:02 rocket
你原先做的服务器和这个类似么
2011-3-26 22:16:10
我们以前只写日志
2011-3-26 22:16:32
没有分析模块
2011-3-26 22:16:51 rocket
哦~~
2011-3-26 22:17:32 rocket
那你不说要对客户端的请求进行分流么
2011-3-26 22:18:22
分流是读配置文件来的
2011-3-26 22:18:51 rocket
哦~~ 什么意思
2011-3-26 22:19:08 rocket
分流具体是做什么的
2011-3-26 22:19:15
你们是不是定时更新的那种
2011-3-26 22:19:26 rocket
嗯
2011-3-26 22:19:53 rocket
应该是 不过时间间隔应该在几秒之内
2011-3-26 22:20:31 rocket
也就是说对性能要求会很高,要求在几秒之内处理完一次所有的数据
2011-3-26 22:21:20 rocket
如果数据量大的话 我想这里肯定会涉及到生产-消费模型用来缓冲数据
2011-3-26 22:23:26
监控应该是实时的吧,应该是保存完整的,但显示应该是最新的吧
2011-3-26 22:23:58 rocket
嗯 没错
2011-3-26 22:24:21 rocket
呵呵 你还是挺有经验的
2011-3-26 22:26:09 rocket
实时响应一些异常情况,然后定时输出状态
2011-3-26 22:26:41
这里应该分两块,最新的数据拿来显示,如果来不及就丢掉一些
2011-3-26 22:27:15 rocket
哦 你说的现实丢掉 还是分析丢掉
2011-3-26 22:27:20
另一块是保存完整的数据
2011-3-26 22:27:33 rocket
哦
2011-3-26 22:28:09
你最终要保留的是什么
2011-3-26 22:28:54 rocket
我想保留的应该是一些异常情况吧 正常情况只需要做个统计
2011-3-26 22:29:06 rocket
哦 对了里面还需要有个统计模块
2011-3-26 22:31:06 rocket
他这边要保留一些输出的异常,对告警进行分析,过滤其中一些不重要的告警
2011-3-26 22:32:46
那这样的话,就不能因为处理不过来就丢掉了
2011-3-26 22:34:33
每条告警都要显示,而且是有序的
2011-3-26 22:35:09 rocket
我想处理的应该是一起异常,正常的情况就可以丢掉了,只需要做个统计
2011-3-26 22:35:36 rocket
嗯 这里应该有个分个级别
2011-3-26 22:35:48 rocket
重要,不重要,其他
2011-3-26 22:36:51
告警的级别肯定要的
2011-3-26 22:37:58 rocket
这个用户可以自己设置,先识别一些可以识别的,跟据已有的规则分为重要和非重要,然后将未能识别的放到其他中,待用户自己识别
2011-3-26 22:38:44 rocket
有点类似于wireshark这样的码流工具
2011-3-26 22:40:02 rocket
显示的话就显示重要的
2011-3-26 22:40:24
如果数据量很大的话,产生了堆积,怎么处理呢
2011-3-26 22:40:53 rocket
生产-消费者模型可以处理么
2011-3-26 22:41:03
那就不是实时的状态了
2011-3-26 22:41:21
不知道
2011-3-26 22:41:34 rocket
但是异常不会占大多数吧
2011-3-26 22:41:57 rocket
你说的数据量大,是指待分析的?
2011-3-26 22:42:50
对呀,来不及分析了,产生了堆积
2011-3-26 22:43:20 rocket
要是这样的话,就要用分布式处理了,将分流交给一个PC,分析交给另一个PC
2011-3-26 22:44:00 rocket
再往下分 一个模块处理给一个PC
2011-3-26 22:44:14 rocket
不过我觉得现在的PC性能应该够
2011-3-26 22:45:36 rocket
我觉得关键是对异常的处理,首先有个大的区分,然后再对重要的部分做详细分析
2011-3-26 22:46:27 rocket
分析前的数据如果来不及处理,应该不是一台PC能处理过来的
2011-3-26 22:48:21 rocket
或者就要考虑分布式的处理,多线程还是什么? 像你们服务器如果连接的客户端太多 不知道是怎么处理的
2011-3-26 22:49:20
对,其实一般情况下,流程很清晰的,一个数据服务器,提供数据,一个客户端,不断的取数据,然后分析统计
2011-3-26 22:50:10
我们没有考虑这个问题
2011-3-26 22:51:27
那些数据都是文件形式的吧
2011-3-26 22:51:30 rocket
以前,我们这么处理过。用几台机子完成功能,一台机子专门用于接收和过滤,另一台用来进行分析,显示,控制
2011-3-26 22:51:37 rocket
嗯 日志是的
2011-3-26 22:51:51 rocket
还有的是读数据库
2011-3-26 22:52:13 rocket
还一部分应该是通过socket
2011-3-26 22:53:27
数据库是谁来读呢
2011-3-26 22:53:46 rocket
客户端吧
2011-3-26 22:54:17 rocket
SQL2000
2011-3-26 22:55:06
是什么内容,应该不是实时的吧
2011-3-26 22:56:58 rocket
应该不是
2011-3-26 22:57:19 rocket
这块的数据应该不是很大 大的是日志文件
2011-3-26 22:57:57 rocket
还有种可能就是文件在被写入的时候客户端就可以被通知到
2011-3-26 22:59:37
其实我觉得,日志分析可以分两个方式,一种是客户端分析,还有一种是服务器分析
2011-3-26 23:01:01
服务器分析有几个好处,可以减少网络压力
2011-3-26 23:02:14
客户端拿到的是最新的分析数据
2011-3-26 23:03:02
不需要每个客户端各自做分析了