答案1
让我们总结一下这些程序的作用:
Nagios 通过在本地执行程序、在远程系统上执行程序(通过 ssh 或 nrpe)以及从独立程序接收数据(通过 nsca)的某种组合来收集数据。Nagios 收集的数据通常只是状态 ok、warning、critical 和 unknown 的 0、1、2 或 3 值(尽管某些插件支持发送性能指标)。Nagios 通过发送警报对数据采取行动。关于谁在特定时间收到特定项目的警报、确认警报、升级警报等,有相当多的可配置性。
Collectd 通过插件收集系统和应用程序指标,这些插件会自行读取数据(例如 apache 状态、cpu 使用情况)或从其他进程(例如 statsd 客户端、collectd 的其他实例)接收数据。Collectd 可以根据需要聚合或过滤数据。然后,它可以将其写入磁盘(作为 csv 或 rrd 文件)或通过多种协议(collectd、graphite、http、mongo、redis、riemann、amqp)通过网络发送。它具有发送警报的功能,但功能非常简陋。
Sensu 服务器通过以下方式收集数据:告诉 Sensu 客户端执行服务器上配置的命令(检查)或从客户端上配置的命令接收数据(独立检查)。数据可以是状态(如 nagios 使用)或指标。Sensu 可以通过变量器更改其接收的数据。然后,它将数据传递给处理程序,处理程序可以执行诸如发送警报或将数据发送到某个地方(例如 graphite)之类的操作。Sensu 具有丰富的 API 用于即时配置。
Nagios 和 sensu 是可比较的软件,但 collectd 不是。您可以想象使用 collectd 通过 ncsa 向 nagios 提供数据,或通过 amqp 向 sensu 提供数据,尽管执行这两种操作都需要为 collectd 编写新的插件。
答案2
我怀疑可以使用 Sensu 来替代 Nagios(它支持检查和操作)..
或许可以替代 collectD。如果不问实际从事这项工作的人,很难说清楚。
我的第一个想法是“嗯,只发布 0.9 版,我不知道它是否真的可以用于生产”。