kinght2008 发表于 2017-4-20 06:12:10

cacti-0.8.7i安装

  操作系统:CentOS release 5.7 (Final)

软件包:cacti-0.8.7i.tar.gz,net-snmp-5.7.1.tar.gz,php-5.3.10.tar.gz,mysql-5.1.58-linux-i686-glibc23.tar.gz,httpd-2.2.22.tar.gz


1.安装apache


1.1  cd /usr/local/src

1.2  wget http://labs.renren.com/apache-mirror//httpd/httpd-2.4.1.tar.gz

1.3  tar zvxf httpd-2.2.22.tar.gz

1.4  cd httpd-2.2.22/srclib/apr

1.5  ./configure --prefix=/usr/local/apr

1.6  make && make install

1.7  cd ../apr-util

1.8  ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

1.9  make && make install
  1.10 cd /usr/local/src/httpd-2.2.22

1.11 ./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

1.12 make && make install

1.13 vi /usr/local/apache/conf/httpd.conf修改以下参数:

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 9999(yourport)
#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName 192.168.0.181:9999(yourhost:yourport)
   
1.13 执行 /usr/local/apache/bin/apachectl start,在浏览器输入http://yourip:yourport,如果显示“it works!”说明安装成功。


2.安装snmp


2.1  centos自带有snmp,cacti需要php支持snmp的扩展,本人不知在编译php时如何引用系统的snmp,所以采取手动编译安装snmp的方法

2.2  wget wget http://superb-sea2.dl.sourceforge.net/project/net-snmp/net-snmp/5.7.1/net-snmp-5.7.1.tar.gz

2.3  tar zvxf net-snmp-5.7.1.tar.gz

2.4  cd net-snmp-5.7.1

2.5  ./configure

2.6  make && make install

2.7  修改配置, vi /etc/snmp/snmpd.conf

1、com2sec notConfigUserdefault      public
改为:com2sec notConfigUser (你想监控的那台机器的IP)    public
2、accessnotConfigGroup ""      any      noauth    exactsystemviewnonenone
改为:accessnotConfigGroup ""      any      noauth    exactallnone none
3、#view all    included.1      80
将前面的 # 注释 去掉。
   
2.8  复制编译安装的snmp的库到系统库:cp /usr/local/lib/libnetsnmp.so.30 /usr/lib,否则会报libnetsnmp.so.30 not found

2.9  service snmpd restart


3.使用yum install 安装rrdtool,zlib,freetype,libpng,jpeg,libxml,gd,等。如yum install zlib。查看系统是否安装zlib的命令rpm -qa|grep zlib,卸载zlib命令rpm -e zlib。


4.安装php


4.1  需要支持mysql, SNMP, XML, Session, Sockets,在 configure时添加对应参数

4.2  wget http://cn2.php.net/distributions/php-5.3.10.tar.gz

4.3  tar zvxf php-5.3.10.tar.gz

4.4  cd php-5.3.10

4.5  ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql  --with-config-file-path=/usr/local/php/etc --with-snmp=/usr/local -enable-xml --enable-sockets
  4.6 make & make install
  4.7  cp php.ini-production /usr/local/php/etc/php.ini

4.8  修改php时区设置:vi /usr/local/php/etc/php.ini ,否则下面cacti安装之后主页面报global_constants.php等页面的date()函数错误


; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Chongqing
   
4.9  apache支持php,vi /usr/local/apache/conf/httpd.conf

    在AddType application/x-gzip .gz .tgz下添加两项:

    AddType application/x-httpd-php .php

    AddType application/x-httpd-php-source .phps

4.10 测试php是否ok,vi /usr/local/apache/htdocs/index.php

<?php
phpinfo();
?>;
  如果显示如下信息说明php安装ok



 

5.  安装cacti(mysql服务已安装)

5.1  wget http://www.cacti.net/downloads/cacti-0.8.7i.tar.gz

     tar zvxf cacti-0.8.7i.tar.gz

5.2  mv cacti-0.8.7i  /usr/local/apache/htdocs/cacti

5.3  cd /usr/local/apache/htdocs/cacti

5.4  groupadd cactiuser

5.5  useradd cactiuser -g cactiuser

5.6  passwd cactiuser

5.6  /usr/local/mysql/bin/mysql -uroot -pyourpass登录mysql命令行,执行以下命令:

create database cacti;
use cacti;
source /usr/local/apache/htdocs/cacti/cacti.sql;   
GRANT ALL PRIVILEGES ON cacti.* TO cactiuser@localhost IDENTIFIED BY "cactipassword";
flush privileges;
   
5.7  修改cacti配置文件,vi include/config.php

    $database_type = "mysql";

    $database_default = "cacti";

    $database_hostname = "localhost";

    $database_username = "cactiuser";

    $database_password = "cactipassword";

    $database_port = "3306";

    $database_ssl = false;     

5.8  修改rra和log文件夹权限:

chown -R cactiuser:cactiuser rra
chown -R cactiuser:cactiuser log
  
5.9  修改计划任务,使CACTI每5分钟获得一次数据

    su cactiuser

    crontab -e

    */5 * * * * /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1
  5.10 重启apache,/usr/local/apache/bin/apachectl restart,开始安装cacti
  

  5.11 安装完成之后进入登陆页面,默认用户名admin,密码为空,第一次登陆会要求你设置新密码。
  

6.在远程主机上配置snmp服务

6.1  yum install net-snmp
  yum install net-snmp-devel
  service snmpd stop

6.2  net-snmp-config --create-snmpv3-user -ro -A cactipassword -a MD5 cactiuser

    提示以下内容:

    adding the following line to /var/net-snmp/snmpd.conf:

    createUser cactiuser MD5 "cactipassword" DES

    adding the following line to /etc/snmp/snmpd.conf:

    rouser cactiuser

6.3  在防火墙里开启snmp的udp端口161

    vi /etc/sysconfig/iptables

    添加:-A RH-Firewall-1-INPUT -p udp -s CactiServerIP --dport 161 -j ACCEPT

    service iptables restart
  
6.4  分别在远程主机上和cacti主机上检查snmp服务

service snmpd start
snmpwalk -v 3 -u cactiuser -a MD5 -A "cactipassword" -l authNoPriv 127.0.0.1 sysDescr   
snmpwalk -v 3 -u cactiuser -a MD5 -A "cactipassword" -l authNoPriv RemoteIP sysDescr
   
6.5  在cacti添加device



 

    

失败原因排查:

1.检查/usr/local/apache/htdocs/cacti主目录下rra/,有没有数据,如果没有检查rra/ log/的拥有者是不是cactiuser

2.执行 snmpwalk -v 2c -c public 127.0.0.1(serverIP) if    用来测试被控对象()是否开启了SNMP服务,如果不是编译安装snmp可能找不到snmpwalk命令

3.执行 snmpwalk -v 2c 127.0.0.1(serverIP) -c public .1.3.6.1.4.1.2021.10.1.3   查看被控端是否有CPU负载的数据返回

4.执行 /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php  测试PHP是否可以采集到数据

5.如果可以进去cacti管理页面,但是还是无数据,Console->Configuration->Settings->Paths 检查各项path是否配置ok
  
页: [1]
查看完整版本: cacti-0.8.7i安装