cacti——仙人掌
nagios——难搞死
zabbix——斩魄刀
php
cacti 什么是Cacti? Cacti 在英文中的意思是仙人掌的意思,Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它经过snmpget来获取数据,使用 RRDtool绘画图形,并且你彻底能够不须要了解RRDtool复杂的参数。它提供了很是强大的数据和用户管理功能,能够指定每个用户能查看树状结构、host以及任何一张图,还能够与LDAP结合进行用户验证,同时也能本身增长模板,功能很是强大完善。Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来做出各式各样的监控图。 cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,而后用rrdtool储存和更新数据,当用户须要查看数据的时候用rrdtool生成图表呈现给用户。所以,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。 Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。 snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它可以存储的数据笔数在建立时就已经定义。关于RRDTool的知识请参阅RRDTool教学。 什么是SNMP? snmp(Simple Network Management Protocal, 简单网络管理协议)在架构体系的监控子系统中将扮演重要角色。大致上,其基本原理是,在每个被监控的主机或节点上 (如交换机)都运行了一个 agent,用来收集这个节点的全部相关的信息,同时监听 snmp 的 port,也就是 UDP 161,并从这个端口接收来自监控主机的指令(查询和设置)。 若是安装 net-snmp,被监控主机须要安装 net-snmp(包含了 snmpd 这个 agent),而监控端须要安装 net-snmp-utils,若接受被监控端经过trap-communicate发来的信息的话,则须要安装net-snmp,并启用trap服务。若是自行编译,须要 beecrypt(libbeecrypt)和 elf(libraryelf)的库。 什么是RRDtools? RRDtool是指Round Robin Database 工具(环状数据库)。Round robin是一种处理定量数据、以及当前元素指针的技术。想象一个周边标有点的圆环--这些点就是时间存储的位置。从圆心画一条到圆周的某个点的箭头--这就是指针。就像咱们在一个圆环上同样,没有起点和终点,你能够一直往下走下去。过来一段时间,全部可用的位置都会被用过,该循环过程会自动重用原来的位置。这样,数据集不会增大,而且不须要维护。RRDtool处理RRD数据库。它用向RRD数据库存储数据、从RRD数据库中提取数据。 工做原理: snmp关系着数据的收集,rrdtool关系数据存储和图表的生成,snmp抓取的数据不是存储在数据库中,而是存储在rrdtool生成的rrd文件中 简单原理图: