安装cacti构建流量与性能监测系统
实验环境:rhel5-4平台(本实验被监测端与监测端都在一个服务器上)
实验目的:使用Cacti套件构建服务器性能监测系统
相关软件包:
Cacti-0.8.7b-cn-utf8.tar.gz(汉化版)
一、配置被监测端(snmpd)
在被监测的linux服务器主机中,安装好net-snmp软件包,并配置启动snmpd服务,以便允许Cacti系统采集数据。
1、 安装net-snmp软件包
net-snmp软件需要用到lm_sensors提供的硬件监视模块,安装时直接使用RHEL5系统光盘中的rpm包文件。依次安装lm_sensors、net-snmp两个软件包即可。
[root@localhost ~]# mount /dev/cdrom /media [root@localhost ~]# cd /media/cdrom/Server [root@localhost Server]# rpm –ivh lm_sensors-2.10.0-3.1.i386.rpm [root@localhost Server]# rpm -ivh net-snmp-5.3.1-14.el5.i386.rpm 或用yum安装 [root@localhost ~]# yum –y install *net-snmp* |
2、 配置及启动snmpd服务
1) 修改/etc/snmp/snmpd.conf文件
依次查找修改41、62、85行,以设置SNMP访问权限。原文件中对应行的内如如下
41 com2sec notConfigUser default public 62 access notConfigGroup “” any noauth exact systemview none none 85 #view all included .1 80 |
修改后变为如下:
41 com2sec notConfigUser 192.168.1.112 publicvr 62 access notConfigGroup “” any noauth exact all none none 85 view all included .1 80 |
以上过程中,依次修改如下:
Ø 第41行,将“default”修改为Cacti监测服务器的IP地址(192.168.4.4),将“public”修改为共享SNMP信息的组识别子串(如“publicsvr”,作用类似于密码)。
Ø 第62行,将“SystemView”修改为“all”或者“read”,提供访问权限。
Ø 第85行,去掉开头的注释符号。
2)启动snmpd服务并设置为开机启动
[root@localhost ~]# /etc/init.d/snmpd restart [root@localhost ~]# chkconfig --level 35 snmpd on |
3)调整防火墙策略,允许从监测系统(如192.168.4.4)中访问本机的snmpd服务(如果无防火墙则跳过此步)。
[root@localhost ~]# iptables –I INPUT –s 192.168.1.112 –p udp –dport 161 –j ACCEPT [root@localhost ~]# iptables –I OUTPUT –d 192.168.1.112 –p udp –dport 161 –j ACCEPT |
二、配置监测服务端(Cacti)
Cacti监测服务端需要有Apache、MySQL、PHP网站平台的支持,且需要预先安装有gd、zlib等软件包,如果没有安装,请使用RHEL5系统光盘中的rpm包安装即可。
1、安装支持软件
1)安装数据库及Web平台。
这里采用RHEL5系统自带的rpm包安装httpd、mysql、php 等相关软件,以节省时间。所需安装的主要软件包如下(存在依赖关机的软件包需一并安装)。
[root@localhost Server]# rpm –ivh httpd-2.2.3-6.el5 mysql-5.0.22-2.1 mysql-server-5.0.22-2.1 mysql-connector-odbc-3.51.12-2.2 php-5.1.6-5.el5 php-mysql-5.1.6-5.el5 php-common-5.1.6-5.el5 php-pdo-5.1.6-5.el5
|
或者使用yum安装
[root@localhost ~]# yum –y insatll http* [root@localhost ~]# yum –y install mysql* [root@localhost ~]# yum –y install php* |
启动已安装好的httpd、mysqld、服务,并设置为每次开机随系统自动运行。
[root@localhost ~]# /etc/init.d/httpd restart [root@localhost ~]# /etc/init.d/mysqld restart [root@localhost ~]# chkconfig httpd on [root@localhost ~]# chkconfig mysqld on |
2)安装net-snmp-utils软件包
Net-snmp-utils软件包用于提供snmpget、snmpwalk等SNMP数据采集命令,由于软件包之间存在依赖关系,需要依次安装lm_sensors、net-snmp、net-snmp-utils三个软件包。
3) 安装rrdtool软件包
这里使用1.3.8版本的rrdtool源码包。
[root@localhost data]# tar zxf rrdtool-1.3.8.tar.gz -C /usr/src/ [root@localhost data]# cd /usr/src/rrdtool-1.3.8/ [root@localhost rrdtool-1.3.8]# ./configure --prefix=/usr/local/ [root@localhost rrdtool-1.3.8]# make [root@localhost rrdtool-1.3.8]# make install |
如出现以下错误,解决错误后重新编译
编译rrdtool报错:
checking for intltool >= 0.35.0... 0.31.2 found configure: error: Your intltool is too old. You need intltool 0.35.0 or later.
|
解决办法如下:
[root@localhost rrdtool-1.3.8]# cd /data [root@localhost data]# wget http://ftp.gnome.org/pub/gnome/sources/intltool/0.40/intltool-0.40.6.tar.gz [root@localhost data]# tar zxvf intltool-0.40.6.tar.gz [root@localhost intltool-0.40.6]# make install |
编译intltool报错:
checking for XML::Parser... configure: error: XML::Parser perl module is required for intltool |
解决办法如下:
[root@localhost intltool-0.40.6]# yum –y install perl-XML-Parser |
重新编译
[root@localhost intltool-0.40.6]# ./configure --prefix [root@localhost intltool-0.40.6]# make [root@localhost intltool-0.40.6]# makeinstall [root@localhost intltool-0.40.6]# cd /usr/src/ intltool-0.40.6 [root@localhost rrdtool-1.2.6]#./configure –prefix=/usr/local/ [root@localhost rrdtool-1.2.6]# make [root@localhost rrdtool-1.2.6]# make install |
编译rrdtool报错:
configure: error: Please fix the library issues listed above and try again. |
解决办法如下:
确保安装了这些库zlib libpng freetype libart_lgpl
验证如下
[root@localhost rrdtool-1.2.6]# rpm -qa |grep zlib zlib-1.2.3-3 zlib-devel-1.2.3-3 [root@localhost rrdtool-1.2.6]# rpm -qa |grep libpng libpng-devel-1.2.10-7 libpng-1.2.10-7 [root@localhost rrdtool-1.2.6]# rpm -qa |grep freetype freetype-2.2.1-16.el5 freetype-devel-2.2.1-16.el5 [root@localhost rrdtool-1.2.6]# rpm -qa |grep libart_lgpl libart_lgpl-2.3.17-4 libart_lgpl-devel-2.3.17-4 [root@localhost rrdtool-1.3.8]# rpm -qa | grep pango pango-1.14.9-6.el5 pango-devel-1.14.9-6.el5 |
安�brrdtool�r必�要安�bcgilib�@����,以下是安�b方法
[root@localhost rrdtool-1.2.6]# cd /data [root@localhost data]#wget http://www.scriptroute.org/source/cgilib-0.5.tar.gz [root@localhost data]# tar –zxf cgilib-0.5.tar.gz [root@localhost data]# cd cgilib-0.5 [root@ localhost cgilib-0.5]# make cc -I. -Wall -O2 -g -c -o cgi.o cgi.c cc -I. -Wall -O2 -g -c -o cookies.o cookies.c ar rc libcgi.a cgi.o cookies.o [root@ localhost cgilib-0.5]# cp cgi.h /usr/local/lib |
然后是根据错误提示查找了那些函数库:
CPPFLAGS= -I/usr/include/cairo -I/usr/include/libpng12 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/libxml2 |
发现没有/usr/include/libxml2这个目录,于是下载了libxml2-2.6.32.tar.gz来安装,以上函数库都可以在这里下载:http://oss.oetiker.ch/rrdtool/pub/libs/。
安装步骤就是:
[root@ localhost cgilib-0.5]# cd /data [root@ localhost data]# wget http://oss.oetiker.ch/rrdtool/pub/libs/libxml2-2.6.32.tar.gz [root@ localhost data]# tar -zxf libxml2-2.6.32.tar.gz [root@ localhost data]# cd libxml2-2.6.32 [root@ localhost libxml2-2.6.32]# ./configure [root@ localhost libxml2-2.6.32]#make [root@ localhost libxml2-2.6.32]#make install |
由于是源代码安装,并没有安装到/usr/include/libxml2.所以需要链接过去。
[root@ localhost libxml2-2.6.32]# ln -s /usr/local/include/libxml2/ /usr/include/libxml2 |
然后再在重新编译rrdtool即可。
[root@localhost libxml2-2.6.32]# cd /usr/src/rrdtool-1.3.8/ [root@localhost rrdtool-1.3.8]# ./configure --prefix=/usr/local/ [root@localhost rrdtool-1.3.8]# make [root@localhost rrdtool-1.3.8]# make install |
2、安装配置Cacti服务器套件
1) 安装Cacti软件包
将下载的Cacti文件包(保存在/data目录)解压至Web服务器的网页目录,并添加
用于读写监测数据的用户。
[root@localhost rrdtool-1.3.8]# cd /var/www/html/ [root@localhost html]# tar -zxf /data/cacti-0.8.7b-cn-utf8.tar.gz [root@localhost html]# mv cacti-0.8.7b-cn-utf8 cacti [root@localhost html]# useradd cactiuser [root@localhost html]# chown -R cactiuser:cactiuser cacti/rra cacti/log |
2) 设置监测数据库
建立保存监测数据的数据库、表,设置好授权访问数据库的用户和密码。
[root@localhost html]# mysql -u root –p mysql> CREATE DATABASE cactidb DEFAULT CHARACTER SET utf8;创建数据库并设置默认字符集 mysql> GRANT all ON cactidb.* TO cactiuser@localhost IDENTIFIED BY 'pwd@123'; [root@localhost html]# mysql -u cactiuser -p cactidb < cacti/cacti.sql //导入数据表 |
基于安全考虑,建议为MySQL数据库的root用户设置一个相对复杂的密码,而不要使用默认的空密码。以下mysql语句可将数据库用户root的密码修改为”pwd@secret”。
[root@localhost html]# mysqladmin -u root -p password 'pwd@secret' Enter password: 提示输入密码,因为root现在为空密码,所以回车就行 |
3) 调整Cacti配置文件
修改include/config.php配置文件,设置正确的数据库连接参数。
[root@localhost html]# cd cacti/ [root@localhost cacti]# vim include/config.php <?php $database_type = "mysql"; 数据库类型 $database_default = "cactidb"; 要访问的数据库名 $database_hostname = "localhost"; 数据库服务器的地址(主机名或ip) $database_username = "cactiuser"; 授权访问数据的用户 $database_password = "pwd@123"; 授权密码 $database_port = "3306"; 数据库服务的端口 $config['url_path'] = "/"; 手动添加 ?> |
最后的“$config['url_path'] = "/";”行用于指定Cacti目录相对于网站根目录的位置,如果Cacti目录就是网站的根目录,则该行内容也可以省略;否则需要正确指定实际位置,如$config['url_path'] = "/cacti";
3、 调整httpd设置并重新启动服务
修改httpd.conf文件,以便支持自动查找索引页index.php,并将utf-8作为默认的中文页面字符集。注意要开放Web用户对Cacti目录的访问权限。
[root@localhost cacti]# vim /etc/httpd/conf/httpd.conf NameVirtualHost *:80 去掉#号 <VirtualHost *:80> DocumentRoot /var/www/html/cacti ServerName www.cacti.com </VirtualHost> DirectoryIndex index.php index.html AddDefaultCharset UTF-8 |