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