Mar 152013
 

这段时间学习监控,本来希望从Nagios开始,不过发现Nagios涉及的东西太多,并且很多地方都会提到Cacti。所以就专门去了解和学习一下Cacti。

Ubuntu下安装软件,其实是非常方便的,不过现在发现很多软件编译起来也很方便。编译的一个好处,其实就是可以使用最新的版本。目前最新版本是0.8.8a,官方预计第一个季度底推出1.0版本,会有重大更新。

Cacti的编译安装文档,基本都是在Centos下测试,包括Cacti官方文档,所以在Ubuntu源码安装Cacti的spine,遇到点麻烦,不过还是顺利解决。大家可以比较一下源和源码安装的不同,我基本实现了两种安装,获得相同的结果。采用源码安装,应该可以让你了解更多细节。

 

安装

直接采用Ubuntu源安装,Cacti的版本是0.8.7i,这个版本的Cacti,还需要专门安装一个插件的包,才能使用插件。如果你采用源码安装,最新的版本是0.8.8a,你直接把插件放到plugin目录下就可以。

采用源

当你采用包的安装,尤其是在Ubuntu和Debian下,配置文件的路径,有时候让你比较头疼。下面是一个路径说明

  1. All browsable files are located in /usr/share/cacti/site/ instead of /var/www/cacti/
  2. Configuration is done in /etc/cacti/debian.php instead of /var/www/cacti/include/config.php
  3. rrd files are stored in /var/lib/cacti/rra instead of /var/www/cacti/rra/ (symlink from /usr/share/cacti/site/rra is included)
  4. Cli scripts are located in /usr/share/cacti/resource/ (symlink from /usr/share/cacti/site/resource is included)
  5. Log files are located in /var/log/cacti/ (symlink from /usr/share/cacti/site/log is included)
  6. Local resources should be installed in /usr/local/share/cacti/resource/
  7. Local plugins should be installed in /usr/local/share/cacti/plugins (but this needs to be setup manually, please read README.Plugins)
  8. Cacti is run under the www-data user

rddtool

apt-get -y install rrdtool

snmp和snmpd

apt-get -y install snmp snmpd

 

Cacti

apt-get -y install cacti

安装过程会提示设置mysql的root的密码, Cacti的密码,还有选择apache作为web服务器,按照提示,采用默认就可以.

Spine

apt-get install cacti-spine

 

查看Cacti的版本

# apt-cache policy cacti
cacti:
  Installed: 0.8.7i-2ubuntu1
  Candidate: 0.8.7i-2ubuntu1
  Version table:
 *** 0.8.7i-2ubuntu1 0
        500 http://10.1.199.5/ubuntu/ precise/universe amd64 Packages
        100 /var/lib/dpkg/status

 

这个时候,你就可以web访问 http://ip/cacti, 安装提示做就可以。安装完成后的登录界面,首次登录,默认账户和密码都是admin,请自行修改密码和相关用户权限。

采用源码

没有必要所有组件都采用源码,只需要

rddtool

apt-get -y  install rrdtool

 

snmp和snmpd

apt-get -y install snmp snmpd

 

Apache,PHP,Mysql

apt-get -y install apache2 mysql-server php5-mysql php5-cgi php5-cli \
php5-snmp php-pear  libapache2-mod-php5

安装过程需要设置mysql的root密码.

下载源码

cd /usr/local/src
wget http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz  
wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8a.tar.gz  

解压源码(做软连接是为了日后方便升级)

cd /usr/local/src
tar zxvf cacti-0.8.8a.tar.gz -C /var/www/
ln -s /var/www/cacti-0.8.8a /var/www/cacti

Cacti数据库

mysqladmin -uroot -p create cacti
mysql -p cacti < /var/www/cacti/cacti.sql

登陆mysql,设置用户权限

mysql -uroot -p
GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'CactiPassword';
flush privileges;
exit

 

配置Cacti使用数据库

在/var/www/cacti/include/config.php ,只需要修改密码就可以。

$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
#$database_password = "cactiuser";
$database_password = "CactiPassword";
$database_port = "3306";
$database_ssl = false;

重启apache,就可以生效。

/etc/init.d/apache2 restart

cron job

设置权限

cd /var/www/cacti
chown -R www-data:www-data rra/ log/

创建文件 /etc/cron.d/cacti

*/5 * * * * www-data /usr/bin/php /var/www/cacti/poller.php > /dev/null 2>&1

重启服务

service cron restart

这个地方一定要注意,由于我们是使用www-data这个用户运行和rra的目录权限是属于www-data,我们不能直接用root的权限去运行下面这个命令

php /var/www/cacti/poller.php > /dev/null 2>&1

这样会导致创建的rrd文件是属于root的,导致没有数据。所以大家装完后,耐心等待5分钟,就可以看到图和数据。

 

Spine

spine是一个基于C语言的,非常快速的轮询引擎。它是默认的cmd.php的可选替代。目的是提高Cacti的获取数据的性能。

准备开发环境

apt-get install dpkg-dev file gcc g++ libc6-dev make patch perl autoconf \
 automake dh-make debhelper devscripts fakeroot gnupg \
xutils lintian pbuilder checkinstall libtool libsnmp-dev libsnmp-base\
 libsnmp15 libmysqlclient-dev dbconfig-common libphp-adodb dos2unix

解压编译

cd /usr/local/src
tar zxvf cacti-spine-0.8.8a.tar.gz
cd cacti-spine-0.8.8a
./bootstrap
./configure
make
make install 
cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf
ln -s /usr/local/spine/bin/spine /usr/sbin/spine

编辑 /etc/spine.conf ,修改数据库密码

DB_Pass         CactiPassword

这个时候,你就可以web访问 http://ip/cacti, 安装提示做就可以。安装完成后的登录界面,首次登录,默认账户和密码都是admin,会强制用户修改密码。

 

设置

Spine设置

设置spine路径,如果你是编译安装,路径需要自己填写上,保存的时候系统会检测,检测到会提示ok。

spine

设置Cacti使用spine

spine2

SNMP2

当你添加设备的时候,让Cacti默认使用SNMP2协议去监控设备 (Settings—General 底下的SNMP Defaults)

snmp2

添加设备,默认采用ping和snmp去检测。修改完后,你添加新的device,就会默认是采用这个设置。

快照4

本机监控

你装完Cacti,本机就是第一个监控的设备。不过默认不是采用snmp去监控,所以你需要修改一下。

Console—devices,选择localhost

修改下面参数,保存,别的就不要动。

snmp

这个时候,你在Graphs的菜单里,就可以看到

快照3

 

MIBs

这个应该是和snmp监控有密切关系,对于ubuntu 12.04来说,默认snmp是没有启用,你需要安装mibs,对于Centos来说,基本不需要操心这个。

apt-get install snmp-mibs-downloader

启用mibs,编辑 /etc/snmp/snmp.conf ,注释掉一行就可以

#mibs :

重启snmp服务就可以。

/etc/init.d/snmpd restart

可以通过下面命令验证。第一条是没有安装mibs,第二是安装了mibs。

# snmpwalk -On -c public -v 2c localhost HOST-RESOURCES-MIB::hrSystemProcesses.0
MIB search path: /root/.snmp/mibs:/usr/share/mibs/site:/usr/share/snmp/mibs:
/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp
Cannot find module (HOST-RESOURCES-MIB): At line 0 in (none)
HOST-RESOURCES-MIB::hrSystemProcesses.0: Unknown Object Identifier

# snmpwalk -On -c public -v 2c localhost HOST-RESOURCES-MIB::hrSystemProcesses.0
.1.3.6.1.2.1.25.1.6.0 = Gauge32: 97

 

参考文档

哈哈乐原创cacti安装spine

linode Ubuntu cacti 文档

http://foreveryan.blog.51cto.com/3508502/671274

http://www.cacti.net/downloads/docs/html/unix_configure_cacti.html

http://docs.cacti.net/faq 

http://foreveryan.blog.51cto.com/3508502/671274

http://tech.moosaico.com/blog/2012/12/01/installing-snmp-mib-files-in-linux-ubuntu-12-04-lts/

  7 Responses to “Ubuntu 12.04 安装配置Cacti”

  1. 陈老大出品,必是精品!

  2. 在ubuntu中,装不装 snmp-mibs-downloader 都没关系的,只是以文字或数字的方式显示而已,反正这么长是记不住的。一般上网去查就可以了。

    重点是snmpd.conf中要允许访问OID对应节点。

    • 谢谢,其实也没搞明白这个的用途,就是看到文档这样写就这样操作。

  3. 陈老师我的cacti不能绘出图是什么问题啊。

  4. 您好:

    这个地方一定要注意,由于我们是使用www-data这个用户运行和rra的目录权限是属于www-data,我们不能直接用root的权限去运行下面这个命令

    php /var/www/cacti/poller.php > /dev/null 2>&1

    这样会导致创建的rrd文件是属于root的,导致没有数据。所以大家装完后,耐心等待5分钟,就可以看到图和数据。

    請問關於權限要如何設定,這裡看不太懂?
    謝謝

  5. 你好。我的没有出先流量图 ,只有表格没有图

 Leave a Reply

(required)

(required)