nagios + cacti + ntop 结合应用(简介篇)

一、cacti的简介

简单来说,Cacti就是rrdtool的一个forefront,它内置了快速的获取数据工具、优秀的绘图模版以及许多设计精良的数据获取脚本,从而可以通过结合rrdtool强大的数据抓取、数据存储和绘图功能,轻松实现主机负载、网络流量等信息的走势图的绘制。

cacti是用php语言实现的一个软件,它的运行需要网站服务器(如apache)及php环境的支持。同时,cacti还需要mysql配合php程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模版信息等变量。

rrdtoo对主机负载、网络流量等信息的统计需要通过SNMP协议实现。经过SNMP抓取到的数据存储于有rrdtool生成的rrd文件中,这些文件通常位于cacti的rra目录中。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的归档文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。

下图是cacti的工作原理:

Cacti的实例应用

1)网络设置

2)主机系统

    (1)网络接口流量(进与出的带宽)

    (2)监控CPU的负载、内存等等

    (3)监控磁盘的空间、进程数等等

3)cacti常见的检测对象

    (1)服务器资源:CPU、内存、磁盘、进程、连接数等

    (2)服务器类型:Web、Mail、FTP、数据库、中间件

    (3)网络接口:流量、转发速度、丢包率

    (4)网络设备性能、配置文件、路由数

    (5)安全设备性能、连接数、攻击数

    (6)设备运行状态:风扇、电源、温度

     (7)机房运行环境:电流、电压、温湿度

 

rrdtool的优点:

1、使用rrd的存储格式,数据能重复使用,比如可以将一个rrd的文件的数据与另一个rrd文件文件中的数据相加;

2、可以定义任意时间段画图,即你可以画出一张半年来的数据的图,也可以画出一张半小时以来的图;

3、能画出任意个DS;

4、CDEF能让你任意摆弄数据。

rrdtool的缺点:

1、rrdtool的作用只是存储数据和画图,它没有mrtg中集成的数据采集功能;

2、在命令行的使用非常复杂,参数极多;

3、无管理功能。

 

简单的说,rrd是一个非常强大的绘图引擎。

 

由于其非常复杂的命令,对用户非常不友好,我一度想自己用php写一套系统。幸运的是,半年前我找到了cactiwww.cacti.net)。对该工具我只有一个字形容:“greatcacti 其实是一套php程序,它运用snmpget采集数据,使用rrdtool绘图。它的界面非常漂亮,能让你根本无需明白rrdtool的参数能轻易的绘出漂亮的图形。更难能可贵的是,它提供了强大的数据管理和用户管理功能,一张图是属于一个host的,每一个host又可以挂载到一个树状的结构上。用户的管理上,作为一个开源软件,它居然做到为指定一个用户能查看的host、甚至每一张图,还可以与LDAP结合进行用户的验证!我不由得佩服作者考虑的周到!Cacti还提供自己增加模板的功能,让你添加自己的snmp_queryscript!可以说,cactirrdtool的所有缺点都补足了!

 

二、nagios简介

Nagios是一款用于系统和网络监控的应用程序。它可以在你设定的条件下对主机和服务进行监控,在状态变差和变好的时候给出告警信息。

Nagios更进一步的特征包括:

1)网络监控服务(SMTP、POP3、HTTP、NNTP、PING等)

2)监控主机资源(处理器负荷、磁盘利用等)

3)简单地插件设计使得用户可以方便地扩张自己服务的检测方法

4)并行服务检测机制

5)具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可能状态

6)当服务或主机问题产生与解决时将告警发送给联系人(通过Email、短信、用户定义方式)可以通过飞信,等方式实现,即可传递给管理员,可高效的保证服务器的维护

7)具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位

8)自动的日志回滚

9)可以支持并实现对主机的冗余监控

10)可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等。

 

Nagios通常由一个主程序(Nagios)、一个插件程序(Nagios-plugins)和四个可选的ADDON(NRPE、NSCA、NSClient++ 和 NDOUtils)组成。Nagios的监控工作都是通过插件实现的,因此,Nagios和Nagios-plugins是服务器端工作所必须的组件。而四个ADDON中

(1)NRPE:用来在监控的远程Linux/Unix主机上执行脚本插件以实现对这些主机资源的监控

(2)NSCA:用来让被监控的远程Linux/Unix主机主动将监控信息发送给Nagios服务器(这在冗余监控模式中特别要用到)

(3)NSClient++:用来监控Windows主机时安装在Windows主机上的组件

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

这四个ADDON中,NRPE和NSClient++工作于客户端,NDOUtils工作于服务器端,而NSCA则需要同时安装在服务器端和客户端。

用一副图片,可清晰展示nagios的工作原理

 

既然cacti和nagios都是网络监控工具,但建议还是两者结合使用,下面阐述下cacti和nagios的优缺点:

cacti:在监控方面有良好的绘图,cacti在流量和图形塑造上要强于nagios,但是在故障分析上有些略逊,而且报警机制也有待完善,这时nagios就派上用场了。

nagios:适合监视大量服务器上面的大批服务是否正常,重点并不在图形化的监控,其集成的很多功能例如报警,都是cacti没有或很弱的。但在绘图以及图形塑造方面精细度比cacti要弱。

通过两者比较,可以很清晰的了解各自的用途。

 

三、Ntop简介

Ntop能够更加直观地将网络使用量的情况和每个节点计算机的网络带宽使用详细情况显示出来。Ntop是一种网络嗅探器,嗅探器在协助监控网络数据传输、排除网络故障等方面有着不可替代的作用。可以通过分析网络流量来确定网络上存在的各种问题,如瓶颈效应或性能下降;也可以用来判断是否有黑客正在攻击网络系统。如果怀疑网络正在遭受攻击,通过嗅探器截获的数据包可以确定正在攻击系统的是什么类型的数据包,以及它们的源头,从而可以及时作出响应,或者对网络进行相应的调整,以保证网络运行的效率和安全。

管理人员通过Ntop还可以很方便地确定出哪些通信量属于某个特定的网络协议、占主要通信量的是哪个主机、各次通信的目标是哪个主机、数据包发送时间、各主机间数据包传递的间隔时间等。这些信息为网管员判断网络问题及优化网络性能,提供了十分宝贵的信息。

Ntop提供以下一些功能:

1)自动从网络中识别有用的信息;

2)将截获的数据包转换成易于识别的格式;

3)对网络环境中的通信失败进行分析

4)探测网络环境下的通信瓶颈;

5)记录网络通信时间和过程;

6)自动识别客户端正在使用的操作系统;

7)可以在命令行和web两种方式下运行。

 

从上面的介绍,可以看出来ntop作为监控工具与前两者cacti和nagios的区别,ntop在监控方面,它的角度是从分析网络流量来确定网络上存在的各种问题,说白了就类似个抓包监控工具,只不过通过归纳绘图实现更多的功能。

 

 

你可能感兴趣的:(nagios)