Splunk给我留下了深刻的印象,尤其是第 4 版。漂亮的图表、警报(仅限企业版)以及快速、准确的搜索。这是一个很棒的产品。
但是,对于我们公司的全面生产使用来说,成本太高了。我们真正需要的是能够在一个中心位置索引不同的日志,并对其进行合理的搜索。基于已保存搜索的警报也非常好。我们并没有真正超越。
事实上,我们最大的用途是部署新的应用程序。一切都通过 log4net 记录到 Windows 上的事件日志或 Linux 上的文本文件中。Splunk 可以很容易地快速搜索这些内容,以确保应用程序的所有部分都正常工作——与寻找单个日志记录源相比,这为我们节省了大量时间。
这个市场有哪些替代品?我有一种沉沦的感觉,Splunk 的定价如此之高,因为他们拥有迄今为止最好的产品,而且他们知道这一点。我们希望服务器在 Windows 上运行。
我对拆分模型持开放态度,将一个产品用于一般日志(通过 syslog/Snare 收集),将一个专用产品用于我们的自定义应用程序(如Log4Net Dashboard)。
使用简单的 syslog 服务器(如 Kiwi)发送到 SQL Server(可能启用全文)是否可行?
我希望成本应该远低于 5 位数,美元。(是的,我知道,我们很便宜。我们是一家资金很少的初创公司,BizSpark 负责我们所有的 MS 许可。)
编辑:我应该补充一下,我们有大约 10 台物理服务器、20 台虚拟机以及几个防火墙和交换机。90% 是 Windows。
注意:这都是关于 Linux 和免费软件的,因为这是我最常使用的,但你应该可以在 Windows 上使用 syslog 客户端将日志发送到 Linux syslog 服务器。
记录到 SQL 服务器: 只有大约 30 台机器,你应该可以使用几乎任何集中式系统日志和 SQL 后端。我在 Linux 上使用syslog-ng和 MySQL 来做这件事。
用于图形的漂亮前端是主要问题——似乎有很多被黑的前端会从日志中抓取项目并显示有多少命中、警报等,但我没有发现任何集成和干净的东西。诚然,这是您要寻找的主要内容...(如果我发现任何好的东西,那么我将更新此部分!)
警报:我在 Linux 服务器上使用SEC来查找日志中发生的不良事件并通过各种方法向我发出警报。它非常灵活,不像 Splunk 那样容易点击。这里有一个很好的教程,它指导了许多可能的功能。
我还将Nagios用于各种统计数据的图表和一些我从日志中没有得到的警报(例如服务关闭时等)。这可以轻松定制以添加您喜欢的任何图形。通过让代理使用check_logfiles插件来计算日志中的命中次数(它保存了每个检查周期达到的位置),我添加了项目图表,例如对 http 服务器的命中次数。
总体而言,这取决于您设置它需要花费多少时间,因为您可以使用许多选项,但它们不像 Splunk 那样集成,并且可能需要更多的努力才能完成您想要的操作。Nagios 图表易于设置,但不会在您添加图表之前为您提供历史数据,而使用 Splunk(可能还有其他前端)您可以回顾过去的日志并绘制您刚刚制作的图表想到从他们来看。
另请注意,SQL 数据库格式和索引将对查询速度产生巨大影响,因此您对全文索引的想法将极大地提高搜索速度。我不确定 MySQL 或 PostgreSQL 是否会做类似的事情。
编辑:MySQL 将进行全文索引,但仅在MySQL 5.6 之前 的 MyISAM 表上。在 5.6 中添加了对 InnoDB 的支持。
编辑:Postgresql 当然可以进行全文搜索:http ://www.postgresql.org/docs/9.0/static/textsearch.html
比 windows 更针对 *nix,但octopussy确实支持 windows,并且似乎针对与 splunk 相同的东西。
我正在尝试多种监控解决方案 - 但我想主要监控窗口。大多数系统都适用于 SNMP 监控,它可以在没有代理的情况下提取大量信息。
这些是我迄今为止尝试过的一些系统:
Nagios - 开源。一个配置但评价很高的猪,看起来非常灵活。它似乎本质上是一个计数器记录器,不允许远程脚本执行,因此不能用于解决配置问题,例如 MS 系统中心或 Kaseya。无代理,但如果没有在每个客户端上安装 NSclient 工具,它基本上是无用的。
Cacti - 基于提取 snmp 统计数据的漂亮而直接的图形工具。无代理。
OpsView - 基于 Nagios,但更易于配置并且具有更好的前端。
HypericHQ - 在 Windows 下易于启动和运行。基本版本是免费的并且功能很多。有一个商业 HypericHQ 企业。必须在每个客户端上安装代理。
Zabbix - 另一个不错的监控工具。它比 nagios 更容易使用。有一个可以安装在 Windows 和客户端机器上的代理。到目前为止,我只探索了这一点。
Zenoss - 开源。Zenoss 的专业性给我留下了深刻的印象。它是一个基于 SNMP 的监视器,并具有大量的扩展,以允许监视 HP proliants、windows 服务、ms sql server、mysql。这些扩展都通过 SNMP 工作,因此不需要在客户端机器上安装任何东西。我还没有完全探索它,而且似乎还有很多我还没有利用的功能。它基于 Zope,所以除非你能快速安装 Zope,否则我建议下载预先准备好的 VM——它就像一个开箱即用的梦想。
在商业方面,您可以查看一些工具:
Kaseya - 如果我没记错的话,每年 250 个节点的成本约为 6k,但它是一个极好的工具,并且拥有一个非常活跃的用户社区。它针对 msp 市场并允许监控多个公司的系统。它可以毫无问题地在内部使用。
GFI Hounddog - 比 Kaseya 简单,但目前非常便宜。绝对值得一看。
有许多作为 MSP 系统出售的解决方案,但它们本质上是监视器 + 远程管理的组合。
伊恩
对于具有许多强大功能的集中式系统日志记录,我不禁推荐rsyslog。它是一个开源 syslog 服务器,可以愉快地作为您熟悉和喜爱的常规 syslogd 的替代品运行。它现在是 Ubuntu 首选的 syslog 守护进程,我认为 Red Hat 和 Fedora 也可能会走这条路。我发现它更容易启动和运行并做你想要的 syslog-ng 是。
目前在我们的商店中,我们有两个中央 rsyslog 服务器(每个站点一个),它们接收数百台服务器的日志。每当系统日志中的某些内容触发警报或更高级别时,我都会收到自动电子邮件警报(当然,经过一些调整,有些应用程序有点危言耸听)。我可能会做一些更聪明的事情,比如让它向 nagios 等发送东西,但它现在足以满足我们的需求。
这一切也都进入了一个 mysql 数据库(如果你这样做的话,还支持 Oracle 或 postgresql)。
还有一个Web 前端和一个Windows 代理,用于将 Eventlog 日志发送到 rsyslog 服务器。Web 前端显然不如 splunk 流畅,但它只需 0 美元即可完成工作。
我同意 Splunk 很棒。但是,对于小型的、主要是 Linux 环境,您可能希望查看类似epylog的内容。
我们在我以前工作的地方之一使用过它,它非常适合我们想要的东西。
不确定它对发送到 Linux syslog 收集器的 Windows syslog 消息的处理能力如何,但可能值得一试。
看看http://www.codeplex.com/polymon
它是开源的,在后端使用 SQL Server 并具有精美的 UI
只是在其他地方链接到我的答案:
Splunk 非常昂贵:有哪些替代品?
编辑(新项目):
LogStash和Graylog2项目看起来很有趣
这里有几个视频:一个 两个。
像GFI EventsManager这样的东西可能会花 4000 美元左右。
如果您正在寻找 SysLog 替代品,您可能还需要考虑商业 syslog/rsyslog 替代品,例如 LogLogic,http ://loglogic.com 。我们(我工作的地方)拥有一套功能齐全的日志记录、存储和报告设备。从本质上讲,它能够每秒收集 100,000 条消息,对它们进行处理和索引,以便进行搜索。
您可以尝试来自liquidlabs 的logscape - 与splunk 非常相似,但也有一些不同的功能...... http://www.liquidlabs-cloud.com/products/logscape.html