谈OSSIM服务器内存开销问题

 

OSSIM经历十多年发展,目前已经成为最优秀的开源安全事件信息管理平台,它在我国的应用才刚刚起步。多年前,在国外考查时我意外发现了这款优秀的软件系统,并不断改进之后开始在国内开始推广应用OSSIM,在我撰写的《Unix/Linux网络日志与流量监控》一书中花费30%的笔墨,讲述了OSSIM部署及应用技巧。但初学者往往多这种系统的硬件要求之高并不理解,本文就谈谈到底OSSIM的哪些服务在消耗着内存。除操作系统本生以下子系统将消耗大量内存。(有关系统硬件选型问题大家可参考我的专著)

 

1.iptables链、表及规则都消耗有限的系统内存,而且规则加载越多消耗内存越大;

 

2.Snort模块,工作时既消耗CPU计算资源它的规则同时消耗大量内存,我们知道,利用Snort可以将SPAN过来的流量进行深度包检测,这是系统需要对数据包的内容进行识别,分析和分类,将采用基于字符串的多模式匹配算法和基于正则表达式的多模式匹配算法,这样以来大部分CPU的计算时间将被snort占用,与此同时snort还会连接数据库产生大量日志从而占用磁盘IO

 

3Squid,实现squid对本机的apache服务实现加速功能,我们可以在/etc/squid3/squid.conf配置文件的“Recommended minimum configuration”推荐最小化配置一栏查找具体配置;

 

4Memcache,当数据量大时,利用memcached可以缓存session数据、临时数据以减少对他们的数据库写操作,但它消耗内存也很大,当系统数据集返回的数据量比较小时,还可以全部结果缓存到memcached中,以提高查询速度的目的,如果返回数据量增大,甚至超过memcached预设容量,那么数据集将丢失数据,造成系统异常,别忘了,缓存整个数据集都需要将结果进行序列化,所以这是一种比较消耗内存的一种方式。

 

5) Redismemcache,都是基于key/value存储,当插入的数据越多时消耗内存越大,当数据继续增加他们有可能会占用70% 的内存,消耗很大;

 

6)LAMP,Linux系统本身的内存消耗外,还有ApacheMysqlPHP及模块的内存消耗;

 

7)OSSEC,利用规则进行***检测分析时,消耗大量内存;

 

8OpenVas在进行漏洞扫描时会加载漏洞库这样会消耗大量内存;

 

9Ntop,在监控时,在读取流量到Ntop中,ntop将产生大量主机数量,这可能消耗大量服务器内存;如果利用"q”参数将ntop产生的可以包转储为文件在这一过程中,同样消耗内存;

 

10Agent,在Sensor中包含上百个Agent插件这些都消耗着大量内存;

 

11Alienvault框架运行同样消耗内存;

 

12OSSIM中关联引擎的聚合模块,在处理复杂报警并对报警事件进行聚合处理时,会进行大量计算消耗内存以及CPU资源,特别是对于短时间多次连续***,扫描引擎的报警数目更多,基于网格的聚合方法,合并起来系统做关联分析任务量很大,所以会消耗大量系统资源。

 

最重要的三个指标:内存大小、CPU数量、磁盘I/O及网络I/O大小 

 

16GB内存是基本配置就不足为奇,最好将服务器内存配置到32GB及以上。如果服务器内存小于8GB的环境中使用OSSIM,还不如现在就放弃 :-)