低成本,灵活的日志聚合

我开始拥有必须pipe理的Ubuntu虚拟机的集合。 我开始调查木偶pipe理他们所有的configuration,和apticron让我知道什么是过时的。 但是,我觉得我应该早日处理的问题是日志聚合。 我现在想留在自由/开放源代码领域,看到我们没有很多像splunk这样的预算。

除了系统日志以外,我还想收集特定于应用程序的日志(我们在不同的机器上运行不同的应用程序,从rails的nginx + passenger到java的Apache + Tomcat,expression式引擎的PHP以及mysql / postgresql数据库服务器) ,以便我们可以分析相关数据。

现在,我只是想把所有的日志都放在一个地方。

许多应用程序可以login到系统日志,这意味着您可以将日志获取到日志服务器。 apache,mysql,tomcat(log4j)至less可以。

那么你需要一个有能力的系统日志服务器来进行聚合。 我使用syslog-ng,但那是因为这是7年前唯一的严重的select。 Debian Lenny切换到rsyslog,这可能有一个更加安全的代码库和更多的function。

根据我的经验,一个好的正则expression式引擎是聚合系统日志服务器中最重要的部分。 有太多你想过滤的gorp,所以你可以看到相关的部分。 如果您想快速入门,还可以在聚合日志中指向日志。

编辑:我应该明确。 我们的策略是将特定主机上的所有内容logging到该主机的文件夹中的一个或多个文件中,同时login到经过大量筛选的文件中,以便在所有主机上logging某些活动。 例如,所有主机上可能都有login失败的文件。

另一个有趣的项目是Octopussy 。 这是一个开源日志分析器,警报器和记者。 我还没有机会设置这个,但我已经听到了一些好的事情。

别人提到了Zenoss。 我使用Zenoss,虽然它可以基于日志提醒,但我不会说这是它的强项。 它的主要任务是基于snmp监视和警报,这是我使用它的。

LogZilla具有很高的可扩展性(数亿个事件),是同类软件中十分之一的成本。 它也更容易使用。

对于日志聚合和分析,您应该尝试ECA (事件关联和分析)或SIEM (安全信息事件pipe理器)。 例如:

  • AlienVault
  • Zenoss的
  • Splunk的

摘要分析, Flume是一个梦幻般的开源日志传输和聚合。 它有一个活跃的社区,并得到Cloudera的支持。