cacti 安装配置

【基本介绍】-> 百科
cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。

【依赖软件】
web服务器:Apache 或者 nginx 等
Mysql : 用了存储相应的数据
Php : 用来解析cacti
rrdtool :用来生成和存储图表和数据    http://oss.oetiker.ch/rrdtool/
net-snmp : 用来抓取网络数据          http://www.net-snmp.org/
cacti : 用来整合各个软件并呈现       http://www.cacti.net/

【安装环境】
以下的软件在CentOS5.8测试通过
mysql5.1.73
php5.4.24
apache2.2
rrdtool1.4.8
netsnmp5.5
cacti0.8.7

【安装配置net-snmp】
安装[root@NC-1 ~]# yum install -y net-snmp net-snmp-libs net-snmp-utils
配置[root@NC-1 snmp]# vi /etc/snmp/snmpd.conf
    # First, map the community name "public" into a "security name"

    #       sec.name  source          community

    com2sec notConfigUser  127.0.0.1       public

    ####

    # Finally, grant the group read-only access to the systemview view.

    #       group          context sec.model sec.level prefix read   write  notif

    access  notConfigGroup ""      any       noauth    exact  all  none none


    ##           incl/excl subtree                          mask

    view all    included  .1                        80 (去掉前面的注释  “#”)

检测snmp,如果一下命令没有数据在检查snmp配置
[root@NC-1 ~]# snmpwalk -c public -v 2c localhost
[root@NC-1 ~]# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex


【安装rrdtool】
这里用编译安装源码方式
检测rrdtool命令是否成功
RRDtool 1.4.8  Copyright 1997-2013 by Tobias Oetiker <[email protected]>
               Compiled Jun 18 2014 03:06:44

Usage: rrdtool [options] command command_options
Valid commands: create, update, updatev, graph, graphv,  dump, restore,
                last, lastupdate, first, info, fetch, tune,
                resize, xport, flushcached

RRDtool is distributed under the Terms of the GNU General
Public License Version 2. (www.gnu.org/copyleft/gpl.html)

For more information read the RRD manpages

【安装cacti】
解压源码到web的documentroot下面(例如/var/www/html/cacti)

【mysql安装配置】
mysql安装省略
创建cacti数据库
[root@NC-1 ~]# mysqladmin -u root -p create cacti

给cacti数据库的用户权限
mysql> grant all on cacti.* to cactiuser@localhost identified by 'cacti123!@#';
mysql> flush privileges;
mysql> quit

导入cacti的数据,cacti.sql在源码的根目录下面
[root@NC-1 cacti]# mysql -uroot -pNCroot cacti<cacti.sql

为cacti配置数据库连接
[root@NC-1 ~]# vim /var/www/html/cacti/include/config.php
/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cacti123!@#";
$database_port = "3306";
$database_ssl = false;

【apache/nginx php】
apache+php : php是作为apache的一个模块来使用的。在编译的时候要注意参数,使他们支持相应的模块
nginx+php+fpm : nginx使用php是通过fpm来实现的。相应配置php-fpm

【后续】
首次登入cacti会进入cacti installation guide,进行相应的配置。
初始用户名和密码是admin,登入成功后强制修改

制定cron,持续生成相应的rrd文件
*/5 * * * * /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1

【错误总结】
1.很大部分是跟php有关系,本来对Php语言不是很熟悉大部分百度
例如:
   (1)It is not safe to rely on the system's timezone settings.
      在php.ini里面配置时区  date.timezone ="Asia/Shanghai"
   (2)PHP Strict Standards:  Only variables should be passed by reference in /usr/local/nginx/html/cacti/lib/ping.php on line 382
      好似跟php版本有关系
socket_select($r = array($this->socket), $w = NULL, $f = NULL, $to_sec, $to_usec)
->>>>>>改为
$r = array($this->socket);
$w = NULL;
$f = NULL;
socket_select($r, $w, $f, $to_sec, $to_usec)


2.使用rrdtool的问题主要是对perl的支持问题
   (1) Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 3.BEGIN failed--compilation aborted at Makefile.PL line 3.
    安装perl扩展:  yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker


3.不能生成rrd文件(页面上没有图片生成)
   页面没有图片检查相应的rrd文件是否生成。可以手动执行(根据情况添加参数--debug --force)并解决相应的错误。这里忽略cron和执行时间间隔太短的问题
   /usr/local/php5.4.24/bin/php /var/www/html/cacti/poller.php

4.页面有图片但是没有数据
   还是去检查rrd文件是否更新和是否有数据(没数据的话都是nan)
   列如:
     rrdtool fetch localhost_users_6.rrd AVERAGE | grep -v nan
                          users
     1403174100: 2.0000000000e+00
     1403174400: 2.0000000000e+00
   数据都是nan的话在页面上开启debug模式查看cacti的log看具体问题

5.权限问题
  我一般是把rra plugins log这3个文件夹权限弄成777.cmd.php添加执行权限。关于用户名,这里并没有设置全部都是root

6.log里面执行语句都正常但是rrd文件就是没数据
  我是手动执行update后就都有数据产生了
  /usr/local/bin/rrdtool update /usr/local/nginx/html/cacti/rra/localhost_cpu_system_17.rrd --template cpu_system N:12377

【参考】
http://blog.sina.com.cn/s/blog_4e424e2101000b5y.html
http://oss.oetiker.ch/rrdtool/pub/?M=D
http://www.cacti.net/downloads/
http://88fly.blog.163.com/blog/static/1226803902011290280920/?suggestedreading

猜你喜欢

转载自runpanda.iteye.com/blog/2083005