sci*_*rus 14
让我们总结一下每个程序的作用-
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 可以改变它通过变异器接收到的数据。然后它将数据传递给处理程序,处理程序可以执行诸如发送警报或将数据发送到某处(例如石墨)之类的操作。Sensu 有一个丰富的 api 用于即时配置。
Nagios 和 sensu 是类似的软件,但 collectd 不是。您可以想象使用 collectd 通过 ncsa 提供 nagios 数据或通过 amqp 提供 sensu 数据,尽管执行这些操作都需要为 collectd 编写新插件。