使用syslog-ng进行日志中心化

一个日志中心化设计收集项目,前端有230台的服务器,使用syslogd收集日志,保存在本地磁盘的同时另外发一份到syslog-ng的日志中心服务器上,中心服务器同时把日志分发到两个目的地:本地磁盘存储和一个FIFO。该FIFO作为Source发给PipeReader Class处理,该类对日志进行预处理,如从用户的IP地址查询出对应的城市等。然后发给LogCenter Daemon处理;该Daemon再根据配置文件对数据进行分发到对应的目的的.
架构图如下:


当前存在的问题主要就在Daemon这块,该Daemon的存在是为了对数据进行M:N分发的时候能有一个统一的监控机制和管理平台,但是在分发日志的时候,比如说写Db,存在写入速度太慢的问题,无法及时把daemon收到的数据分发出去,当前还不到300条/s(Db资源受限),如果要继续使用daemon,就必须给daemon增加buffer甚至是disk buffer功能.
而实际上,我们本来可以取消daemon这一层,直接配置syslog-ng的多个destination功能,这样可以使用syslog-ng的fifo buffer等功能。(

作者: hoo7   发布时间: 2010-11-08