1.1. Cacti
侧重于网络信息采集。
工作原理:
- l 信息采集:
- n 基于SNMP协议,SNMPget和SNMPwalk采集监控主机数据。
- n 此外还可以自己写script和再管理端配置进去对应的数据点和注册脚本。
- l 数据存储:采集数据存储于RRD中,配置信息储存于MySQL。
- l UI: PHP调用RRD的画图工具进行展现
- l 网络结构:采集--C/S两层结构;浏览--B/S
优点:
数据的图形界面展现很成熟。
另外,可以通过插件支持发送图形化报表、监控等。
缺点:
RRD的数据都是零散基于点的,数据导出和整理比较麻烦。
采集的数据点有限。想增加扩展点不论是UI端还是采集端都比较麻烦。
RRD的性能一般。
1.2. Nagios
侧重于数据监控。
工作原理:
- l 数据采集:使用plug-in进行数据采集(NRPE-nagiosremotepluginexecutor)。支持主动和被动(需要插件)的数据流动。
- l 数据存储:文件,或者数据库(需要插件)
- l UI: 主要是监控设置相关和告警相关的UI。可通过插件pnp把数据存储到rrdtool中同时利用rrdtool绘图。
- l 网络结构:采集--C/S两层结构;浏览--B/S
优点:
功能聚焦于监控和告警。
应用数据采集插件丰富。有很多运营方面的业务,比如宕机或者网络不可达。
缺点:
只保存了状态数据,对数据过程化分析功能有限。更无从导出。
1.3. Collectd
监控信息采集系统。
工作原理:
- l 数据采集:使用plug-in进行数据采集
- l 数据存储:csv, rrdtool等多种格式(可以以插件方式扩展)
- l UI: 相当简陋,有cgi调用rrdtool生成图片。
- l 网络结构:可以采集--C/S两层结构,但是可以同时往多个Server发送。或者数据只存储在本机。
优点:
- 数据采集插件丰富。可以基于文件,甚至HTTP上的数据都可以。
- 支持多个实例来适配不同的策略或者相同应用的多个实例。
- 有过滤器扩展,告警功能。
缺点:
没有集成管理端。但是数据在那里,后期只是一个集成的过程,估计很快就会有了。
1.4. 公司的日志采集系统
工作原理:
- l 数据采集:使用plug-in进行数据采集。随时可以在管理端配置和添加新的数据点和采集脚本。
- l 数据存储:DB,保持最近3个月数据,采集频率3分钟。
- l UI: 列表的方式展现为主。不同角色用户有不同功能。
- l 网络结构:可以采集--C/S两层结构。UI是B/S。
优点:
- 有用户和角色管理。
- CPU和内存监控可以具体到应用级别。
- Plug-in开发简单。
- 集成了cacti对交换设备进行监控。
缺点:
一个PC上每种资源只支持一个实例。