1、Cacti使用手册0206Cacti使用手册一、 Cacti的架构二、 Cacti的工作流程三、 Cacti简介1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。2. Mysql配合PHP程序存储一些变量数据并对变量数据的调用如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。3. snmp抓到数据不是存储在mysql中,而是存在rrdto
2、ol生成的rrd文件中(在cacti根目录的rra文件夹下)。另外,当生成图片时对采集的数据的处理方式:有gauge、counter、derive、absolute。参考以下例子:如果輸入資料依序為 98 100 98: 1.GAUGE(個別值,像CPU loading):產生圖檔時,畫 98 100 98 2.COUNTER (累計值,像流量資料):產生圖檔時,畫,2 -2 3.DERIVE (累計值,像流量資料),小於0畫0:產生圖檔時,畫 2 0 4.ABSOLUTE 如同 COUNTER,但 COUNTER 可能 overflow(數值過大),所以會取絕對值 補充說明,COUNTER/
3、DERIVE/AVSOLVTE 雖是取差值,但會再除以兩次間隔間的秒數,如上 COUNTER 例,兩次間隔間為 300 秒,那畫出來的就是 2/300,-2/300 的值数据采集中可以看到定义的是什么数据类型:Counter和gaugeC:usrbinsnmpget -v 2c -c public 192.168.224.1 .1.3.6.1.2.1.6.5.0TCP-MIB:tcpActiveOpens.0 = Counter32: 1927 C:usrbinsnmpget -v 2c -c public 192.168.224.1 .1.3.6.1.2.1.6.9.0TCP-MIB:tcp
4、CurrEstab.0 = Gauge32: 04. rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。rootlocalhost rra# ls 220_181_11_156_mem_*220_181_11_156_mem_buffers_30.rrd 220_181_11_156_mem_cache_31.rrd 220_181_11_156_mem_free_32.rrd(可以看出一个图形对应好几个rrd文件-即对应几个数据源-但也可以一个rrd文件包含几个数据源)下面
5、对单独的rrd文件分析,主要看一下他的结构信息提示符#/usr/local/rrdtool-1.2.11/bin/rrdtool info 220_181_11_156_mem_buffers_30.rrdfilename = 220_181_11_156_mem_buffers_30.rrdrrd_version = 0003step = 300last_update = 1132935300dsmem_buffers.type = GAUGEdsmem_buffers.minimal_heartbeat = 600dsmem_buffers.min = 0.0000000000e+00ds
6、mem_buffers.max = 1.0000000000e+07dsmem_buffers.last_ds = UNKNdsmem_buffers.value = 0.0000000000e+00dsmem_buffers.unknown_sec = 0rra0.cf = AVERAGErra0.rows = 600rra0.pdp_per_row = 1rra0.xff = 5.0000000000e-01rra0.cdp_prep0.value = NaNrra0.cdp_prep0.unknown_datapoints = 0rra1.cf = AVERAGErra1.rows =
7、700rra1.pdp_per_row = 6rra1.xff = 5.0000000000e-01rra1.cdp_prep0.value = 6.1228800000e+05rra1.cdp_prep0.unknown_datapoints = 0rra2.cf = AVERAGErra2.rows = 775rra2.pdp_per_row = 24rra2.xff = 5.0000000000e-01rra2.cdp_prep0.value = 6.1228800000e+05rra2.cdp_prep0.unknown_datapoints = 0rra3.cf = AVERAGEr
8、ra3.rows = 797rra3.pdp_per_row = 288rra3.xff = 5.0000000000e-01rra3.cdp_prep0.value = 6.9392640000e+06rra3.cdp_prep0.unknown_datapoints = 161rra4.cf = MAXrra4.rows = 600rra4.pdp_per_row = 1rra4.xff = 5.0000000000e-01rra4.cdp_prep0.value = NaNrra4.cdp_prep0.unknown_datapoints = 0rra5.cf = MAXrra5.row
9、s = 700rra5.pdp_per_row = 6rra5.xff = 5.0000000000e-01rra5.cdp_prep0.value = 2.0409600000e+05rra5.cdp_prep0.unknown_datapoints = 0rra6.cf = MAXrra6.rows = 775rra6.pdp_per_row = 24rra6.xff = 5.0000000000e-01rra6.cdp_prep0.value = 2.0409600000e+05rra6.cdp_prep0.unknown_datapoints = 0rra7.cf = MAXrra7.
10、rows = 797rra7.pdp_per_row = 288rra7.xff = 5.0000000000e-01rra7.cdp_prep0.value = 2.0409600000e+05rra7.cdp_prep0.unknown_datapoints = 161 5. 参考rrdtool语法理解cacti的各个功能与之对于关系:rootlocalhost rrdtool-1.0.50# ./bin/rrdtoolRRDtool 1.0.50 Copyright 1997-2004 by Tobias Oetiker Usage: rrdtool options command co
11、mmand_optionsValid commands: create, update, graph, dump, restore, last, first, info, fetch, tune, resize, xportRRDtool is distributed under the Terms of the GNU GeneralPublic License Version 2. (www.gnu.org/copyleft/gpl.html)For more information read the RRD manpagesrootlocalhost rra# /usr/local/rr
12、dtool-1.2.11/bin/rrdtool -helpRRDtool 1.2.11 Copyright 1997-2005 by Tobias Oetiker Compiled Sun Nov 13 12:30:19 CST 2005Usage: rrdtool options command command_optionsValid commands: create, update, updatev, graph, dump, restore, last, first, info, fetch, tune, resize, xportRRDtool is distributed und
13、er the Terms of the GNU GeneralPublic License Version 2. (www.gnu.org/copyleft/gpl.html)For more information read the RRD manpages四、 Cacti的安装1安装环境:redhat9.02安装版本的特别说明对cacti的poller type改为了cactid,他是用c语言写程序,目的是为了配合cacti工作,解决poller.php更新、获取数据慢的缺点;具有多进程多线程的特性安装rrdtool版本是1.2.11,此版本的特点是生成的图像比1.0.50版本更美观3安装
14、以下软件包:httpd-2.0.54.tar.gzmysql-4.0.18.tar.gzphp-4.4.0.tar.gzrrdtool-1.2.11.tar.gznet-snmp-5.2.1.1.tar.gzcacti-0.8.6f.tar.gzcacti-cactid-0.8.6f-1.tar.gz都放到/tools下A安装mysql groupadd mysql useradd -g mysql mysql cd /tools tar zxvf mysql-4.0.18.tar.gz cd mysql-4.0.18./configure -prefix=/usr/local/mysql -
15、with-charset=gbk -with-extra-charsets=all -with-mysqld-user=mysql make make install /usr/local/mysql/bin/mysql_install_db echo /usr/local/mysql/lib/mysql /etc/ld.so.conf su - ldconfig cd /home/admin/mysql-4.0.18/support-files/ cp mysql.server /etc/rc.d/init.d/mysql chkconfig -add mysql chown -R mysq
16、l.mysql /usr/local/mysql/var chmod 700 /usr/local/mysql/var /etc/rc.d/init.d/mysql start或者/usr/local/mysql/bin/mysqld_safe & cp /usr/local/mysql/bin/mysql /usr/local/bin修改mysql的最大连接数 vi mysqld_safe找到此位置,在-skip-locking与 之间插入-O max_connections=1000if test -z $args then $NOHUP_NICENESS $ledir/$MYSQLD $
17、defaults -basedir=$MY_BASEDIR_VERSION -datadir=$DATADIR $USER_OPTION -pid-file=$pid_file -skip-locking -O max_connections=1000 $err_log 2&1 else eval $NOHUP_NICENESS $ledir/$MYSQLD $defaults -basedir=$MY_BASEDIR_VERSION -datadir=$DATADIR $USER_OPTION -pid-file=$pid_file -skip-locking $args -O max_co
18、nnections=1000 $err_log 2&1 fi重起mysqlB安装apache cd /tools/http./configurs -prefix=/usr/local/http/ make make installC安装php cd php./configure -with-mysql -with-apxs2=/usr/local/http/bin/apxs -enable-track-vars -with-zlib-dir=/usr/include -with-gd make make install cp php.ini-dist /usr/local/lib/php.in
19、iD安装rrdtoolhttp:/people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/rrdtool-1.2.11.tar.gz由于rrdtool1.2.11需要一些库文件支持,故需先安装配置支持的环境,然后编译安装。直接运行以下sh脚步就可以完成安装:(注意脚步中的链接是否失效)#!/bin/sh#intall the rrdtool-1.2.11 ,and aslo install the support libraries.#the source page#http:/people.ee.ethz.ch/oetiker/webtools/rrdt
20、ool/doc/rrdbuild.en.html#BUILD_DIR=/tmp/rrdbuildINSTALL_DIR=/usr/local/rrdtool-1.2.11mkdir -p $BUILD_DIRcd $BUILD_DIR#Building cgilib# cd $BUILD_DIRwget http:/people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/cgilib-0.5.tar.gztar zxf cgilib-0.5.tar.gzcd cgilib-0.5make CC=gcc CFLAGS=-O3 -fPIC -I.mk
21、dir -p $BUILD_DIR/lb/includecp *.h $BUILD_DIR/lb/includemkdir -p $BUILD_DIR/lb/libcp libcgi* $BUILD_DIR/lb/lib#Building zlib # cd $BUILD_DIRwget http:/people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/zlib-1.2.2.tar.gztar zxf zlib-1.2.2.tar.gzcd zlib-1.2.2env CFLAGS=-O3 -fPIC ./configure -prefix=$
22、BUILD_DIR/lbmakemake install#Building libpng#cd $BUILD_DIRwget http:/people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/libpng-1.2.8-config.tar.gztar zxvf libpng-1.2.8-config.tar.gzcd libpng-1.2.8-configenv CPPFLAGS=-I$BUILD_DIR/lb/include LDFLAGS=-L$BUILD_DIR/lb/lib CFLAGS=-O3 -fPIC ./configure -d
23、isable-shared -prefix=$BUILD_DIR/lbmakemake install#Building freetype #cd $BUILD_DIRwget http:/people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/freetype-2.1.9.tar.gztar zxvf freetype-2.1.9.tar.gzcd freetype-2.1.9env CPPFLAGS=-I$BUILD_DIR/lb/include LDFLAGS=-L$BUILD_DIR/lb/lib CFLAGS=-O3 -fPIC ./c
24、onfigure -disable-shared -prefix=$BUILD_DIR/lbmakemake install#Building libart_lgpl#cd $BUILD_DIRwget http:/people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/libart_lgpl-2.3.17.tar.gztar zxvf libart_lgpl-2.3.17.tar.gzcd libart_lgpl-2.3.17env CFLAGS=-O3 -fPIC ./configure -disable-shared -prefix=$BU
25、ILD_DIR/lbmakemake install#ENDENDENDENDENDENDENDENDENDENDENDENDENDENDENDENDENDENDEND#IR=-I$BUILD_DIR/lb/includeCPPFLAGS=$IR $IR/libart-2.0 $IR/freetype2 $IR/libpngLDFLAGS=-L$BUILD_DIR/lb/libCFLAGS=-O3export CPPFLAGS LDFLAGS CFLAGS#start install the rrdtool-1.2.11cd $BUILD_DIRwget http:/people.ee.eth
26、z.ch/oetiker/webtools/rrdtool/pub/rrdtool-1.2.11.tar.gztar zxf rrdtool-1.2.11.tar.gzcd rrdtool-1.2.11./configure -prefix=$INSTALL_DIR -disable-python -disable-tclmakemake installE安装net-snmpUnix系统安装的都是net-snmp或ucd-snmp(其实两个都是同一组人写的)。如果没有安装snmp,可以到net-snmp.sourceforge.org上下载源码编译安装。 我这里说的安装SNMP服务并不是要求安
27、装SNMPD,其实是Cacti需要用到net-snmp中的两个命令snmpwalk和snmpget进行数据的采集。我们可以直接在系统中运行snmpwalk和snmpget看是否有该命令,如果有则不用安装了。 tar zxf net-snmp-5.2.1.1.tar.gz cd net-snmp-5.2.1.2./configure -prefix=/usr/local/net-snmp -enable-developer make make installF安装cacti cp cacti-0.8.6f.tar.gz /usr/local/http/htdocs/ cd /usr/local/
28、http/htdocs/ tar zxvf cacti-0.8.6f.tar.gz mv cacti-0.8.6f cacti G安装cacti-cactidCACTID 的安装需要以下支持: net-snmp-devel (需要编译安装net-snmp时添加-enable-developer选项) mysql mysql-devel (mysql源文件编译安装后默认支持) openssl-devel (redhat9.0默认安装)因此需要检查是否具备安装的环境。 tar zxf cacti-cactid-0.8.6f-1.tar.gz cd cactid0.8.6-f1 ./configure ;make 这是此目录下你将看到cactid 和cactid.conf mkdir /usr/local/cactid cp cactid cactid.conf /usr/local/cactid
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1