第四部分: 编译 安装 rrdtool 及安装配置 snmp

编译 安装 rrdtools

# tar zxvf rrdtool-1.2.27.tar .gz

# cd rrdtool-1.2.27

# ./configure --prefix=/usr/local/rrdtool

# make && make install

注意: rrdtools 编译的时候,貌似挺容易出错的,可我装了两次也没遇到!等遇到时再总结吧 ~~~ 呵呵,网上的解决方法也挺多,但遇不到错误我也没办法去验证,愁: (

      安装 SNMP

# rpm -qa|grep net-snmp    // 看系 否已 装有所需的

下安装 snmp 所需的 rpm 安装包在 RedHat EL5.3 安装光 都有

net-snmp-libs-5.3.2.2-5.el5.i386

net-snmp-5.3.2.2-5.el5.i386

net-snmp-devel-5.3.2.2-5.el5.i386

net-snmp-utils-5.3.2.2-5.el5.i386

# rpm -ivh net-snmp-*   // 这时安装应该会失败

这四个都要安装上才可以,安装时会因为 rpm 的依存 系安装 失败,解决方法:我是把依存的 rpm 全都给装上了 ; 当然也可以 使用 —nodeps 参数 强制安装(这种方法我暂时没试过,不知是否会有后遗症)

存在依存关系的 rpm 包如下:

elfutils-devel-0.137-3.el5.i386

elfutils-devel-static-0.137-3.el5.i386

beecrypt-4.1.2-10.1.1.i386

beecrypt-devel-4.1.2-10.1.1.i386

# rpm -ivh elfutils-devel-*

# rpm -ivh beecrypt-*

# rpm -ivh net-snmp-5.3.2.2-5.el5.i386.rpm

# rpm -ivh net-snmp-devel-5.3.2.2-5.el5.i386.rpm

# rpm -ivh net-snmp-utils-5.3.2.2-5.el5.i386.rpm

大概安装方法就是这样,安装过的包就不用再装了!上次在 redhat EL5 安装时还装了 lm_sensors 这个 rpm 的包。这次 EL5.3 上貌似有了,所以没要求装。反正宗旨就是差哪装哪,嘿嘿 ~~~~

配置 SNMP

#vi /etc/snmp/snmpd.conf

com2sec notConfigUser default public

com2sec notConfigUser 127.0.0.1 public

access notConfigGroup "" any noauth exact systemview none none

access notConfigGroup "" any noauth exact all none none

#view         all        included            .1         80

将前面的 # 去掉。

保存退出 :wq

4. 重新启 snmp

# service snmpd restart
第五部分: 安装/配置cacti

# tar zxvf cacti-0.8.7e.tar.gz

# mv cacti-0.8.7e /usr/local/apache22/htdocs/cacti

# chown -R root:root /usr/local/apache22/htdocs/cacti

Mysql 建新的 database cacti cacti.sq 创建表:

# /usr/local/mysql/bin/mysql –u root –p

Enter Password:rootpw                   // 安装 mysql 时设置的密码,默认为空

mysql> create database cacti;

mysql> use cacti;

mysql> source /usr/local/apache22/htdocs/cacti/cacti.sql;

数据库 户权

grant all on cacti.* to root;

grant all on cacti.* to root@localhost;

grant all on cacti.* to cactiuser;

grant all on cacti.* to cactiuser@localhost;

set password for cactiuser@localhost=password('cactipw');

编辑 cacti 的数据 配置文件 ,与上一步中的用户对应

# vi /usr/local/apache22/htdocs/cacti/include/config.php

$database_type=“mysql”;

$database_default=“ cacti ”;

$database_hostname=“localhost”;

$database_username=“ cactiuser ”;

$database_password=“ cactipw ”;

开浏览 http://IP地址/cacti
这里可能出现的 error 信息如下: You have created a new database, but have not yet imported the 'cacti.sql

解决方法:出现这个错误是因为数据库用户的权限问题。如果按照我上面的用户创建及设置应该是不会出现这个 error 的。如果把 $database_hostname 换成 IP ,就会出现这个错误。当然如果给这个 IP 地址 grant 给用户权限后,就不会出错了!

例如: grant all on cactidb.* to cactiuser@ip; grant all on cactidb.* to root@ip;

注:以下几步,根据 Cacti 的版本不同,先后顺序会稍有不同,但大致内容都是一样的。

如果不出错误的话,应该就进入了 Cacti Installation Guide 画面,点击 Next>> ,进入下一页 ; 这个画面可以选择是初次安装 Cacti ,还是升级安装 Cacti ,同时提醒核对数据库连接信息,点击 Next>> ,继续 ; 打开 snmp php rrdtool 等工具的路径设置画面,按照你的安装路径全部填上就行了。设置完成后,登录到 cacti 控制台画面,选择左侧菜单的 settings->paths ,可以修改设置。 的配置中会出 现许 “NotFound” , 一定要全部填写正确!不然会影响画图。各个路径根据自己的安装路径填写,找不着的可以试着用 whereis find 之类的命令检索一下。

RRDTool Binary Path /usr/local/rrdtool/bin/rrdtool

PHP Binary Path /usr/local/php/bin/php

s nmpwalk Binary Path /usr/bin/snmpwalk

snmpget Binary Path /usr/bin/snmpget

snm pbulkwalk Binary Path /usr/bin/snmpbulkwalk

snm pgetnext Binary Path /usr/bin/snmpgetnext

CactiLogFilePath /usr/local/apache22/htdocs/cacti/log/cacti.log

CactidPollerFilePath /usr/local/apache22/htdocs/cacti/poller.php

RRDTool Default Font Path /usr/local/rrdtool/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf

SNMP Utility Version 选择 NET-SNMP 5.x

点击 Finish 结束配置,进入登录画面。

首次 陆默认账 号: admin admin

系统会强制 立即修改密

生成统计图像:

运行一 poller.php ,生成初始图像文件:

# /usr/local/php/bin/php /usr/local/apache22/htdocs/cacti/poller.php > /dev/null 2>&1

查看图像文件是否生成:

# ls /usr/local/apache22/htdocs/cacti/rra

这里我看网上很多朋友都遇到图像未生成或看不到图像的问题了,我第一次安装时也遇到了,查了好多资料,最后归根结底其实都是 SNMP 的配置问题!按照我上面的安装方法,安装完成之后,使用如下命令测试一下,如果没报错,说明 SNMP 就是没问题的!应该可以出现图像的:

# snmpwalk -v 1 127.0.0.1 -c public

正常会显示信息类似如下:

(略) HOST-RESOURCES-MIB::hrSWRunPerfCPU.2436 = INTEGER: 8 (略)

如果还是看不到图像的话,可以到 cacti 的控制台里,打开 Data Sources -> 随便点一个例如 Localhost – Processes, 然后点击右上角的 Turn on Data Source Debug Mode ,下面会有一些提示信息。或者看一下 /usr/local/apache22/htdocs/cacti/log/cacti.log 文件。一定会找到原因的。或者问我也可以!哈哈 ~~~~

添加自动执行:

# crontab –e

*/1 * * * *        /usr/local/php/bin/php /usr/local/apache22/htdocs/cacti/poller.php > /dev/null 2>&1

这样,每过 1 分钟就会自动更新一次图像统计信息。

打开 cacti 控制台, graphs localhost 就可以 看到本机的 CPU 、内存 等的 统计信息图了

这里需要注意一下, cacti 的版本不同, settings 里的设定项也不太一样!我也是因为装了两次,用的不同版本才发现的!改动还满大的 ~ 哈哈,实在懒得去看版本更新日志,就直接进系统比较了 ~~~ 还有好多不一样的地方,大家一起去发现吧:)

小提示:注意整个安装过程中的权限相关的问题,主要涉及就如下几个:本次安装时我没用创建新用户单独给 cacti 使用,而是直接用的 root 。如果用别的用户,需要把 /usr/local/apache22/htdocs/cacti 的目录权限及自动执行 poller.php 的用户更改。还有就是 mysql 的用户问题,注意 /usr/local/mysql/data 文件夹及其子目录的权限问题,偶尔会出错。