Cacti原理

1,构件(步骤)

net_snmp:负责数据采集

rrdtool:数据存储以及绘图

mysql:保存模板和主机对应的信息

数据采集:cacti使用poller(轮询器)收集数据,主要使用snmp协议从远端的设备上收集数据。

数据存储:cacti使用rrdtool(环形数据库)存储收集到的数据(时间序列数据)。rrd会将原始数据与整合到的数据进行合并,以使得历史数据的存储节省空间。

数据展示:rrdtool绘图功能。

2,工作原理

net_snmp协议定时采集数据,保存到rrd,当用户需要查看某个主机对应的监控信息的时候可以在MySQL中寻找对应的主机ip等信息,然后在命令rrd绘制出图形

3,监控对象

网络流量,cpu使用率,硬盘使用率等

 

Zabbix

1,构造

agent:被监控对象

server:负责数据收集

proxy:代理

2,原理

主被动模式

主被动模式是相对于客户端来说的,主动就是客户端主动将采集的数据发送给server端,而被动模式是server过来告诉agent自己需要什么东西,agent采集。

zabbix和nagios的报警机制一样,通过插件模板来实现

3,监控对象

CPU负荷、内存使用、磁盘使用、网络状况、端口监视

 

Nagios

1,构件

主程序(Nagios Daemon):Nagios的主部件,实现了监控,性能,通知,事件处理功能。这些功能都是抽象的逻辑和调度,并没有实际的与设备交互的监控实现,与设备的交互都是在下面一层的Plugin种实现的,这些就是Nagios认为可变部分。

Web Interface: Nagios的Web页面,Nagios的Web容器是Apache HTTPD,Nagios开发了一个HTTPD模块,并提供Web页面。Web Interface与Nagios Daemon之间通过文件接***互,Web逻辑读取Nagios的状态文件(status.dat),展示其监控信息。

插件程序(nagios-plugins)

四个可选的附件(NRPE,NSCA,NSClient++,NDOUtils)

NDOUtils:用来将Nagios的配置信息和各event产生的数据存入数据库,以实现这些数据的减速和快速处理  (服务端)

NRPE   NSClient:工作在客户端

NSCA:被动(让被监控的主机主动将监控信息发送给服务器)

需要同时安装在服务端和客户端NSCA ---send-nsca

2,原理

基于状态的改变来实现报警,当状态改变之后会先不警告(软状态),当两次采集之后状态都改变了再通知(硬状态)

3,监控对象

只是单纯报警

 

总结

Cacti: 集成了各种数据搜集功能,并用rrdtool(只用来画图)画出监控图形的 网络监控系统 ,重图形,有数据历史,需用到数据库支持,支持web配置,默认不支持告警,可以加插件; 
Nagios:重状态和结果,没有数据历史,不成图像,不支持web配置,适用于监控大量服务器的计算环境,nagios要图表的话一般都是搭配cacti使用,也可以自己开发脚本定制个性化监控,支持多种插件; 
Zabbix:是一款基于web界面的分布式系统监控和网络监控系统,是属于企业级的有数据历史,可成图像,支持web配置,可以自动发现异常; 

 

参考博客:http://blog.51cto.com/12118369/1968090