collectd
collectd是一个守护进程,它从不同来源收集数据指标,例如操作系统,应用程序,日志文件和外部设备,并存储这些指标信息或使其可通过网络使用。这些统计数据可用于监视系统,发现性能瓶颈(即性能分析)和预测未来系统负载(即容量规划)。
collectd是用C语言开发的,具有优异的性能和可移植性。collectd通过100多种插件为各种案例提供支持。
主要特性
- 模块化/可移植性
除了解析配置文件,collectd中的所有功能都通过插件提供。因此collectd守护进程没有任何外部依赖,可以运行在任何POSIX操作系统上,如Linux,MacOS,FreeBSD,AIX等。
- 合理的默认值
collectd的默认配置保持尽可能的简单:除了要加载哪些模块,用户不需要配置任何其他内容,但用户也可以根据自己的需求调整守护程序的配置。
- 高扩展性支持
collectd通过尽可能有效地利用资源,能够处理任意数量的主机,从一个到几千。例如,通过将多个RRD更新合并到一个更新操作(参见这篇深入介绍的文章),将最大可能数量的值合并到每个网络数据包,等等。此外,多线程布局允许同时查询多个插件,而不会由于IO延迟而导致性能问题。
- 复杂的网络场景支持
collectd使用数据推送模型,即数据被收集并推送到广播组或服务器。因此,不需要任何中心实例。collectd支持多种网络场景:
- 无网络:如果不加载网络插件,网络会被完全禁用。
- 组播:可以在广播组内收发数据。
- 单播:支持将数据发送到特定的主机。
代理:可以配置一个实例转发来自网络的数据,因此可以通过这种方式将组播和单播结合使用。
SNMP支持