使用Cacti监控你的网络 Cacti使用手册
目录:
一、概述及Cacti的工作流程 二、Cacti的安装(Linux) 三、Cacti的安装(Windows) 四、Cacti的使用 五、Cacti脚本及模板 六、打造自己的Cacti模板 七、Cacti插件 八、参考
Cacti使用手册 一、概述
1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
(SNMP的团体是一个代理和多个管理站之间的认证的访问控制关系。允许访问的团体名是在被管理系统一侧定义的。一般来讲,代理系统可以对不同的团体定义不同的访问控制策略,每一个团体被赋予一个唯一的名字。管理站只能以代理认可的团体名行使其访问权。另一方面,由于团体名的有效局范围局限于定义它的代理系统中,所以一个管理站可能以不同的名字出现在不同的代理中,即管理实体可以用不同的名字对不同的代理实施不同的访问权限。反之,如果两个代理定义了同一团体名,这种名字的相似性也不意味着它们属于同一团体内。)
3. snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。关于RRDTool的知识请参阅RRDTool教学。
二、Cacti的架构及工作流程
Cacti的架构
Cacti的工作流程
三、Cacti的安装(Linux)
安装环境:Red Hat AS 4 安装Apache、MySQL、PHP (1).安装MySQL
下载地址:http://dev.mysql.com/downloads/mysql/5.0.html
//查看系统中是否已经安装了MySQL,如果是卸载所有以mysql开头的包。 # rpm –qa | grep mysql # rpm –e mysql-*
//查找/etc/my.cnf(MySQL的选项配置文件),如果有请删除它,以免影响新安装版本的启动。 # rm –f /etc/my.cnf
# tar –zxvf mysql-standard-5.0.27-linux-i686-glibc23.tar.gz # cp –rf mysql-standard-5.0.27-linux-i686-glibc23 /usr/local/
//建立符号链接,如果以后有新版本的MySQL的话,你可以仅仅将源码解压到新的路径,然后重新做一个符号链接就可以了。这样非常方便,数据也更加安全。
# ln –s mysql-standard-5.0.27-linux-i686-glibc23 /usr/local/mysql
//添加用于启动MySQL的用户及用户组(如果以前安装过MySQl,用户及用户组可能已存在)。 # useradd mysql # groupadd mysql //初始化授权表 # cd /usr/local/mysql # scripts/mysql_install_db
//修改MySQl目录的所有权 # cd /usr/local
# chgrp –R mysql mysql-standard-5.0.27-linux-i686-glibc23 # chgrp –R mysql
# chown –R mysql mysql-standard-5.0.27-linux-i686-glibc23/data # chown –R mysql mysql/data
# ln –s /usr/local/mysql/bin/* /usr/local/bin/ //启动Mysql
# bin/safe_mysqld --user=mysql & //配置系统启动时自动启动MySQl
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld # chkconfig --add mysqld //修改MySQL的最大连接数 # vi /etc/my.cnf //添加以下行 [mysqld]
set-variable=max_connections=1000 set-variable=max_user_connections=500 set-variable=wait_timeout=200
//max_connections设置最大连接数为1000
//max_user_connections设置每用户最大连接数为500
//wait_timeout表示200秒后将关闭空闲(IDLE)的连接,但是对正在工作的连接 //保存退出,并重新启动MySQL
//重新启动MySQL后使用下面的命令查看修改是否成功 # mysqladmin -uroot -p variables Password:
//可以看到以下项说明修改成功
| max_connections | 1000 | max_user_connections | 500 | wait_timeout | 200
(2).安装Apache
下载地址:http://httpd.apache.org/ # tar –zxvf httpd-2.2.4.tar.gz # cd httpd-2.2.4
# ./configure --prefix=/usr/local/apache --enable-so //编译时加上加载模块参数--enable-so
# make # make install
#vi /usr/local/apache/conf/httpd.conf # vi /etc/rc.d/rc.local (3).安装PHP
不影响。
//修改Apache配置文件,添加ServerName www.yourdomain.com (或ServerName 本机ip) //在rc.local上加入一行/usr/local/apache/bin/apachectl –k start,系统启动时启动Apache服务。
先安装zlib,freetype,libpng,jpeg以便于让PHP支持GD库(Cacti的WeatherMap插件必须要GD库的支持) 库文件下载地址:http://oss.oetiker.ch/rrdtool/pub/libs/
1).安装zlib tar zlib-1.2.3.tar.gz cd zlib-1.2.3
./configure --prefix=/usr/local/zlib make make install
2).安装libpng
tar zxvf libpng-1.2.16.tar.tar cd libpng-1.2.16 cd scripts/
mv makefile.linux ../makefile cd .. make make install
注意,这里的makefile不是用./configure生成,而是直接从scripts/里拷一个
3).安装freetype
tar zxvf freetype-2.3.4 .tar.gz cd freetype-2.3.4
./configure --prefix=/usr/local/freetype make make install
4).安装Jpeg
tar -zxf jpegsrc-1.v6b.tar.gz cd jpeg-6b/
mkdir /usr/local/libjpeg mkdir /usr/local/libjpeg/include mkdir /usr/local/libjpeg/bin mkdir /usr/local/libjpeg/lib mkdir /usr/local/libjpeg/man mkdir /usr/local/libjpeg/man/man1
//可以用mkdir -p /usr/local/libjpeg/man/man1 一步创建多层目录 ./configure --prefix=/usr/local/libjpeg --enable-shared --enable-static make && make install
注意,这里configure一定要带--enable-shared参数,不然,不会生成共享库
5).安装Fontconfig
tar -zxvf fontconfig-2.4.2.tar.gz cd fontconfig-2.4.2 make make install
6).安装GD
tar -zxvf gd-2.0.34.tar.gz cd gd-2.0.34
./configure --with-png --with-freetype=/usr/local/freetype --with-jpeg=/usr/local/libjpeg make make install
编译时显示以下信息:
** Configuration summary for gd 2.0.34:
Support for PNG library: yes Support for JPEG library: yes Support for Freetype 2.x library: yes Support for Fontconfig library: yes Support for Xpm library: no Support for pthreads: yes
7).编辑/etc/ld.so.conf,添加以下几行到此文件中。
8).安装libxml,RedHat AS 4默认安装libxml包,但版本太低,PHP5需要更高版本的libxml包。
9).安装PHP
PHP下载地址:http://www.php.net/downloads.php#v5 tar -zxvf php-5.2.3.tar.gz cd php-5.2.3
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-gd=/usr/local/libgd --enable-gd-native-ttf # make # make install
# ln –s /usr/local/php/bin/* /usr/local/bin/ # vi /usr/local/apache/conf/httpd.conf
查找AddType application/x-compress .Z ??????????????????????????? AddType application/x-gzip .gz .tgz 在其下加入 AddType application/x-tar .tgz AddType application/x-httpd-php .php AddType image/x-icon .ico
修改DirectoryIndex 行,添加index.php
修改为DirectoryIndex index.php index.html index.html.var # vi /usr/local/apache/htdocs/test.php
--with-ttf
--enable-gd-jis-conv
--with-freetype-dir=/usr/local/freetype
--with-jpeg-dir=/usr/local/libjpeg
--with-png-dir=/usr --with-zlib-dir=/usr/local/zlib --enable-xml --enable-mbstring --enable-sockets
# tar –zxvf libxml2-2.6.25.tar.gz # cd libxml2-2.6.25 # ./configure # make # make install
/usr/local/zlib/lib /usr/local/freetype/lib /usr/local/libjpeg/lib /usr/local/libgd/lib
并执行ldconfig命令,使用动态装入器装载找到共享库
添加以下行:
Phpinfo();
wq保存退出。
# /usr/local/apache/bin/apachectl –k stop #/usr/local/apache/bin/apachectl –k start
在浏览器中输入:http://www.yourdomain.com/test.php进行测试。
对php编译选项的解释: --prefix=/usr/local/php
//指定PHP的安装目录
//支持Apache模块
//支持MySQl
--with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-gd=/usr/local/libgd
//支持GD库
--enable-gd-native-ttf //激活对本地 TrueType 字符串函数的支持 --with-ttf //激活对 FreeType 1.x 的支持
--with-freetype-dir=/usr/local/freetype //激活对 FreeType 2.x 的支持 --with-jpeg-dir=/usr/local/libjpeg //激活对 jpeg-6b 的支持 --with-png-dir
//激活对 png 的支持
//激活对zlib 的支持
//激活mbstring模块
--with-zlib-dir=/usr/local/zlib --enable-mbstring
--enable-gd-jis-conv //使JIS-mapped可用,支持日文字体 --with-mail //支持Mail函数 --enable-xml
安装RRDTool
由于rrdtool-1.2.23需要一些库文件支持,故需先安装配置支持的环境,然后编译安装。直接运行以下bash脚本就可以完成安装: 注意:将cgilib-0.5.tar.gz、zlib-1.2.3.tar.gz、libpng-1.2.18.tar.gz、freetype-2.3.5.tar.gz、libart_lgpl-2.3.17.tar.gz、rrdtool-1.2.23.tar.gz放到/root/rrdtool-1.2.23目录下,将脚本保存为/root/rrdtool-1.2.23/rrdtoolinstall.sh,并给执行权限chmod u+x /root/rrdtool-1.2.23/rrdtoolinstall.sh。
以下链接是我重新打好的一个rrdtool-1.2.23的安装包,里面包括了所有用到的库文件和安装脚本,下载解压后执行脚本rrdinstall.sh即可以完成RRDTool的安装。 点击下载rrdtool-1.2.23.tar.gz #!/bin/sh
BUILD_DIR=`pwd`
INSTALL_DIR=/usr/local/rrdtool cd $BUILD_DIR tar zxf cgilib-0.5.tar.gz cd cgilib-0.5
make CC=gcc CFLAGS=\"-O3 -fPIC -I.\" mkdir -p $BUILD_DIR/lb/include cp *.h $BUILD_DIR/lb/include mkdir -p $BUILD_DIR/lb/lib cp libcgi* $BUILD_DIR/lb/lib
//支持XML
--enable-sockets //支持套接 字
cd $BUILD_DIR tar zxf zlib-1.2.3.tar.gz cd zlib-1.2.3
env CFLAGS=\"-O3 -fPIC\" ./configure --prefix=$BUILD_DIR/lb make make install
cd $BUILD_DIR
tar zxvf libpng-1.2.18.tar.gz cd libpng-1.2.18
env CPPFLAGS=\"-I$BUILD_DIR/lb/include\" LDFLAGS=\"-L$BUILD_DIR/lb/lib\" CFLAGS=\"-O3 -fPIC\" \\ ./configure --disable-shared --prefix=$BUILD_DIR/lb make make install
cd $BUILD_DIR
tar zxvf freetype-2.3.5.tar.gz cd freetype-2.2.5
env CPPFLAGS=\"-I$BUILD_DIR/lb/include\" LDFLAGS=\"-L$BUILD_DIR/lb/lib\" CFLAGS=\"-O3 -fPIC\" \\ ./configure --disable-shared --prefix=$BUILD_DIR/lb make make install
cd $BUILD_DIR
tar zxvf libart_lgpl-2.3.17.tar.gz cd libart_lgpl-2.3.17
env CFLAGS=\"-O3 -fPIC\" ./configure --disable-shared --prefix=$BUILD_DIR/lb make make install
IR=-I$BUILD_DIR/lb/include
CPPFLAGS=\"$IR $IR/libart-2.0 $IR/freetype2 $IR/libpng\" LDFLAGS=\"-L$BUILD_DIR/lb/lib\" CFLAGS=-O3
export CPPFLAGS LDFLAGS CFLAGS
cd $BUILD_DIR tar zxf rrdtool-1.2.23.tar.gz cd rrdtool-1.2.23
./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl && make && make install
//完成后建立符号连接
ln –s /usr/local/rrdtool/bin/* /usr/local/bin/ //执行rrdtool看是否安装正确
安装net-snmp
RedHat默认安装了SNMP服务,但好象没有snmpwalk,snmpget这两个命令,所以需要编译安装NET-SNMP。 NET-SNMP官方网站:http://www.net-snmp.org/ # tar zxvf net-snmp-5.2.4.tar.gz #cd net-snmp-5.2.4
#./configure --prefix=/usr/local/net-snmp --enable-developer #make #make install
# ln –s /usr/local/net-snmp/bin/* /usr/local/bin/
#cp EXAMPLE.conf /usr/local/net-snmp/share/snmp/snmpd.conf
//修改snmpd.conf(修改COMMUNITY、允许抓取snmp数据的主机、抓取数据范围等)。 # /usr/local/net-snmp/sbin/snmpd //启动SNMP服务 # vi /etc/rc.d/rc.local
安装Cacti
Cacti官方网站:www.cacti.net/ # tar –zxvf cacti-0.8.6j.tar.gz
# mv –r cacti-0.8.6j /usr/loca/apache/htdocs/cacti # vi /usr/local/apache/htdocs/cacti/include/config.php $database_type = \"mysql\"; $database_default = \"cacti\"; $database_hostname = \"localhost\"; $database_username = \"cacti\"; $database_password = \"cacti\";
安装Cactid
CACTID 的安装需要以下支持:
net-snmp-devel (需要编译安装net-snmp时添加--enable-developer选项) mysql
mysql-devel (mysql源文件编译安装后默认支持) openssl-devel (Redhat默认安装) # tar -zxvf cacti-cactid-0.8.6i.tar.gz # cd cacti-cactid-0.8.6i
# ./configure --with-mysql=/usr/local/mysql --with-snmp=/usr/local/net-snmp # make
//添加cacti用户 # useradd cacti
//将rra目录的所有权给cacti用户
# chown –R cacti /usr/loca/apache/htdocs/cacti/rra //修改cacti目录所属组
# chgrp –R cacti /usr/loca/apache/htdocs/cacti //为cacti用户添加cron任务 # su – cacti # crontab –e
*/5 * * * * /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1 //在rc.local上加入一行/usr/local/net-snmp/sbin/snmpd,系统启动时启动SNMP服务。
注意:首次执行poller.php时请使用cacti用户,否则生成的rrd文件cacti将没有写入权限。
//这时你将在此目录下看到多出了cactid、cactid.conf两个文件 # mkdir /usr/local/cactid
# cp cactid cactid.conf /usr/local/cactid # vi /usr/local/cactid/cactid.conf DB_Host 127.0.0.1 DB_Database cacti DB_User cacti DB_Pass cacti
数据库配置 #mysql –uroot –p Password:
mysql> create database cacti; Query OK, 1 row affected (0.00 sec)
mysql> grant all on cacti.* to cacti@localhost identified by “cacti”; Query OK, 1 row affected (0.00 sec)
mysql>exit
# cd /usr/local/apache/htdocs/cacti # mysql –uroot –p cacti < cacti.sql Password:
完成cacti的安装
1).在浏览器中输入:http://www.yourdomain.com/cacti/ 默认用户名:admin 密码:admin 2).更改密码
3).设置cacti用到的命令路径
snmpwalk Binary Path /usr/local/ bin/snmpwalk snmpget Binary Path /usr/local/ bin/snmpget RRDTool Binary Path /usr/local/ bin/rrdtool PHP Binary Path /usr/local/bin/php
Cacti Log File Path /usr/local/apache/htdocs/cacti/log/cacti.log Cactid Poller File Path /usr/local/cactid/cactid
//修改cactid配置文件
4).进入cacti后需确认更改以下位置:(如下图) Console>Settings>General
Console>Settings>Poller
四、Cacti的安装(Windows) 一)、软件需求
操作系统:Windows Server 2003企业版(或其他NT系统)。 安装Apache,当然也可以使用IIS。
安装MySQL,下载MySQL的Windows版本并安装到c:/mysql文件夹下。 安装PHP,从www.php.net 下载PHP 5.X并安装到c:/php文件夹下。
安装RRDTool,从www.cacti.net下载Cygwin版RRDTool并安装到c:/cacti文件夹下。 安装Net-SNMP,下载Net-SNMP并安装到c:/net-snmp文件夹下。
安装Cacti,将下载的Cacti 压缩文件解压到WEB目录下,并改名为cacti。 安装Cactid,将下载的Cactid压缩文件解压到c:/cacti文件夹下。
安装Cygwin,从Cygwin站点下载setup.exe文件,安装cygwin到c:/cygwin文件夹下。 10、安装ActivePerl,有些脚本是用perl语言写的,所以需要ActivePerl的支持。
二)、Windows下Apache、PHP、MySQL的安装 安装Apache
点击安装文件apache_2.2.4-win32-x86-no_ssl.msi将apache安装在 c:\\apache 目录下(随自己喜好)。
2、安装并配置MYSQL
在windows 下安装Mysql比较简单,和正常软件一样,下一步下一步就可以了,但最好把它的安装目录设置短一点,如:c:\\mysql;安装成功后会有一个配置向导,如下图所示配置。
3、安装并配置PHP 1)、安装PHP
把php-5.2.1-Win32.zip解压到c:\\php目录中,并设置环境变量如下图所示。
点击Execute按钮完成MySQL的安装配置。
如果MySQL出现拒绝访问情况时,请在c:\\和c:\\mysql下查找my.cnf文件并将其删除后重启MySQL。
新建系统变量:变量名:MIBDIRS,变量值:c:\\php\\extras\\mibs;
新建系统变量:变量名:PHPRC,变量值:c:\\php;
编辑系统变量Path,增加“;c:\\php;c:\\php\\ext;”
2)、配置PHP
将c:\\php目录中的php.ini-dist重命名为php.ini,编辑php.ini文件,找到extension_dir = \"./\" 改为 extension_dir = \"c:/php/ext\",找到
;extension=php_mysql.dll ;extension=php_snmp.dll ;extension=php_sockets.dll 将';'去掉改为
extension=php_mysql.dll extension=php_snmp.dll extension=php_sockets.dll cgi.force_redirect = 0
3)、配置Apache
在Apache的安装目录下找到并打开conf\\httpd.conf文件,
找到 #LoadModule ssl_module modules/mod_ssl.so 这行,在此行后加入一行
LoadModule php5_module c:/php/ php5apache2_2.dll,其中c:/php/ php5apache2_2.dll 为你php目录中php5apache2_2.dll所在的位置
找到 AddType application/x-gzip .gz .tgz 这行,在此行后加入一行 AddType application/x-httpd-php .php
找到 DirectoryIndex index.html在后面加入 index.htm index.php
4)、测试PHP是否安装成功
此时PHP环境已经配置成功,在WEB根目录(如我的c:/Apache/htdocs)里建一个名为test.php的文件内容如下
重新启动apache服务
用浏览器打开 http://localhost/test.php如果可以看到如下图所示的php配置输出信息就OK了。
三)、安装RRDTool
下载RRDTool:http://www.cacti.net/downloads/rrdtool/win32/
下载完成后解压缩,并解压出来的文件夹里的所有文件复制到c:/cacti下。
四)、安装Net-SNMP
下载Net-SNMP:http://net-snmp.sourceforge.net/
下载最新版本的Win32安装文件,并将它安装到c:/net-snmp下。
五)、安装cactid
下载Cactid:http://www.cacti.net/downloads/cactid/packages/Windows/
解压Cactid,并将解压出的文件夹了的所有文件复制到c:/cacti下,并修改cactid.conf文件。 DB_Host 127.0.0.1 or hostname (请勿输入 localhost) DB_Database cacti DB_User cacti DB_Password cacti DB_Port 3306
六)、安装Cygwin
从Cygwin站点下载setup.exe文件,安装cygwin到c:/cygwin文件夹下。 Libs
1)、运行刚下载的setup.exe 2)、选择以下安装包进行安装
Base (include all items)
libart_lgpl libfreetype26 libpng12 zlib openssl Utils patch Web wget
、添加c:\\cygwin\\bin到你的PATH系统变量中。
七)、安装ActivePerl
下载最新版本的ActivePerl for windows并安装。
下载地址:http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl 安装完成后不要忘记将ActivePerl的执行文件目录添加到你的PATH系统变量中。
八)、安装并设定cacti
下载最新版本cacti:http://www.cacti.net/downloads/ 1)、解压下载的文件到WEB目录下
2)、打开命令提示符CMD,在MySQL里新建数据库cacti并将cacti.sql导入到数据库中。 C:\\>mysql –uroot –p Password:
mysql> create database cacti; Query OK, 1 row affected (0.00 sec)
mysql> grant all on cacti.* to cacti@localhost identified by “cacti”; Query OK, 1 row affected (0.00 sec)
mysql>flush privileges; mysql>exit C:\\>
C:\\>mysql –uroot –p cacti < c:\\apache\\htdocs\\cacti\\cacti.sql Password:
3)、修改 cacti_web_root/cacti/include/config.php 配置文件。 $database_default = \"cacti\"; $database_hostname = \"localhost\"; $database_username = \"cacti\"; $database_password = \"cacti\"; $database_port = \"3306\";
4)、打开浏览器输入http://your-server/cacti/install
点击New Install,然后点下一步之后这里需要输入rrdtool、php、snmpwalk、snmpget、cactid的位置,请依照上面的安装路径进行设置。 PHP Binary Path: c:/php/php.exe
RRDTool Binary Path: c:/cacti/rrdtool.exe
SNMPGET, SNMPWALK, SNMPBULKWALK, SNMPGETNEXT Paths: c: net-snmp/usr/bin/snmpget.exe c: net-snmp/usr/bin/snmpwalk.exe c: net-snmp/usr/bin/snmpbulkwalk.exe c: net-snmp/usr/bin/snmpgetnext.exe
Cacti Logfile Path:
c:/apache/htdocs/cacti/log/cacti.log
Cactid Path: c:/cacti/cactid.exe
如果事后无法显示出图形请到Console → Settings → General → RRDTool Utility Version 将它改成RRDTool 1.2x
如果有图却没有文字的话,请到paths里的RRDTool Default Font Path - c:/windows/fonts/arial.ttf
注意:如果系统是Windows 2003 Server请将C:\\WINDOWS\\system32\\cmd.exe及rrdTool跟netsnmp的*.exe加入IIS的使用者读取权限,此举对系统有一定的危险性,如果无相关对策请更改作system。
5)、登录的帐号和密码都是admin,登录后需要立即修改密码。
6)、进入cacti后需确认更改以下位置:(如下图) Console>Settings>General
所有路径都是此安装程序的绝对路径
Console>Settings>Poller
删除Localhost devices,添加一个新的Windows LocalHost,或者修改Host Template为Windows 2000/XP。
启动本机 SNMP
如果您也要侦测本机的snmp状态请用它
开始 → 控制面板 → 添加删除程序 → 添加删除Windows组件 → Management and Monitoring Tools(管理和监控工具)→ Simple Network Management Protocol(简单网络管理协议)→ 将它打勾后点击确定来启用它.
7)、测试cacti是否安装正确
打开命令提示符(CMD),输入c:/php/php.exe c:/cacti_web_root/cacti/poller.php 看是否输出下面类似信息:
C:\\>c:/php/php.exe c:/cacti_web_root/cacti/poller.php
OK u:0.00 s:0.06 r:1.32 OK u:0.00 s:0.06 r:1.32 OK u:0.00 s:0.16 r:2.59 OK u:0.00 s:0.17 r:2.62
10/28/2005 04:57:12 PM - SYSTEM STATS: Time:4.7272 Method:cmd.php Processes:1 Threads:N/A Hosts:1 HostsPerProcess:2 DataSources:4 RRDsProcessed:2
在测试时如果错现snmp模块丢失错物可以试着将MIBDIRS设为:C:\\net-snmp\share\\snmp\\mibs
之后应该确定cacti.log文件在cacti_web_root/cacti/log/下出现,*.rrd文件在cacti_web_root/cacti/rra/下出现。
8)、定时执行命令
点击开始控制面板任务计划添加任务计划浏览c:\\php\\php.exe 设置成每天执行,高级里面选每5分钟执行一次,持续24小时;再返回到属性的首页,运行(R)改成C:\\php\\php.exe C: /Apache/htdocs/cacti/poller.php 起始于改成C: /Apache/htdocs/cacti
当输入用于执行此任务计划的用户名和密码时,请注意你输入的用户有读和写以下目录的权限: cacti_web_root/cacti/rra
cacti_web_root/log
并确认用户有读、写和执行以下目录文件的权限: c:\\php c:\\php\\sapi
五、Cacti的使用 1.界面介绍
登陆Cacti后,可以看到左上角是两个选项卡,“console”和“graphs”。console表示控制台,在此进行所有的配置等操作;而graphs则是用来查看所有服务器的性能图像的界面。
2.console菜单 Create:
New Graphs——创建新图像的快捷方式; Management:
Graph Management——图像管理。可以在此删除、复制图像,Cacti会自动创建图像。不过如果我们有特殊的需要,比如将几张图上的数据合并在一张图像上的话也可以在此手工新建图像;
Graph Trees——图像树。在graphs界面里,图像或devices是树状结构显示的,可以在此设置树的结构;
Data Sources——管理rrd文件。一般无需修改,Cacti会自己创建rrd文件;
Devices——设备管理。这是我们最经常需要修改的地方,可以在此创建新的设备或修改其名称等信息。 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.创建监测点
假设被监测的服务器名叫“Test Host”,IP为192.168.100.110,SNMP的community为 进入Cacti的console面板-> 点击“Devices”进入设备面板->
public。
点击“Add”添加新设备->
填写要监测服务器的各种信息,其中Host Template请选择“Local Linux Machine”或“ucd/net SNMP Host”(选择一个合适的主机模板)->
点击“Create”保存信息,如果SNMP连接没有问题,左上角会出现该服务器的信息,否则会出现“SNMP error”的红色字样->
点击上部的“Create Graphs for this Host ”为该设备创建需监测的内容。监测的内容分两种,“Graph Templates”和“Data Query”,区别在于“Data Query”能根据SNMP信息列出监测项目的信息。例如Data Query里的“Interface Statistics”可以看到该主机所有网卡的信息,这样我们可以选择需要监测的网卡。点击右侧的正方形选择框勾选上要监测的项目->
点击“Create”创建选择的监测内容,已经选择创建的内容会自动变成灰色并且不能再点选。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”中选择刚才新添加的主机“Test Host”->
点击“Create”。
直接在ViewTree中添加一个host节点进行监控无疑是一个简单的方法,但随监控图的增多,将所有的图像放到一个host节点上,当查看图像时图像的显示速度会变慢,而且监控图的条理也不清除,所以通常可以根据监控图监控的功能和监控服务的类型等进行分类,整理出一棵有条理的图像树。可以按下面步骤添加节点。
首先添加一个root节点,“Tree Item Type”中选择“Header”,“Title”中填写一个合适的描述性信息,如本例填写“Host Monitor”,Host Monitor节点的图像主要是和主机性能相关的一些图像,如CPU、内存、磁盘空间等;
点击刚创建的root节点(Host Monitor)后面的Add链接来添加一个Graph;
在“Tree Item Type”中选择“Graph”,在“graph”中选择加入想要加入的监控图,重复此过程加入所有你想加入的监控图。
你还可以添加Tree Items,如MySQL Monitor,此节点用来监控与MySQL服务相关的信息,重复上面的过程直到一颗有条例的树创建完成。
这样,我们就可以在“graphs”界面中查看“Test Host”的所有监测图像了。
5.为已有host添加新的监控图
在console控制台下点击“New Graphs”,选择要添加监控图的主机。在Graph Templates中选择一个Graph模板,本例选择SNMP - Ceneric OID Template,点击create按钮。
填写以下信息,在“Title”文本框中填写Graph的名字,在“Vertical Lable”文本框中填写描述信息或是所绘图片使用的单位等,显示在所绘图片的左侧,在“name”文本框中填写此数据源的名字,在“LegendColor”中选择画图使用的颜色,在“Legend Text”填写图例的名字,在“OID”文本框中填写要监控的主机的OID信息,点击“create”按钮完成Graph的创建。
完成后监控图如下:
6.合并多个数据源到一张图上
在console控制台下点击“Graph Management”,然后点击Add链接。
在“Select Graph Template”下拉框中选择None,在“Host”下拉框中选择None,然后点击create按钮。
在“Title”文本框中输入Graph的名字。
点击Add链接,添加Graph Items。
添加多个数据源,将所选的多个数据源画到一张监控图上。
完成后将所画的监控图放到Graph Trees中。
如何将数据源的当前值、平均值、最大值画到图例中?请见下面打造自己的cacti模板小节中的新建作图模板。
六、Cacti脚本及模板
Cacti脚本及模板论坛:http://forums.cacti.net/forum-12.html
一个完整的cacti脚本及模板列表:http://forums.cacti.net/about15067.html
Advance Ping 脚本及模板
下载地址:http://forums.cacti.net/about10049.html
注:要使用此模板,编译PHP时必须加上--enable-sockets 选项来支持套接字。 1). 功能:此模板用来监控一个TCP/UDP端口、ICMP的延时情况和丢包情况。 2
)
.
下
载
ss_fping.php
脚
本
并
放
到
/usr/local/apache/htdocs/cacti/scripts/
目
录
下
,
下
载
cacti_graph_template_ping_advanced_ping_v1_3.xml模板,用cacti的模板导入页将此模板导入。
3).在Console选项卡下的左侧菜单栏中选择Devices,为要监控的主机新建一个Devices或选择已有Devices。在Associated Graph Templates中添加Advanced Pingv1.3模板。并点击最上面的Create Graphs for this Host链接,在
Graph Templates的选择框中选择PING - Advanced Ping v1.3,然后点击Create按钮,出现以下WEB页。
第一项意思是一次向要监控的端口发送多少个探测包(默认20个),第二项是使用的协议,可以是ICMP、TCP、UDP,第三项是要监控的端口号(只有第二项为TCP或是UDP时使用),填写完成后点击create按钮。
在Console控制台选项卡下的左侧菜单中选择Date Sources,选择以上新建的数据源可以修改以上填写的信息。
在控制台选项卡下左侧菜单中选择Graph Trees可以组织一个树状视图。
在graphs选项卡下浏览创建的Advanced Ping监控图。
TCP3360端口(MySQL)
TCP80端口(HTTP)
Pkt Loss:丢包数量/20 * 100%(每次ping 20个包) Avg Loss:平均丢包情况 Latency:延时情况 Avg Latency:平均延时情况
MySQL stats模板
论坛讨论:http://forums.cacti.net/about11010.html 下载地址:http://www.faemalia.net/mysqlUtils/
功能:用来监控MySQL状态,其中包括索引使用情况、查询、排序、锁定情况等。
1). 将mysql_stats.php 和 dumpMemcachedStats.php脚本放到cacti脚本目录下(/usr/local/apache/htdocs/cacti/scripts/),导入模板
时
注
意
选
择
cacti_host_template_temysql_host-step300-heartbeat600.xml
和
cacti_host_template_memcached_host-step300-heartbeat600.xml模板
2).配置MySQL服务器,让cacti所在机器能够访问MySQL服务器的状态信息,必须拥有\"process\"权限。如果要监控InnoDB状态,还必须有\"SUPER\"权限。
GRANT PROCESS ON * TO cacti@'cactimachine' IDENTIFIED by 'cacti'; GRANT SUPER ON * TO cacti@'cactimachine' IDENTIFIED BY 'cacti';
3).创建Graph。在Console选项卡下的左侧菜单栏中选择Devices,为要监控的主机新建一个Devices或选择已有Devices。在Associated Graph Templates中添加想要监控MySQL状态的Graph Templates(如teMySQL – Index Usage模板,此套模板是以teMySQL开头的一系列模板)。并点击最上面的Create Graphs for this Host链接,在Graph Templates的选择框中选择teMySQL – Index Usage,然后点击Create按钮,出现以下WEB页。
在上面填写有权限访问MySQL数据库的用户名及密码,然后点击create按钮。 选中刚添加的Graph Templates,点击create按钮来创建Graph。 在控制台选项卡下左侧菜单中选择Graph Trees可以组织一个树状视图。
在graphs选项卡下浏览创建的MySQL监控图。
缩略图:
3.打造自己的cacti模板(Data Template、Graph Template、Host Template)
(1).新建数据模板(Data Template)
在console选项卡下左侧菜单栏中点击Data Templates连接,打开新建数据模板窗口。
在新建数据模板窗口点击Add按钮添加“Data Templates”。
填写以下内容:
1).Name 第一个Name是模板的名称,可自定义设置 ,再此填写“Windows - CPU Usage”; 2).Name 第二个Name是数据源的名字,再此填写“Windows - CPU Usage”; 3).Data Input Method 获取数据的方法,选择“Get SNMP Data”; 4).Internal Data Source Name 数据源值的名称“WindowsCPU”;
5).Minimum和Maximum这两个值如果不填写表示使用数据源的最大和最小值作为图形的上、下限值 ; 6).Data Source Type 选择“COUNTER”;
7).输入OID值,这一步是定义数据源最关键的一个环节,要确认OID真实存在。点击
“save”保存数据源。
回到主界面,可以看到刚刚新建的数据源“Windows - CPU Usage”。
(2).新建作图模板(Graph Template)
在console选项卡下左侧菜单栏中点击Graph Templates连接,打开新建作图模板窗口。
在新建作图模板窗口点击Add按钮添加“Graph Templates”。
填写以下内容:
1).Name 第一个Name是模板的名称,可自定义设置 ,再此填写“Windows - CPU 3).Vertical Lab 显示在所画图片的左侧,通常为作图所用的单位或描述。 点击“create”按钮创建作图模板。
Usage”;
2).Title 画出的图片的标题,其中“|host_description|”相当于一个变量,在作图时自动替换成主机描述。
下面就需要用前面定义的数据源创建我们需要显示的图形了。一个数据源通常需要定义四个数据值,分别是“区域图”、“当前值”、“平均值”和“最大值”,这些值分别显示了系统不同时段的状态。点击Add添加“Graph template Items”。
填写以下内容:
1).Data Source 选择定义的数据源模板;
2).Color 只有“Graph Item Type”图形类型选择的是AREA, STACK, LINE1, LINE2, LINE3其中之一,才能够为数据源选择颜色; 3).Graph Item Type 定义图形的项类型,因为是首个图形项,所以要选择“AREA”; 4).Text Format 定义一个显示名称; 其它的数值保持默认,点击“create”。
点击Add继续添加“Graph template Items”。
添加当前运行值,填写以下内容:
1).Data Source 选择“Windows - CPU Usage - (WindowsCPU)”
2).Graph Item Type 选择“GPRINT”图形项类型,只有这个类型才能定义当前、平均和最大值。 3).Consolidation Function 选择“LAST”,表示当前运行的值 4).Text Format 定义图表中显示的名称
添加平均值,只需修改“Consolidation Function”和“Text Format”的内容即可。
添加最大值,也是修改“Consolidation Function”和“Text Format”的内容,勾选“Insert Hard Return”前面的复选框,表示插入一个硬回车,这是为了和其它新创建 的图例不要重叠显示在一行上。
如果要添加其他数据源可按上面的方法依次添加,这样可以将多个数据源的数据画到一 下面是一个四CPU作图模板的截图:
张图上。
点击“save”按钮回到主界面,完成作图模板的创建。
使用刚创建的作图模板,在Devices中选择要使用此模板的主机。在Add Graph Template --Windows - CPU usage,然后点击添加按钮。
下拉框中选择刚才创建的作图模板
点击最上边的Create Graphs for this Host 连接。选中Windows - CPU usage作图模板,点击“create”按钮为主机创建监控图。
(3).创建主机模板(Host template)
在console选项卡下左侧菜单栏中点击Host Templates连接,打开新建主机模板窗口。
在新建主机模板窗口点击Add按钮添加“Host Templates”。
填写Host Templates名称,然后点击create按钮新建Host Templates。
在“Associated Graph templates”下添加你想要添加到此主机模板下的作图模板,在 添加到此主机模板下的Data Query模板。
“Associated Data Queries”下添加你想要
点击“save”按钮完成主机模板的创建。
应用此主机模板,在Devices中新建主机,在Host template下拉框中选择刚刚创建的主机模板--Windows 2000 Server。点击“create”按钮来新建主机。
点击最上边的Create Graphs for this Host 连接。选中想要的作图模板,点击“create”
按钮为主机创建监控图。
将新建的监控图添加到Graph Trees节点上,先在Graph Trees创建一个节点,然后在Graph Management中选中想要添加到此节点的监控图,在Choose an action下拉框中选择Place on a Tree(此节点的根节点),点击go按钮。
选择想要将监控图添加到的节点。
点击“yes”按钮完成添加。
在Graph Trees察看添加过来的监控图,并可以调整监控图的显示位置。
七、Cacti插件
Cacti插件是对cacti的扩展。
要使用cacti插件必须先扩展cacti架构,来支持插件。 安装cacti插件架构扩展
下载地址:http://cactiusers.org/downloads/patches/ 当前版本是V1.1,是专门针对cacti V0.8.6设计的。 1).解压下载的tar包,你会得到一个cacti-plugin-arch目录 # tar –zxvf cacti-plugin-arch.tar.gz # cd cacti-plugin-arch # ls
2).有两中方法来安装cacti的插件架构扩展,第一种方法是使用patch文件,patch文件包含了原始文件与修改后文件的不同之处,所以可以使用patch文件来得到新的文件。第二种方法是使用pre-patched文件进行直接覆盖,将与cacti相对应版本的files-0.8.6*目录下的文件直接拷贝到cacti目录下进行覆盖。在此选择使用patch文件进行安装(这也是官网推荐的方法)。将与cacti相应版本的cacti-pligin-0.8.6*.diff文件拷贝到cacti目录下,然后使用patch命令进行安装。 # cp cacti-plugin-0.8.6j.diff /usr/local/apache/htdocs/cacti //备份cacti目录,以备插件扩展安装失败后能恢复到原状态 # cd /usr/local/apache/htdocs # cp –r cacti ./cacti.bak # cd ./cacti
//首先使用以下命令进行测试
# patch -p1 -N --dry-run < cacti-plugin-0.8.6j.diff //以上命令成功后,使用以下命令进行安装 # patch -p1 -N < cacti-plugin-0.8.6j.diff
3).安装后配置,首先查看你的cacti配置文件,看cacti相关的数据库信息是否被覆盖,如果被覆盖请直接从备份中拷贝一份到配置文件目录。
# cp ../include/config.php ./include/config.php 打开cacti配置文件,找到以下选项 $config['url_path'] = \"/\";
如过你的cacti能够在浏览器中使用以下方法直接访问,则不用修改cacti配置文件。 http://www.youdomain.com 或 http://cacti机器ip
如果cacti在浏览器中使用以下方法直接访问, http://www.youdomain.com/cacti 或 http://cacti机器ip/cacti 注意前后的/不能丢。
到此cacti插件结构的扩展完成,现在可以下载并安装你需要的cacti插件了。
则$config['url_path'] = \"/\";必须被修改为$config['url_path'] = \"/cacti/\";
安装插件
插件的安装、升级、移除是很容易的,在安装插件前你必须以确保安装了cacti插件结构扩展。 1).下载插件,在此以Monitor插件为例。 可。
3).激活monitor插件,修改cacti配置文件(cacti目录下的include/config.php)。在配置中查找$plugins = array();行,在此行下面加入:
$plugins[] = 'monitor';
注意:上面monitor的名字必须与cacti/plugins/目录下插件目录的名字相同。 4).有些插件需要进行额外的配置,请根据插件的安装文档进行配置,在此略述。 5).移除插件时只要修改cacti配置文件,注释掉与插件相关的行即可。 如:
//$plugins[] = 'monitor';
6).在console选项卡下,点击左侧菜单中的Settings链接,在右侧出现的web页中点击Misc选项卡来配置Monitor插件。
Monitor插件下载地址:http://cactiusers.org/downloads/ 解压下载的tar包。 # tar -zvcf monitor-0.7.tar.gz
解压后你会得到一个monitor目录。
2).安装Monitor,只需要将monitor目录拷贝到cacti/plugins/目录下即可。如果是升级安装,只需要完全覆盖原monitor目录即
以下所看到的是Monitor选项卡下所监控的机器状态。当有机器Down掉后,相应机器图标将由绿色变成红色,并发出声音进行报警。
安装Threshold插件
v0.3.5.1版下载地址:http://download.cactiusers.org/downloads/thold.gzip
v0.3.5.1版为当前最新版本,此版本在cacti V0.8.6j上安装时有问题,提示一些函数找不到,所以在此使用v0.3.4版。 v0.34版下载地址:http://cactiusers.net/downloads/plugins/thold-0.3.4.tar.gz
1). 安装Threshold插件,只需将解压出来的Thold目录拷贝到cacti/plugins/目录下,并修改cacti配置文件(cacti目录下的include/config.php)。在配置中查找$plugins = array();行,在此行下面加入: $plugins[] = 'thold';
刷新cacti首页,你将看到多出来一个Threshld选项卡。 下图是添加Threshold插件和Monitor插件后的cacti界面:
选中console选项卡,在左侧菜单中点击Settings,然后点击Alerting/Thold选项卡,来设置Threshold插件。
设置完成后在console选项卡下左侧菜单中点击Threshold Templates 。
点击Add按钮来添加一个Threshold模板。
在此,以添加一个监控硬盘空间的Threshold模板为例。
在Data Field下拉框中选择hdd_free,然后点击go按钮。
填写以下信息,在Low Threshold文本框中填入1000,意思是当剩余的硬盘空间小于1000M时,发送邮件报警。在Threshold CDEF下拉框选择Divide by 1024,填入警报邮箱,完成Threshold模板的添加。
应用刚才创建的Threshold模板。在console选项卡下点击Devices,选择要应用此模板的Host,点击最上面的Create Graphs for this Host链接,然后点击Auto-create thresholds链接来应用刚创建的Threshold模板。
设置完成后在console选项卡下左侧菜单中点击Thresholds 。
在此可以管理已创建的警报。
点击threshld选项卡可以查看警报的触发情况。
其它插件
其它插件可到http://cactiusers.org/downloads/自行下载安装,在此只略述一二。
1).Discovery:This plugin adds the ability to auto-discover devices on a subnet that are not monitored by Cacti and and tells you if they are SNMP enabled.
2). Flowviewer:A simple viewer for viewing reports based on data from flows created by Netflow. 3).Settings:This plugin houses common settings and functions used by different plugins.
4).Network Weathermap:这是一个比较复杂的cacti插件,他需要GD库的支持,可以参照cacti的安装小节来支持GD库。使用它可以画出漂亮的网络状况图。
官网说明:http://www.network-weathermap.com/node/79 下载地址:http://www.network-weathermap.com/download 安装方法:
http://www.network-weathermap.com/manual/0.92/pages/install-cacti-editor.html 八、参考
Cacti官网:http://www.cacti.net/index.php Cacti官网论坛:http://forums.cacti.net/ Cacti文档:http://docs.cacti.net/
Cacti插件:http://cactiusers.org/index.php
Network Weathermap:http://www.network-weathermap.com/ RRDTool官网:http://oss.oetiker.ch/rrdtool/ NET-SNMP官方网站:http://www.net-snmp.org/ Apache官网:http://httpd.apache.org/ MySQL官网:http://www.mysql.com/ PHP官网:http://www.php.net/
因篇幅问题不能全部显示,请点此查看更多更全内容