关闭

CentOS 安装Cacti

849人阅读 评论(0) 收藏 举报

安装环境:
1.系统:Centos 5.1
2.软件包需求:cacti-0.8.7j,mysql-5.0.20,php-5.2.6,apache2.2(以上均为源码包).
安装配置过程:
1. 安装apache2.2
解压软件包,进入安装目录,我的编译过程如下:
安装apr和apr-util
cd httpd-2.2.17/srclib/apr
./configure --prefix=/usr/local/apr
make && make install
apr-util安装
cd ../apr-util

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
apache安装
./configure --prefix=/usr/local/apache --enable-so --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/bin --enable-mods-shared=all --with-mpm=worker --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache
# make
# make install
Apache编译参数注解
./configure   //配置源代码树
--prefix=/usr/local/apache   //体系无关文件的顶级安装目录PREFIX ,也就Apache的安装目录。
--enable-module=so   //打开 so 模块,so 模块是用来提 DSO 支持的 apache 核心模块
--enable-deflate=shared   //支持网页压缩
--enable-expires=shared   //支持 HTTP 控制
--enable-rewrite=shared   //支持 URL 重写
--enable-cache  //支持缓存
--enable-file-cache  //支持文件缓存
--enable-mem-cache  //支持记忆缓存
--enable-disk-cache  //支持磁盘缓存
--enable-static-support   //支持静态连接(默认为动态连接)
--enable-static-htpasswd   //使用静态连接编译 htpasswd - 管理用于基本认证的用户文件
--enable-static-htdigest   //使用静态连接编译 htdigest - 管理用于摘要认证的用户文件
--enable-static-rotatelogs   //使用静态连接编译 rotatelogs - 滚动 Apache 日志的管道日志程序
--enable-static-logresolve   //使用静态连接编译 logresolve - 解析 Apache 日志中的IP地址为主机名
--enable-static-htdbm   //使用静态连接编译 htdbm - 操作 DBM 密码数据库
--enable-static-ab   //使用静态连接编译 ab - Apache HTTP 服务器性能测试工具
--enable-static-checkgid   //使用静态连接编译 checkgid
--disable-cgid   //禁止用一个外部 CGI 守护进程执行CGI脚本
--disable-cgi   //禁止编译 CGI 版本的 PHP
--disable-userdir   //禁止用户从自己的主目录中提供页面
--with-mpm=worker // 让apache以worker方式运行
--enable-rewrite //让apache支持伪静态规则
--enable-deflate //开启gzip压缩
--enable-authn-dbm=shared // 对动态数据库进行操作。Rewrite时需要
--enable-mods-shared=all 做大化编译

安装完成后,编辑apache的配置文件,使之能正常使用:
# vi /usr/local/apache/conf/httpd.conf
找到下面这行:
#ServerName
[url]www.example.com:80[/url]
改为:
ServerName yourIP:80
#Listen 80
Listen yourIP:80
启动apache:
#/usr/local/apache/bin/apachectl start
在浏览器里输入你的IP或者localhost测试一下,是否能看到apache的测试页,成功的话,说明安
装成功
#cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
vi /etc/rc.d/rc.local
#apache start
/usr/local/apache/bin/apachectl start  ---添加apache自启动
这样就可以实现service httpd restart 了
2.安装mysql-5.0.20
解压软件包,进入安装目录,我的编译过程如下:
# ./configure --prefix=/usr/local/mysql
# make;make install
# cp support-files/my-medium.cnf /etc/my.cnf (这一步是将配置文件拷贝到/etc下面)
编译选项当中指定安装路径就可以了
配置mysql过程:
#groupadd mysql
#useradd -g mysql mysql
#cd /usr/local/mysql
#./bin/mysql_install_db --user=mysql
#chown -R root .
#chown -R mysql var
#chgrp -R mysql .
启动mysql
#./bin/mysqld_safe --user=mysql &
如果看到下面的信息,就说明启动成功了
# Starting mysqld daemon with databases from /usr/local/mysql/var
可以测试一下,看看能不能登陆mysql数据库
# /usr/local/mysql/bin/mysqladmin -uroot password '你的密码' (给初始登陆mysql的用户
root设置密码,当
然不设置也能登陆,推荐设置密码)
# /usr/local/mysql/bin/mysql -uroot -p你的密码  (注意: -p后面不要带空格)
如果出现下面的欢迎字样,说明连接成功:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9 to server version: 5.0.20a-log
mysql> set password for
root@localhost=password('cactipw');
mysql> Query OK, 0 rows affected (0.00 sec)
mysql> create database cactidb;
mysql> grant all on cactidb.* to root;
mysql> grant all on cactidb.* to
root@localhost;
mysql> grant all on cactidb.* to cactiuser;
mysql> grant all on cactidb.* to
cactiuser@localhost;
mysql> set password for
cactiuser@localhost=password('cactipw');
mysql> flush privileges; (See cacti docs/INSTALL)
mysql> exit
//select * from user;
//查询帐号是否添加成功
3.安装php-5.2.0
解压软件包,进入安装目录,我的编译过程如下:
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-xml-config=/usr/local/lib --with-config-file-
path=/usr/local/php/etc --enable-socket 
#make;make install
编译选项中--with-apxs2=/usr/local/apache/bin/apxs 是说将PHP模块编译进apache,--
with-
mysql=/usr/local/mysql  是说指定mysql的路径(其实就是告诉PHP我们的mysql的一些头文件
信息,如果你的
mysql和PHP不是同一台机器的话,指定mysql的头信息是编译必要的),--with-config-file-
path=/usr/local/php/etc 是说将PHP的主配置文件放在什么地方,这是个人习惯
#cp php.ini-dist /usr/local/php/lib/php.ini
#vi /usr/local/apache/conf/httpd.conf
找到下面字段:
DirectoryIndex
在iindex.html前面添加index.php
并在配置文件最后加入如下字段:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
测试PHP是否正常运行:
#vi /usr/local/apache2/htdocs/index.php
写入下面一行:
保存退出后重新启动apache
#/etc/init.d/httpd start
在浏览器里输入IP,如果能够看到phpinfo的测试页,那么PHP已经正常工作了
4,安装rrdtool
tar zxvf rrdtool-1.0.50.tar.gz
cd rrdtool-1.0.50
./configure --prefix=/usr/local/rrdtool
make
make install
5, net-snmp 安装
rpm -qa | grep net-snmp
net-snmp-*
net-snmp-*
net-snmp-*
编辑本地snmpd:
vi /etc/snmp/snmpd.conf
更改 1、com2sec notConfigUser  default      public
      改为:com2sec notConfigUser (你想监控的那台机器的IP)      public
      2、access  notConfigGroup ""      any      noauth    exact  systemview  none
none
      改为:access  notConfigGroup ""      any      noauth    exact  all  none 
none
      3、#view all    included  .1        80
      将前面的 # 注释 去掉。
保存退出 :wq
service snmpd restart
注:如果你机器内没有snmpwalk和snmpge命令,请到安装盘里查找 net-snmp-utils 包,rpm
-ivh net-snmp-utils-*.rpm 只后这两个命令就在系统里了。其他包也都在安装盘里 确保安装
这四个包就OK
6,解压cacti的软件包,进行如下操作:
#mv cacti-0.8.7  /usr/local/apache/htdocs/cacti
#cd /usr/local/apache/htdocs/cacti
useradd cactiuser
passwd cactiuser (pwd:cactipw)
/usr/local/mysql/bin/mysql –u root –p cactidb 导入数据表
chown –R cactiuser rra/ log/
vi include/config.php
  $database_type = “mysql”;
  $database_default = “cactidb”;
  $database_hostname = “localhost”;
  $database_username = “cactiuser”;
  $database_password = “cactipw”;
7,修改计划任务,使CACTI每5分钟获得一次数据:
#crontab -e -u 用户名
添加如下内容:
*/5 * * * * /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php >
/dev/null 2>&1
保存退出
#chown -R rra/ log/。
8,cacti 配置
[url]http://localhost/cacti[/url]
默认账号密码都是admin
配置路径:
snmpwalk Binary Path : /usr/bin/snmpwalk
snmpget Binary Path: /usr/bin/snmpget
RRDTool Binary Path: /usr/local/rrdtool/bin/rrdtool
PHP Binary Path: /usr/local/php/bin/php
Cacti Log File Path: /opt/cacti/log/cacti.log
Cactid Poller File Path: /opt/cacti/poller.php

9,排错
1. 首先检查一下rra/下面,有没有数据,如果没有检查rra/ log/的拥有者是不是cactiuser
2. snmpwalk -v 2c -c public ServerIP if 用来测试被控对象(serverIP)是否开启了SNMP服

3. snmpwalk -v 2c ServerIP -c public .1.3.6.1.4.1.2021.10.1.3 查看被控端是否有CPU负
载的数据返回
4. /usr/local/bin/php /home/wwwroot/cacti/poller.php 用来测试PHP是否可以采集到数据
。如果上面的都正确,但这步出错,很有可能是PHP配置的问题,或开启了SuLinux。
5. 如果按第2步snmpwalk能采集到数据,但第3步无法采集,可能是PHP设置的问题,修改
PHP.ini,很有可能是PHP权限问题。如果第4步正常而无法显示图,则可能是rra/ log/ 的
Owner不对
6. #crontab -e
*/5 * * * * /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1
      //每5分钟自动执行一次数据
注意:如果执行没成功是模式没有执行
 
或者运行一下该命令看rra文件夹是否有数据
# /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php
查询模式crond的
[root@localhost bin]# chkconfig --list| grep cron
anacron         0:off   1:off   2:on    3:off   4:on    5:on    6:off
crond           0:off   1:off   2:on    3:off   4:on    5:on    6:off
[root@localhost bin]# chkconfig crond on    //更改模式为启动计划任务
[root@localhost bin]# chkconfig --list| grep cron
anacron         0:off   1:off   2:on    3:off   4:on    5:on    6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
 
php相关环境配置
实例一:

./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-zlib --with-gd --with-gettext --with-gdbm --enable-mbstring --enable-sockets



Cacit 运行环境需要 PHP + Mysql + rrdtool 以及 snmp 工具的支持。

下边是本次配置需要用到的软件。

Catci:

  1. cacti-0.8.6j.tar.gz
  2. rrdtool-1.2.27.tar
  3. net-snmp-5.0.9-2.30E.15
  4. net-snmp-devel-5.0.9-2.30E.15
  5. net-snmp-libs-5.0.9-2.30E.15
  6. net-snmp-utils-5.0.9-2.30E.15

PHP:

  1. php-5.2.6.tar.gz
  2. curl-7.15.0.tar.gz
  3. freetype-2.1.9.tar.gz
  4. gettext-0.16.1.tar.gz
  5. gd-2.0.35.tar.gz
  6. jpegsrc.v6b.tar.gz
  7. libart_lgpl-2.3.17.tar.gz
  8. libpng-1.2.18.tar.gz
  9. libxml2-2.6.32.tar.gz
  10. ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz
  11. zlib-1.2.3.tar.gz
  12. libxml2-2.6.32.tar.gz

Apache:

httpd-2.2.6.tar.gz

Mysql:

mysql-5.1.24-rc.tar.gz

开始构建完整的 PHP 运行的环境,我们以全新安装的 RedHatAs4 updata4 操作系统环境为例。

首先编译安装Apache httpd server

  1. # tar zxvf httpd-2.2.6.tar.gz
  2. # cd httpd-2.2.6
  3. # ./configure --prefix=/usr/local/apache26 --enable-module=so --with-mpm=worker --enable-module=rewrite
  4. # make && make install

第二步安装 PHP+GD 等所需的支持插件

编译安装libxml

  1. # tar zxvf libxml2-2.6.32.tar.gz
  2. # cd libxml2-2.6.32.tar.gz
  3. # ./configure --prefix=/usr/local/libxml2/
  4. # make && make install

编译安装zlib

  1. # tar zxvf zlib-1.2.3.tar.gz
  2. # cd zlib-1.2.3
  3. #./configure --prefix=/usr/local/zlib2/
  4. # make && make install

编译安装jpeg支持

  1. # tar -zxf jpegsrc.v6b.tar.gz
  2. # cd jpeg-6b/
  3. # ./configure --prefix=/usr/local/jpeg6
  4. # make
  5. # make install-lib
  6. # make install

( 该版本的 jpeg 在实际安装过程中,make install 的时候会出现好几个找不到目录,或目录不存在的 error 。只需按照提示人手创建缺失目录,然后再令其 make install 直到无任何错误提示且顺利完成为止。 )

编译安装 libpng

  1. # tar zxvf libpng-1.2.18.tar.gz
  2. # cd libpng-1.2.18.tar.gz
  3. #cp scripts/makefile.gcmmx makefile
  4. #./configure --disable-shared --prefix=/usr/local/libpng2/
  5. # make && make install

编译安装 freetype

  1. # tar zxvf freetype-2.1.9.tar.gz
  2. # cd freetype-2.1.9
  3. #./configure --disable-shared --prefix=/usr/local/freetype2/
  4. # make && make install

编译安装 libart_lgpl

  1. # tar zxvf libart_lgpl-2.3.17.tar.gz
  2. # cd ibart_lgpl-2.3.17
  3. #./configure --disable-shared --prefix=/usr/local/libart/
  4. # make && make install

编译安装 gettext

  1. # tar zxvf gettext-0.16.1.tar.gz
  2. # cd gettext-0.16.1
  3. # ./configure --prefix=/usr/local/gettext/
  4. # make && make install

编译安装 gd 库 :

  1. # tar zxvf gd-2.0.35.tar.gz
  2. # cd gd-2.0.35
  3. # ./configure --prefix=/usr/local/gd2 --with-zlib=/usr/local/zlib2/ --with-png=/usr/local/libpng2/ --with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype2/ --with-libart=/usr/local/libart/ --with-gettext=/usr/local/gettext/ --with-libxml=/usr/local/libxml2
  4. # make && make install

编译安装 Curl 支持

  1. # tar zxvf curl-7.15.0.tar.gz
  2. # cd curl-7.15.0
  3. # ./configure --prefix=/usr/local/curl
  4. # make && make install

编译安装 PHP

  1. # tar zxvf php-5.2.6.tar.gz
  2. # cd php-5.2.6
  3. # ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache26/bin/apxs --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng2/ --with-gd=/usr/local/gd2/ --with-freetype-dir=/usr/local/freetype2/ --with-zlib-dir=/usr/local/zlib2/ --with-mysql=/usr/local/mysql --with-curl=/usr/local/curl --with-gettext=/usr/local/gettext
  4. # make && make install
  5. # cp php.ini-dist /usr/local/php/lib/php.ini ( 拷贝 PHP 配置文件至安装目录 )
  6. # vi /usr/local/apach26/conf/httpd.conf ( 修改 apache 配置文件并加载 PHP 支持 )

要改的有如下几处

  1. 一般都在 #AddType application/x-tar .tgz 下加一行 :
#LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php

  1. 如果你搜索其它地方没有以下这行 :
LoadModule php5_module modules/libphp5.so

请把上面的 # 号去掉,还有找到
DirectoryIndex index.html index.html.var
在后面加 index.php 让它把 index.php 做为默认页

  1. 保存 httpd.conf 文件 .
    启动 apache
    # /usr/local/apache2/bin/apachectl start
    如果没有出错 , 写一个测试页放到你网页目录下 . 访问就应该可以看到 php 的版本等信息了 !

用 ZendOptimizer 加速 PHP

  1. #tar zxvf ZendOptimizer-2.5.3-linux-glibc21-i386.tar.gz
  2. #cd ZendOptimizer-2.5.3-linux-glibc21-i386
  3. #./install.sh


安装的时候注意输入正确的安装 apache 的路径等内容 !
安装完毕 , 再看看 phpinfo 页面的 zend 选项就发现了 !!

安装MYSQL# groupadd mysql
# useradd -g mysql mysql
# tar zxvf mysql-5.1.24-rc.tar.gz
# cd mysql-5.1.24-rc
# ./configure --prefix=/usr/local/mysql
--localstatedir=/data/mysql ( 指定数据文件目录 )
--without-innodb --without-debug --with-extra-charsets=gbk
--with-extra-charsets=all --enable-assembler --with-pthread
--enable-thread-safe-client --with-client-ldflags=-all-static
# make && make install

# cp ./support-files/mysql.server /etc/init.d/mysql ( 复制 Mysql 启动服务至系统 )
# chmod 777 /etc/init.d/mysql ( 赐予可执行权限 )
# chown mysql:mysql /data/mysql ( 设置数据文件目录属性 )

设置数据文件目录属性这一步相当重要,许多朋友第一次使用 tar 包安装 Mysql 的时候就因该目录权限问题导致 Mysql 无法启动。相当头大 .

# /usr/local/mysql/bin/mysql_install_db ( 初始化数据库 )
# service mysql start ( 启动 Mysql)
# /usr/local/mysql/bin/mysqladmin -u root -p password 'xxxxx' ( 设置管理员密码 xxx 默认值为空 )

好了,至此 mysql 安装完毕 .

这样构建 Cacit 运行的 PHP+Mysql 环境就基本上完成了。

下边开始安装 Cacit 所需要的 rrdtools 图形工具以及 snmp 工具

编译安装 rrdtools

# tar zxvf rrdtool-1.2.27.tar
# cd rrdtool-1.2.27
# ./configure --prefix=/usr/local/rrdtool
# make && make install

如果 ./configure 时出现下面这个错误

configure: error: Please fix the library issues listed above and try again.

表明系统有功能缺失,需安装 libart_lgpl-devel.rpm 这个包

如果还是提示听样的错误,有可能是找不到 FreeType

把 /usr/local/freetype2/lib/pkgconfig 下的 .pc 文件拷贝到 /usr/lib/pkgconfig 下即可

如果 make install 时出现 [tclrrd.o] 错误

就安装 tcl-8.4.7-2.i386.rpm 以及 tcl-devel-8.4.7-2.i386.rpm 这 2 个包

安装 net-snmp、snmpwalk 和 snmpget 命令
# rpm -qa | grep net-snmp ( 查看系统中有否已经装有所需的软件 )
net-snmp-5.0.9-2.30E.15
net-snmp-devel-5.0.9-2.30E.15
net-snmp-libs-5.0.9-2.30E.15
net-snmp-utils-5.0.9-2.30E.15

没有或者缺少的话都需要逐一安装上。

而且还很有可能会因 rpm 的依存关系无法顺利安装,须使用 - - nodeps 参数。

以上所需的 rpm 安装包都能在 RedHatAs4 安装光盘上找到 .




回页首


安装配置

至此,Cacti 所需的运行环境都已经准备好了,接下来开始进行安装以及配置。

稍微修改系统中 snmp 的配置

# vi /etc/snmp/snmpd.conf

  1. com2secnotConfigUser default public
    改为:com2secnotConfigUser 127.0.0.1 public
  2. access  notConfigGroup ""  any   noauth    exact  systemview  none none
    改为:accessnotConfigGroup""anynoauthexact all none none
  3. #view all    included  .1         80
    将前面的 # 注释 去掉。
    保存退出 :wq
  4. 重新启动 snmp 服务
    # service snmpd restart

安装 / 配置 cacti

  1. # tar zxvf cacti-0.8.6j.tar.gz
  2. # mv cacti-0.8.6j /data/web_server/admin/cacti
    ( 把 cacit 剪切到自定的 web 目录下 )
  3. # chmod 777 – Rf /data/web_server/admin/cacti
    ( 设置目录权限 , 避免因权限问题而导致目录无法写入 )
  4. # cd /data/web_server/admin/cacti
    在Mysql中创建一个新的库,并导入cacti 目录中cacti.sql 并设置好该表的用户权限,然后编辑 cacti 的数据库配置文件。
  5. # vi /data/web_server/admin/cacti/include/config.php
    $database_type= “ mysql ” ;
    $database_default = “数据库名称” ;
    $database_hostname = “默认是 localhost ” ;
    $database_username = “用户名” ;
    $database_password = “密码” ;


    更改用户、密码等项与上面给出的对应保存退出

  6. # crontab – e (加入自动执行规则,每 5 分钟执行。)
    */5 * * * * /usr/local/php/bin/php /data/web_server/admin/cacti/poller.php \
    > /dev/null 2>&1
    (其中 /usr/local/php/bin/php 这个为 php 的安装目录)

  7. 保存退出:wq
  8. 在 apache 上设置好 cacti 所在 web 目录
  9. 打开浏览器 http://youhostname/cacti
  10. 进入 cacti 的初始设置页面
    第一次默认登陆账号:admin 密码 admin
    登陆后它就会让你立即修改新密码

说一下 cacti 设置页中各项“零件”的路径。

当修改好新密码进入,第一个显示出的页面就是让你设置 rrdtool,snmp 等工具的路径。这是个很重要的环节,必须无误,要不然 cacti 将无法生成出统计图。

snmpwalk Binary Path : /usr/bin/snmpwalk
snmpget Binary Path: /usr/bin/snmpget
RRDTool Binary Path: /usr/local/rrdtool/bin/rrdtool
PHP Binary Path: /usr/local/php/bin/php
Cacti Log File Path: /data/web_server/admin/cacti/log/cacti.log
Cactid Poller File Path: /data/web_server/admin/cacti/poller.php


默认的配置中会出现许多“ NotFound ”

按照上边的路径把“ NotFound ”的项都重新填上。

手动运行一次

/usr/local/php/bin/php /data/web_server/admin/cacti/poller.php > /dev/null 2>&1

你就能在顶上 graphs 中 localhost 里头看到本机的内存,CPU,登陆用户等的统计图 .


图 1. Cacti 统计图
Cacti 统计图

但默认 Cacti 是没有创建网卡流量的监控图的。要我们自己来加。

回到 console 菜单

选择 Devices 监控设备。


图 2. 设备监控
设备监控

图 3. 添加设备
添加设备

然后点击右上角的 Add 进行添加

Description 设备名称 ( 可随意输入 )

Hostname 设备地址 ( 如果是本机就填 127.0.0.1 )

Host Template 设备的类型 ( 选择 ucd/net SNMP Host )

然后其他按照默认即可,如下图


图 4. 添加的新设备
添加的新设备

点 create 创建。

如果刚才填写的地址无误,创建成功后,会在该页面左上方出现所新建设备的 SNMP Information

然后点击隔壁醒目的 * Create Graphs for this Host 即开始创建监控图表


图 5. 创建图表-1
创建图表-1

图 6. 创建图表-2
创建图表-2

如图 6,沟选你所要监控的网卡以及 IP,点 create 。

这样就完成了你所指定设备统计图的创建。


图 7. 添加的设备统计图
添加的设备统计图

点击菜单中的 Graph Management 即可浏览到你刚才所创建的图表,如图 7 箭头所示。


图 8. 统计图表
统计图表

有一个小技巧,初次要求 cacti 创建指定设备的统计图表,通过 Graph Management 进入图 8 所示页面时,统计表图片会是一个 X ( 叉 ) 。这是因为在配置初期指定系统中每 5 分钟执所行的 php 语句还没到点运作。要么你就等 5 分钟,要么你就直接进入系统手动执行:

/usr/local/php/bin/php /data/web_server/admin/cacti/poller.php > /dev/null 2>&

然后曲线表中就能出现第一个峰值,每 5 分钟自动更新。 24 小时后,曲线图就能完整地出现在你眼前。

回到图 7 Graph Management 的界面勾选新建的图表项,然后在下边

Choose an action 框中选择 Place on a Tree(default Tree)

就能把该图表类似快捷方式的样子张贴到本文图 1 所示的 Graphs,Default tree 栏目中。然而你也能自己在菜单栏的 Graph Trees中新建定制栏目,然后用相同的方法把新建的统计图往你所定制的栏目中放。

Cacti 的强大功能不单止可以通过 snmp 获取装有 Linux,Unix 操作系统服务器的运行状态,还能监控 Windows 系统服务器。跟诸如 Cisco,Linksys, 路由器,交换机,无线 AP 。或者其他支持 snmp 管理协议的网络设备。




回页首


实际应用

下边我们举出实应用的例子。
设备结构:

  1. 网络入口路由器 Linksys RV042
    Linksys 的一款路由器,主要负责,外网接入路由,防火墙,以及端口映射。
  2. server1 WEB 应用服务器
    操作系统: Linux RedHat As4
    Eth0,Eth1 双网卡工作。前者接入路由器映射至外网。后者直连至 server2
    进行反向代理 ( proxy ) 以及数据备份以及同步等功能。
    IP 分别为 192.168.3.2 以及 192.168.10.2
  3. server2储存,FTP与WEB 应用服务器
    操作系统: Windows2003 r2
    与 server1 网络环境相仿,双网卡工作。
    IP 分别为 192.168.3.3 以及 192.168.10.3

Cacti 已经配置完成,安装在 server1 上。第一台添加到监控表里边的是路由器 RV042 。打开路由器的 WEB 设置页面,勾选并启用 SNMP 功能。如图 9

Send SNMP Trap to: 192.168.3.2( server1 的 IP )

然后其他输入框按照默认留空即可,但需留意 Get Community Name: 所填写的组名: public 。保存设置。


图 9. 保存设置
保存设置

登陆 Cacti ,console 菜单栏中点击 Devices。跟前边图 1 至 8 添加新设备以及创建统计图表的步骤相同

Description 设备名称 ( 我们这里自定为 Linksys RV042)

Hostname 设备地址 ( 路由器的地址 192.168.3.1 )

Host Template 设备的类型 ( 选择 ucd/net SNMP Host 或者是 Cisco Router )

然后其他按照默认即可。

创建成功后,也会在该页面左上方出现所新建设备的 Linksys RV042 SNMP Information

点击隔壁 *Create Graphs for this Host 创建监控图表


图 10. 创建监控图表
创建监控图表

路由器 RV042 的端口以及 IP 等数据都取出来了。

勾选好所要监控的端口,点击 create 就能完成路由器监控图表的建立。

Cacti 运行在 Server1 上,所以配置方式跟前边所介绍是一样的,这里就掠过了。但顺带说一下,如果环境中还存在 Server3,而且跟 Server1 一样都是 Linux 系统,需要添加到 cacti 里头。哪么只需在该服务器上修改 snmp 配置,修改的内容也跟 server1 上几乎一样,不同的是。

编辑 /etc/snmp/snmpd.conf 的时候,原来填 127.0.0.1 ( 本机地址 ) 的地方换成 Cacti 所在运行的服务器 IP,即 server1: 192.168.3.2

  1. com2secnotConfigUser default public
    改为:com2secnotConfigUser 192.168.3.2(server1 地址) public
  1. access  notConfigGroup ""  any   noauth    exact  systemview  none none

改为:accessnotConfigGroup""anynoauthexact all none none

  1. #view all    included  .1         80
    将前面的 # 注释 去掉。
  1. 保存退出 :wq

重新启动 snmp 服务

# service snmpd restart

在 Cacti ,Devices中创建新设备,

填写 Server3 IP 地址,设备类型: ucd/net SNMP Host , 创建图表 , 完成。

到 Server2 的 win2003 系统了。

  1. 给 Windows 安装 SNMP 协议支持

    通常由于 SNMP 是一个建议关闭的协议 ( 因为有安全漏洞 ),所以 Windows 2003 不是缺省安装的。但 Cacti 用的就是 SNMP 协议,而且服务器处于内网中,有路由器防火墙对外隔着,所以装吧。

    控制面板– > 添加或删除程序– > 添加 / 删除 Windows 组件– > 管理和监视工具– > 简单网络管理协议 (SNMP)

  2. 修改 SNMP 的安全设置

     这台服务是被监控方,所以需要像刚才举例的 Server3 那样修改 SNMP 的配置。否则在 server 1 里头的 Cacti 则永远也收不到 SNMP 的消息。打开 Services 窗口并找到 SNMP 服务,打开右键菜单,选择属性。在打开的窗口中找到“安全”选项页。在选项页中有两部分设置,上半部分是指 SNMP 服务接受哪种 Community 指示字,缺省情况下 Windows 2003 不对任何指示字反馈,我一般都添加设置为。

    团体名称:public, 权限:只读

    下半部分添加可信任的主机名、IP 或是 IPX 名称。这里就也是添加 server1 的 IP 192.168.3.2 如图 11



    图 11. 修改 SNMP 的安全设置
    修改 SNMP 的安全设置

  3. 修改防火墙

    如果你安装了防火墙,还要记得打开 UDP 161 端口。

    完成后重新启动 SNMP server 服务

    登陆 Cacti 点 Devices 创建新设备。

    填写 Server2 IP 地址,设备类型:Windows 2000/XP hosts

    从 Windows 上获取到的 SNMP 信息也挺多,CPU,内存,虚拟内存,硬盘空间使用,网卡流量,一应俱全。最后创建图表 , 完成。



    图 12. 修改防火墙
    修改防火墙




回页首


总结

Cacti 真是一个世界。在正式使用 Cacti 接管原来的 MRTG 负责服务器状态监控的这段时间,我所能最深刻感受到的,不止是它漂亮的界面跟图表。而且是对监控设备的创建,跟管理,都有着史无前例地简单,高效。作为系统管理员,我真相当感激 Cacti 的作者能开发出这一套如此拔尖的监控程序。

虽然它所运行的 PHP 环境以及 RRDtool 在前期配置的时候要花好多的时间跟功夫,

但也未尝不是一个新的选择。试想一下,你只需一阵子的功夫在一台服务器上把环境配好,Cacti 装好。以后,无论你要再添更多的服务器,要了解他们的”情绪”,就只需简单地在浏览器上登陆 Cacti – > 新建设备 – > 新建图表。区区几步,整整有条的服务器列表,CPU,硬盘,网卡等等读数的曲线都能一清二楚地显示在你面前。

当然! Cacti 带来的强大功能以及方便还远不止这些,就交由大家之后去使用,去体验了。



参考资料









0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:548139次
    • 积分:8926
    • 等级:
    • 排名:第2252名
    • 原创:305篇
    • 转载:69篇
    • 译文:0篇
    • 评论:13条
    文章分类
    最新评论