使用Cacti监测系统与网络性能
一、简介无论是稍有规模的IT公司还是大型的ICP、ISP,都需要面对一个问题,就是如何实现对网络和服务器的性能的实时监测。除了一些商用软件外,国内最常用的网络监测软件莫过于MRTG了。MRTG(MultiRouter Traffic Grapher)是基于SNMP的网络流量统计分析工具。它通过SNMP协议从设备得到并记录网卡信息,并将流量负载以图形的方式显示出来,系统负载小,使用方便。MRTG毕竟是一套很老的软件了,而且存在许多不足的地方,其作者Tobias Oetiker在1999年就已经开始开发另一套开源软件RRDTool来代替MRTG。现在RRDTool在已经发展得成熟,在功能上MRTG难以与其相提并论。既然有更好的选择,为什么我们还要用MRTG呢?
二、RRDTool与MRTG对比
与MRTG一样,RRDTool也是由Tobias Oetiker撰写的开源软件,但RRDTool并非MRTG的升级版本,两者有非常大的区别,也可以说RRDTool是将用来取代MRTG的产品。下面是两个软件的一些优缺点的对比:
1.MRTG
优点:
简单、易上手,基本安装完了之后只要修改一下配置文件即可。
缺点:
◆使用文本式的数据库,数据不能重复使用;
◆只能按日、周、月、年来查看数据;
◆由于MRTG 本来只是用来监测网络的流量,所以只能存储两个DS(Data Source),即存储流量的输入和输出(如图1);
◆每取一次数据即需要绘图一次,浪费系统资源;
◆图像比较模糊;
◆无用户、图像管理功能;
图1、MRTG生成的图像
2.RRDTool
优点:
◆使用RRD(Round Robin Database)存储格式,数据等于放在数据库中,可以方便的调用。比如将一个RRD文件中的数据与另一个RRD文件中的数据相加;
◆可以定义任意时间段画图,可以用半年数据画一张图,也用半小时内的数据画一张图;
◆能画任意个DS,多种的图形显示方式(如图2);
◆数据存储与绘图分开,减轻系统负载;
◆能任意处理RRD文件中的数据,比如在浏览监测中我们需要将数据由Bytes转化为Bits,可以将原始数据乘8。
缺点:
◆RRDTool的作用只是存储数据和画图,它没有MRTG中集成的数据采集功能;
◆在命令行的使用非常复杂,参数极多。
◆无用户、图像管理功能。
图2、RRDTool生成多个DS的图像
简单的说,MRTG是一个收集网卡流量的工具,而RRDTool则是一个强大的绘图的引擎。
MRTG 监测网卡流量很方便,但是如果需要监测其它的系统性能比如CPU负载、系统负载,网络连接数等,就不是那么简单了。即使实现了这些功能,但管理起来非常麻烦。比如公司有1、2千个被监测点,分布在不同的机房,为了管理方便需要将这些服务器和网络设备分类,这样的话就需要将这些被监测点放在不同的MRTG配置文件中,运行多个crontab,甚至还要自己写HTML页面对其进行管理。
那么,RRDTool就能实现上述功能吗?实际上,RRDTool的主要作用是数据的存储和将数据绘画成图像。要实现数据的采集和管理,我们需要另外一个软件辅助RRDTool进行工作,那就是本文要介绍的重点——Cacti。
三、Cacti介绍
RRDTool的绘图功能非常强大,不过由于RRDTool的命令非常复杂繁多,并且不包含数据采集的功能,所以非常难以入门。有很多喜爱RRDTool的程序员为其写应用的平台或脚本,而Cacti就是其中的佼佼者。
Cacti是一套完全面向RRDTool的B/S系统,它在MySQL数据库中存储了所有RRDTool创建图像需要用到的信息以及管理信息。
Cacti的主要功能有:
数据定时采集
图像绘画与显示
树状的主机和图像管理
RRDTool信息管理
用户和权限管理
模板导入导出
Cacti 使用snmpget命令采集数据,使用RRDTool绘图。它的界面简洁直观,让你根本无需明白RRDTool的众多参数即可轻易的绘出漂亮的图形。此外,它还提供了强大的数据管理和用户管理功能。在图像管理上,Cacti采用了树状结构的查看界面,在用户的管理上,能对用户的权限进行细致的划分,甚至支持使用LDAP进行用户验证。不得不提的是Cacti还提供模板的功能,自己可以为某项监测内容建立模板,也可以导入别人做好的模板。
Cacti的架构:
整个Cacti系统由4个部分组成(如图3):
Cacti页面(PHP)——用户控制的平台,用户在此进行所有的设置;
SNMP采集工具——Unix下使用 Net-SNMP软件包自带的“snmpget”和“snmpwalk”等程序,windows下使用php的snmp功能;
RRDTool绘图引擎——性能数据的存储和绘画图像;
MySQL数据库——储存RRDTool绘图所需的信息,如模板、rra、主机对应的信息等,要注意的是MySQL数据库并不保存性能数据,性能数据保存在RRDTool自己的数据库格式rrd文件中。
图3、Cacti的架构
Cacti的工作流程(如图4):
定时采集数据:
Cacti会定时运行数据采集脚本,使用“snmpget”命令或其它自己定义的方式进行数据的采集;
存储数据:
使用RRDTool的“update”指令将采集到的数据储存到rrd文件中;
用户要查看某台设备的流量:
在Cacti的PHP页面上点击该设备->
Cacti在数据库中寻找该设备对应的rrd文件的名称->
Cacti运行命令让RRDTool进行绘图;
图4、Cacti的工作流程
四、Cacti的安装
该安装文档的平台是Linux,其它平台上的安装方法请参照Cacti的官方网站。
运行Cacti需要Apache+PHP+MySQL的环境,搭建该环境的方法很简单,很多文章有过详细的安装教程,就不在此赘述了。下面是安装Cacti的步骤:
1.设置mysql
创建数据库、数据库用户,调整权限、密码:
# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 10 to server version: 4.0.23-standard
Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.
mysql>; create database cactidb;
Query OK, 1 row affected (0.00 sec)
mysql>; grant all on cactidb.* to root;
Query OK, 0 rows affected (0.01 sec)
mysql>; grant all on cactidb.* to root@localhost;
Query OK, 0 rows affected (0.01 sec)
mysql>; grant all on cactidb.* to cactiuser;
Query OK, 0 rows affected (0.00 sec)
mysql>; grant all on cactidb.* to cactiuser@localhost;
Query OK, 0 rows affected (0.01 sec)
mysql>; set password for cactiuser@localhost=password(’cactipw’);
Query OK, 0 rows affected (0.00 sec)
mysql>; exit
2.安装RRDTool
从RRDTool官方网站(见文章最后的“资源”)下载最新的RRDTool包,当前最新的版本是rrdtool-1.2.12。在该下载页面上,还可以看到有一个“libs”的目录,里面的包也要全部下载。
那么,我们下载了下面的几个包:
◆libart_lgpl-2.3.17
◆libpng-1.2.8-config
◆zlib-1.2.2
◆freetype-2.1.9
安装方法:
./configure –prefix=/usr #把东西装到 /usr 目录下
make ; make install #编译及安装
安装完上述lib包后,我们就可以进行RRDTool的安装了:
rrdtool-1.2.12包的安装方法:
cd rrdtool-1.2.12
./configure –prefix=/usr
make && make install
测试:
运行rrdtool –v
可以看到RRDTool的用法以及版本信息:
RRDtool 1.2.12 Copyright 1997-2005 by Tobias Oetiker
Compiled Apr 30 2006 11:30:36
Usage: rrdtool [options] command command_options
Valid commands: create, update, updatev, graph, dump, restore,
last, first, info, fetch, tune, resize, xport
RRDtool is distributed under the Terms of the GNU General
Public License Version 2. (www.gnu.org/copyleft/gpl.html)
For more information read the RRD manpages
RRDTool官方的详细安装方法可以在下载的RRDTool源码里的doc/rrdbuild.pod文件里找到。
3.安装SNMP采集工具
SNMP全名是简单网络管理协议,几乎所有的网络设备(交换机、路由器等)和操作系统默认都安装了snmp服务。
Cacti 系统所在的服务器并不一定要安装SNMP服务,但是Cacti系统采集数据要用到Net-SNMP包里面的几个工具,所以最好也在Cacti服务器上安装 SNMP服务。我们可以直接在系统中运行snmpwalk和snmpget看是否有该命令,如果有则无需安装了。
如果操作系统没有安装SNMP,可以到本文最后的资源里的Net-SNMP官方网站上下载源码或二进制包进行安装。
4.安装Cacti
Cacti是一套PHP程序,当前最新版本是0.8.6h。安装时需要对Cacti包文件和数据库进行部分设置。
假设apache的DocumentRoot目录为/www/htdocs:
cp cacti-0.8.6h.tar.gz /www/htdocs
tar xzvf cacti-0.8.6h.tar.gz
mv cacti-0.8.6h cacti
useradd cactiuser –d /www/htdocs/cacti
导入数据库、设置权限:
cd /www/htdocs/cacti
mysql -u root cactidb < cacti.sql
chown -R cactiuser rra/ log/
编辑配置文件/www/htdocs/cacti/include/config.php :
$database_type = “mysql”;
$database_default = “cactidb”;
$database_hostname = “localhost”;
$database_username = “cactiuser”;
$database_password = “cactipw”;
定时让Cacti的poller取数据:
crontab –u cactiuser –e
加入:
*/5 * * * * /www/php/bin/php /www/htdocs/cacti/poller.php >; /dev/null 2>;&1
注意:不要使用root用户运行上面的“poller.php”命令,否则请再次运行chown –R cactiuser rra/ log/
五、基本设置:
Cacti安装完成后,并不能立即进行数据的采集,我们还需要对Cacti服务器和客户端进行设置:
Cacti端的设置:
Cacti端主要是设置一些应用程序的路径和版本等信息,这些信息非常重要,因为不同版本程序的参数会有差异,有时会让Cacti不能正常工作。
在浏览器上输入:
http://IP/cacti
进入cacti的初始设置页面:
在这里我们要输入一些原始的信息:
点击NEXT ->
选择“New Install”,点击NEXT ->
输入Cacti需要用到的程序的绝对路径、版本等信息(如图5),点击“Finish”->
输入原始的用户和密码:admin/admin,点击“login” ->
更改admin用户的密码->
点击 “Save”即可进入Cacti的控制面板。
图5、Cacti安装设置
上述设置必须准确,否则Cacti可能无法正常运行,使用管理员用户登陆后可以在“Settings”面板中进行修改。
设置Net-SNMP:
该设置针对的是被采集端而非Cacti服务端。一般的类UNIX操作系统均安装有Net-SNMP软件包,但不同操作系统,甚至不同的Linux版本的安装路径和配置文件可能都不一样。如无特殊的需求,使用系统自带的SNMP程序即可,请参考该操作系统的使用手册。
下面介绍从源码重新编译Net-SNMP的方法:
从Net-SNMP的官方网站下载最新版本的Net-SNMP软件包,解压后进行编译:
# ./configure –prefix=/usr/snmp –enable-mfd-rewrites –with-default-snmp-version=”2″ –with-sys-contact=”yourname” –with-sys-location=”China” –with-logfile=”/var/log/snmpd.log” –with-persistent-directory=”/var/net-snmp”
# make && make install
# mkdir –p /usr/snmp/etc/snmp
# cp EXAMPLE.conf /usr/snmp/etc/snmp/snmpd.conf
修改/usr/snmp/etc/snmp/snmpd.conf文件的61和62行,设置可以访问改SNMP的网段以及community名称。
比如设置为
com2sec local localhost public
com2sec mynetwork 192.168.100.0/24 public
表示允许本地和192.168.100.0/24的主机使用 public 来访问该SNMP服务。
另外上述设置也只是针对SNMP1和SNMPV2版本,如果觉得有需要使用SNMP3请参考SNMP的资料。
设置交换设备:
除了监测每一台服务器的性能参数外,在实际的应用中,我们可能更需要监测交换机或路由器的流量。同样的,我们需要开启交换设备的SNMP功能,让Cacti能取到数据。交换设备一般使用设备厂商自己的SNMP软件,下面以CISCO设备为例进行设置:
Router>enable
Password:
Router#
Router#configure terminal
Enter configuration commands, one per line. End
with CNTL/Z.
Router(config)#
下面的命令可以创建一个只读的community名称“public”:
Router(config)#snmp-server community public RO
下面的命令可以创建一个可读写的community名称“private”:
Router(config)#snmp-server community private RW
退出config模式:
Router(config)#exit
Router#
将设置写入NVRAM中::
Router#write memory
Building configuration…
[OK]
Router#
更详细的配置请参照最后一节“资源”中的“How to Configure SNMP Community Strings”链接。
测试SNMP服务
在Cacti服务器上使用命令:
snmpwalk -v 2c -c public 192.168.0.1 if
该命令表示,使用SNMPV2c版本和community 名称 “public”,取服务器(192.168.0.1)的所有interface(网卡)的信息。
如果192.168.0.1的SNMP服务正常,则会返回服务器或交换设备的网卡信息。如果返回错误信息,请检查你的SNMP配置或网络是否正常。
安全
或许有人会说开启了SNMP服务后,服务器和设备会变得不安全了。其实这样的言论可能还停留在多年前对SNMP的看法。其实SNMP最容易被利用的地方不是它的缺陷,而是它默认的查询community——“public”。不负责任的管理员总会留下后门给黑客,这并非软件的错。当前SNMP协议的版本是 SNMP3,该版本改变的之前只使用community进行查询的方式而是采用了用户名和密码验证,大大改善了SNMP的安全性。即使不使用SNMP3版本,也可以在配置文件中限制能访问SNMP服务的网段。
当然,如果你对SNMP还是不放心,可以将SNMP 服务bind在内网IP上。没有内网IP?防火墙、ACL总会用吧?
六、使用方法:
1.界面介绍
登陆Cacti后,可以看到左上角是两个按钮(如图6),“console”和“graphs”。console表示控制台,在此进行所有的配置等操作;而graphs则是用来查看所有服务器的性能图像的界面。
图6、Cacti菜单
2.console菜单
Create:
New Graphs——创建新图像的快捷方式;
Management:
Graph Management——图像管理。可以在此删除、复制图像,Cacti会自动创建图像。不过如果我们有特殊的需要,比如将几张图上的数据合并在一张图像上的话也可以在此手工新建图像;
Graph Trees——图像树。在graphs界面里,图像或devices是树状结构显示的(如图7),可以在此设置树的结构;
Data Sources——管理rrd文件。一般无需修改,Cacti会自己创建rrd文件;
Devices——设备管理。这是我们最经常需要修改的地方,可以在此创建新的设备或修改其名称等信息。
图7、图像树
Collection Methods
Data Queries 和Data Input Methods是采集数据的方式,一般我们无需对这两项进行修改;
Templates
Graph Templates 、Host Templates和Data Templates 分别是图像模板、主机类型模板和数据模板。这些模板可以导出、导入也可以自己编写,一般无需修改。
Import/Export
Import Templates 和Export Templates,对上述模板的导入、导出。我们可以在Cacti的官方网站上找到这些模板,不过需要注意模板对于的Cacti的版本。
Configuration
Settings ——Cacti的主要配置菜单;
可以在此重新设置对应的程序的路径、版本等信息。也可以设置图像的输出方式(允许ftp)、显示效果、登陆方式(允许使用LDAP)等。
Utilities
System Utilities ——显示Cacti系统的一些cache和log信息,如果log文件太大建议直接到后台查看;
User Management ——用户管理。可以在此添加、删除用户,并对每个用户设置详细的权限;
Logout User ——注销用户。
3、创建监测点
假设被监测的服务器名叫“My_Frest_Host”,IP为192.168.100.1,SNMP的community为public。
进入Cacti的console面板->
点击“Devices”进入设备面板->
点击“Add”添加新设备->
填写要监测服务器的各种信息,其中Host Template请选择“ucd/net SNMP Host”(如图8)->
图8、填写新建服务器信息
点击“Create”保存信息,如果SNMP连接没有问题,左上角会出现该服务器的信息,否则会出现“SNMP error”的红色字样->
点击上部的“Create Graphs for this Host ”为该设备创建需监测的内容。监测的内容分两种,“Graph Templates”和“Data Query”(如图9),区别在于“Data Query”能根据SNMP信息列出监测项目的信息。例如Data Query里的“Interface Statistics”可以看到该主机所有网卡的信息,这样我们可以选择需要监测的网卡。点击右侧的正方形选择框勾选上要监测的项目->
图9、选择要监测的内容
点击“Create”创建选择的监测内容,已经选择创建的内容会自动变成灰色并且不能再点选(如图9)。Cacti会自动创建该监测点的rrd文件(在rra文件夹中)、“Data Source”和“graph”条目。创建监测点完毕。
4、查看监测点
点击“Graph Management”可以看到刚才创建的监测点对应的图像,注意由于Cacti默认每5分钟到监测服务器上取一次数据,所以刚创建的监测点会出现图像不能显示的现象,需要等几分钟查看才会正常显示。
为了方便查看,可以将刚才新创建的设备或图像加入到“图像树”上:
点击“Graph Tree”进入“图像树”面板->
点击分支名称或“Add”新的分支->
点击“Add”,添加新的“Tree Items”->
“Tree Item Type”中选择“Host”,“Tree Item Value”的“host”中选择刚才新添加的主机“My_Frest_Host”->
点击“Create”。
这样,我们就可以在“graphs”界面中查看“My_Frest_Host”的所有监测图像了。
七、资源
Cacti官方网站:
http://www.cacti.net
RRDtool官方网站:
http://www.rrdtool.org
MRTG官方网站:
http://www.mrtg.org
Net-SNMP官方网站:
http://www.net-snmp.org
RRDTool的libs包下载地址
http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/libs/
How to Configure SNMP Community Strings(In Cisco router)
http://www.cisco.com/en/US/tech/tk648/tk362/technologies_tech_note09186a0080094aa4.shtml
Able写的RRDTool的详细介绍和使用
http://bbs.chinaunix.net/viewthread.php?tid=552218
Cacti FAQ
一、全局:
1、什么是CACTI?它有什么用?
2、cacti的官方网站在哪里?
3、在哪里下载?
4、怎么安装它呢?
5、使用cacti需要什么知识?
6、找不到snmpwalk和snmpget命令?
二、使用:
1、为什么图像不能显示?
2、为什么rra目录下什么都没有?
3、为什么能取到流量的数据但取不到CPU和内存的数据?
4、可以取到本机(linux)的数据,但却不能取到远程主机的数据?
5、我以前用MRTG进行流量的监测,是否可以将MRTG中的数据导入到Cacti中呢?
6、为什么我的流量达到100M以上图像就不准呢?
7、09/02/2005 02:59:58 PM - POLLER: Poller[0] Maximum runtime of 296 seconds exceeded. Exiting,什么意思?
8、怎么备份Cacti和它的数据呀?
9、如何将数据合并?如何自定义脚本?
10、使用monitor、threshld插件
11、为什么月、年的流量图下面的字母乱码?
12、cacti是否支持中文?
13、新建的device的Data Query里面的状态总是“ Success [0 Items, 0 Rows]”?
一、全局:
1、什么是CACTI?它有什么用?
cacti是一套PHP程序,它运用snmpget采集数据,使用rrdtool绘图。使用Cacti能统计网络设备的
流量、CPU、系统负载等参数,也可以自定义监测的指标。
2、cacti的官方网站在哪里?
http://www.cacti.net
3、在哪里下载?
http://www.cacti.net/download_cacti.php
4、怎么安装它呢?
官方的安装文档:http://www.cacti.net/documentation.php
我写的安装文档:http://www.joecen.com/cacti/installcacti/
或者:http://bbs.chinaunix.net/viewthread.php?tid=594019
5、使用cacti需要什么知识?
需要具有一定的使用net-snmp和rrdtool的知识。
如果要自定义监测的指标还需要一定的shell脚本或xml语言能力。如果你想帮助cacti的开发,则
需要通晓php脚本。
6、找不到snmpwalk和snmpget命令?
请安装新的net-snmp包或打net-snmp-utils 包。
二、使用:
1、为什么图像不能显示?
先确定你的IP地址、snmp comunite、snmp version等信息配置没有错误。
如果是在linux下安装cacti的话,可以按以下步骤检测:
1.1、cacti的data sources和Graph Management均有debug。看是否有错误,比如rrd文件找不到等。
1.2、data sources里看rrd文件的名称,然后到/cacti/rra目录中看是否有该文件存在。
1.3、如果有rrd文件存在,则可以使用
rrdtool fetch yourRRDfile.rrd AVERAGE
命令,看该文件的采集的数据,如果都是“nan”,那就是没有取到数据。
1.4、有可能是snmpget、snmpwalk和rrdtool的路径错误。
1.5、排除错误后,需要重新建立该监测点(graph)。
提示:每一个图像的文件均会保存为rra目录里的一个rrd为后缀的文件(可以在“Data Sources”中看到)
。“Data Sources”和“Graph Management”中均可以进行debug,可以从debug中得出错误信息。
2、为什么rra目录下什么都没有?
2.1、请查看该目录的权限。该目录的权限应为cactiuser可以读写。
2.2、如果目录的权限没有问题,那么可能是snmp的设置有问题,请手工测试一下:
snmpwalk -v 2c -c public yourIP if
如果有数据返回,则snmp的数据没有问题。如果出现“Timeout: No Response from …”之类的
错误信息则是snmp设置的问题。
2.3、也可能是snmpwalk、snmpget和rrdtool的路径没有设置好在Settings-》Paths中检查设置是否正确。
修改后请重建该监测点!否则不生效。
3、为什么能取到流量的数据但取不到CPU和内存的数据?
应该是snmp权限的设置问题。可以用snmpwalk手工测试一下。
如果要取CPU等数据,需要修改net-snmp的配置。如何修改请看:
http://www.joecen.com/cacti/setsnmp/
4、可以取到本机(linux)的数据,但却不能取到远程主机的数据?
Cacti有很多模板,有的是用SNMP进行数据采集,有的是用shell脚本进行采集。如果没有特别的原因建议都使用SNMP的。
Associated Graph Templates
前面带“ucd/net”的就是能使用ucd-snmp和net-snmp的模板。如:ucd/net - CPU Usage
Associated Data Queries
前面带SNMP的就是能使用snmp的。如:SNMP - Interface Statistics
当然,你还可以从www.cacti.net上找到新的模板或添加自己的模板。
5、我以前用MRTG进行流量的监测,是否可以将MRTG中的数据导入到Cacti中呢?
当然可以!因为我就是这样做的。
请看:将MRTG的数据转换为RRDTool的格式
6、为什么我的流量达到100M以上图像就不准呢?
这与snmp的版本有关,snmp1的数据是32位而snmp2c以上是64位。
首先要确定你使用的是snmp2c或以上(现在的网络设备一般都支持)。
然后点击Cacti的页面:“Console ->; Create New Graphs ->;Data Query”。你在下面看到
“Select a graph type:”的下拉菜单(默认是“In/Out bits”),要取64bits的数据所以将其改为
“In/Out bits(64-bit Counters)”,然后选择你要监测的网卡即可。
另外,该监测点的“Maximum Value”必须设置为100M以上。
如果是Linux主机要监测100M以上的流量(一般不会发生),需要带“–enable-mfd-rewrites”参数重新编译最新的net-snmp。
7、09/02/2005 02:59:58 PM - POLLER: Poller[0] Maximum runtime of 296 seconds exceeded. Exiting,什么意思?
应该是你的监测点设置太多,导致cacti通过snmpget取完所有数据的时间超过300秒。
Cacti的作者一早就考虑到这问题,所以在cacti中有两种解决方法:
7.1、将POLLER更改为cactid。
默认的POLLER是cmd.php,而cactid是使用C写的程序,效率会比cmd.php高几倍!
注意,虽然POLLER的选项中有cactid的选择,但cactid默认并没有安装,所以即使你选择了它也不会生效的。
你可以从这里(http://www.cacti.net/cactid_download.php)下载cactid的源码或rpm(bin)文件进行安装。然后在PATH中指定cactid的路径即可。
7.2、在POLLER的设置中加大cmd.php的进程数,即同时运行多个cmd.php进行数据的采集。但这样的话会加重你的系统负载。
如果你的机器性能太差,建议还是改用cactid为好。
PS:当磁盘空间满的时候会出现这个问题,原因是磁盘空间慢导致snmpget的时间变长。
8、怎么备份Cacti和它的数据呀?
只需要备份rra目录和数据库就可以了。你喜欢也可以将log目录一起备份。
如果你自己添加了一些插件的话记得也拷过去。
9、如何将数据合并?如何自定义脚本?
请看:http://bbs.chinaunix.net/viewthread.php?tid=631801
10、使用monitor、threshld插件
请看: 如何使用monitor、threshld插件
11、为什么月、年的流量图下面的字母乱码?
回答by萧筱筱:
是由于rrdtool不支持中文导致的。我的情况更为严重,当图中出现中文时,rrdtool graph的时候索性就segment fault掉了。
因为中文环境下的日期显示会缺省的把星期和月显示成中文,以致于你的图上由于无法显示中文而出现乱码。
解决的办法有2种思路,一种就是让rrdtool显示英文的日期,一种就是让rrdtool支持中文。两种方法都牵涉到修改rrdtool的源代码。我采取的是第一种思路,让rrdtool不要去读中文环境的语言环境变量,强制让它用英文。
我是在编译rrdtool1.2时把src/rrd_graph.c文件中的这段内容改掉:
setlocale(LC_TIME,”");
改成
setlocale(LC_ALL,”en_US.ISO-8859-1″);
然后再编译。这样就好了。如果还不行,你就把你的环境变量里的语言环境都改成英文:
export LC_ALL=en_US
export LANG=en_US
export LANGUAGE=en_US
export LC_CTYPE=en_US
export LC_TIME=en_US
或者,你就索性根据abel的方法让rrdtool支持中文吧。
http://bbs.chinaunix.net/viewthread.php?tid=552224
12、cacti是否支持中文?
cacti默认在某些页面不能正常显示中文,rrdtool默认也不可以显示中文。
如果真的需要使用中文,请参考下面连接。
Cacti–进阶应用
13、新建的device的Data Query里面的状态总是“ Success [0 Items, 0 Rows]”?
请先确认你的snmpd.conf中的权限设置,是否允许cacti取这些OID的数据。可以使用snmpwalk命令来进行测试,比如:
snmpwalk -c community -v 2c hostIP if
如果你的snmpd.conf设置没有问题,那可能是下面这种情况:
旧版本的snmpwalk(比如redhat默认安装的5.0.6)缺少一些参数,比如-O中的”U”参数.(可以用snmpwalk –help来查看是否有该参数)。
而cacti-0.86g或以上版本需要这些参数,解决办法是安装一个新的net-snmp包(如:net-snmp5.2.1),从而得到一个新snmpwalk的版本。
其它的请大家上
www.cacti.net
看看吧。那里有官方的论坛,可以在那里提问。