Cacti官方手册
http://www.cacti.net/downloads/docs/html/
1. 安装
2. 基本概念
1. 操作的准则
Cacti的操作可以分为三部分任务:
数据获取、数据存储、数据展示。
数据获取
首先的任务是获取数据。Cacti使用Poller来进行数据的收集。Poller通过系统的定时任务执行,例如Unix系统中的Crontab。
在现在的IT架构中,你会需要处理各种不同的设备,例如:服务器、网络设备,或者其他类似的设备。Cacti使用SNMP(Simple Network Management Protocol)从远程主机上获取数据。因此,所有启用了SNMP服务的主机都可以被Cacti监控。 稍后,我们会说明如何通过脚本查询、取数据脚本来扩展Cacti的能力。
数据存储
数据存储有很多种方式。可以使用SQL数据库、可以使用普通文件。Cacti使用的是RRDTool来存储数据。
RRD是Round Robin Database的缩写。RRD是一个用来存储和显示时间序列数据的系统(例如:网络带宽的使用、机器所在的室温、服务器的负载等)。RRD使用一种非常紧凑的方式存储数据,并且不会随着时间的增加而改变文件的大小。另外,RRD也可以创建漂亮的图表。这些特性完全满足了数据存储的需要。
另外,RRDTool也可以做其他一些事情。他可以将一些原始的数据合并并且形成聚合的数据。通过这种方式,历史数据被压缩,以节省磁盘的空间。RRDTool支持多种不同的聚合函数,包括:AVERAGE、MAXIMUM、MINIMUM和LAST。
数据展示
RRDTool最令人称道的一个特性就是其画图功能。特别适合用来处理一些常见的网络服务器。因此,我们可以在任何平台上通过任何浏览器访问画出的图表。 并且有很多种方法可以用来作图。我们可以画一个或者多个图,可以支持自动缩放或者对y轴取对数。还可以将不同的项目叠加起来,打印更加漂亮的图例,例如:
最大值、最小值等等。
2. 画图概览
Cacti中所有的元素几乎都和图表有关。你随时可以通过点击“Graph Management”按钮来查看所有可用的图表。尽管我们可以使用这个功能来手工创建新的图表,我
们在下一章中仍然会为新用户提供详细的指导。
对于那些熟悉RRDTOOL的用户来书,你将会发现Cacti中的图表都是由RRDTOOL绘制而成。Cacti就是提供了一个非常友好的界面帮助人们,即使不了解RRDTOOL如何工作,仍能够做出漂亮的图表。记住,Cacti中的每一幅图都有特定的配置并且至少会有一个图表的项目与之关联。图表的设置从整体上定义了监控图的一些属性,图表上的项目定义了在图中展示的不同的数据。因此,图表项定义在图上展示、如何展示一些数据,同时也定义在数据说明如何显示在图上。
每个图和图表项目都有一系列的参数来控制图的不同属性。幸运的是,通过使用图模板,即便我们不是非常理解每个项目功能的确切含义,也可以给我们的网络绘制图像。如果你已经准备好为自己的网络绘图,那么在手册后面的内容中你将学会如何为图像和图像项目进行设置。
3. 如何为你的网络画图
看到这里,你大概了解到作图时Cacti最强的一个功能。Cacti能够支持很多种复杂的作图和数据获取,有一些学起来稍微有点困难。但是不要担心,因为只是为网络作图的话,非常的简单。
下面两节将从总体上介绍如何为典型的设备作图的过程。
创建设备
作图的第一步,是在系统中添加你想为之作图的那个设备。填写设备的重要的信息,诸如网络主机名、SNMP参数、主机类型等。
在Cacti中,通过点击“Devices”菜单进行设备的维护。点击“Add”会出现新建设备的表单。前两个属性,“主机名”和“设备描述”是仅有的两个必填字段。根据情况填入真实的信息,而不是使用默认值。如果你的设备已经在“Host Template”中定义了模板,那么选中对应的模板。如果你对设备类型不太确定,你也可以总是选择“Gereric SNMP-enabled HOST”或者“None”。重要的是,选择了设备模板并不会将你局限到特定的配置中,Host Template仅仅是为这一类的设备提供了一些恰当的默认值。
每个字段的详细描述列在了下面。 Table 7-1. Device Field Definitions 字段 Description Hostname Host Template Notes Disable Host Availability/Reachability Options Downed Device Detection None:对异常的机器不进行探测 PING and SNMP:使用两种探测方式 SNMP:使用SNMP检查OID .1 和 .1.3 ICMP:使用PING方法检查,详情如下 只对于“Ping and SNMP”或者“PING”有效 ICMP:进行ICMP探测,需要权限 UDP:进行UDP探测 TCP:进行TCP探测 Pint Port Ping Timeout Value Ping Retry Count SNMP Options SNMP Version 仅对 UDP/TCP PING测试类型有效 在这里定义测试的端口,并且注意,不要让防火墙把测试屏蔽 测试的超时时间,使用秒为单位。 在测试失败之前Cacti会进行的重试次数 Version 1:使用SNMP Version 1.注意,这个版本不支持64位的计数器 描述 作为第一列显示在设备列表中,可以在诸如“图像标题”中引用。 主机名或者IP地址。主机名会使用标准的主机解析服务进行解析,例如DNS。 主机模板包含了一系列的图像模板,与特定的主机进行关联 Cacti 0.8.7 的新字段。可以添加额外的注释 将这个主机排除在探测列表之外。这是一个特殊值,如果一个设备不在可用,但是仍需要保留时,使用这个选项。 Ping Method Version 2:大多数文档中也被引用为 SNMP V2c Version 3:SNMP V3,支持用户验证和加密 SNMP Community SNMP Port SNMP Timeout Request 设备的SNMP Community标记 输入SNMP使用的UDP端口号(默认是161) Cacti等待SNMP回复的最大时间,以微秒为单位 量。 注意:该参数只有在使用Spine的时候有效 注意:某些设备不支持大于1的值 Security Options for SNMP V3 SNMP Username SNMP Password SNMP Auth Protocol SNMP Privacy Passphrase SNMP Privacy Protocol SNMP Context
对新创建的设备保存后,会跳转回之前相同的编辑界面。在这个界面中,会发现一些额外的信息。如果为这个主机配置了一个有效的SNMP通讯码,在页面的顶部可以看到一些统计信息。如果看到了“SNMP error”信息,则表示在Cacti之间和你的设备上的SNMP间发生了问题
页面的底部会有两个额外的表格,Associated Data Queries(关联的数据查询)和Associated Graph Templates(关联的作图模板)。如果创建过程中选择了主机模板,那么这两个框中会显示一些条目。如果这两个方框中什么都没有,那么必须至少关联一个数据查询或者作图模板,才能在接下来的操作中正常作图。如果没有可用的作图模板或者数据查询,你可以检查Cacti模板资源库或者自己创建一个。
关于SNMP
你选择的SNMP的版本对于Cacti的工作会产生巨大的影响。没有其他特殊原因的情况下,应该选择版本1(Version 1)。如果你计划实现高速的计数器(64-bits),或者你的设备支持高速的计数器,那么可以选择版本2(Version 2)。从Cacti 0.8.7 开始,完全支持版本3(Version 3)。
Cacti中获取SNMP信息的方式与SNMP所支持的选项有很大的关系,现在在Cacti中有三种获取信息的方式,列表如下:
Table 7-2. SNMP 获取方式 Type 类型 外部SNMP 描述 snmpwalk 和snmpget 命令 支持选项 Placed Used 测poller.php 调用系统中安装的 所有的SNMP选项 Web界面和PHP探SNMP V3的新建用户表达式或者类似语句 SNMP V3的验证密码 SNMP V3的验证类型,使用MD5或者SHA,默认为MD5 SNMP V3的私人密码 SNMP V3私人密钥的类型,包括DES和AES,默认为DES Maximum OID’s Per Get 这是一个性能参数。指定在一次SNMP请求中获取的OID的数内部的SNMP使用PHP的SNMP(php-snmp) 的相关函数函数,编译时指定 Spine SNMP 直接与net-snmp或者ucd-snmp调用的API库链接 仅支持版本1Web界面和PHP探(Version 1) 测poller.php 所有的SNMP选项 基于C的(Spine) SNMP V3 选项介绍
SNMP的第三个版本开始支持验证和加密特性,这个版本也被称为 View Based Access Control Model (VBACM)。这就要求被监控的设备配置了SNMP V3。一般来说,V3选项的配置和目标的类型紧密相关。下面是从 snmpd.conf 的文件中摘抄出来的相关定义。(略)
创建图表
创建设备后,就该为这些设备作图了。
4. 查看图表
图表树 5.