Cacti中文版安装配置



Cacti是一款优秀的开源监控软件,使用php实现,它的主要特点是使用snmp服务获取数据,然后用rrdtool存储和更新数据,当用户查看数据的时候,rrdtool生成图表呈现给用户。mysql数据库用于存储变量并进行调用。mysql数据库并不存储snmp捕获到的数据,snmp捕获到的数据,存在于rrdtool生成的rrd文件中,这些文件位于cacti目录下的rra目录中。

本文主要介绍cacti中文版的安装,配置,cacti插件的安装,配置。英文版的安装跟中文版大同小异,但是中文版会麻烦点,所以就以中文版为例。

系统:Centos5.6 x386

软件:cacti-0.8.7e

 本文档提供pdf版本下载,祥见文章尾部。

 

一、    准备软件的安装

由于cacti使用php来实现,通过WEB来管理,使用snmp来捕获数据,使用rrdtool来生成图表,使用mysql来存储变量,因此需要先安装这些软件,直接使用yum进行安装即可,共需安装以下rpm包:

httpd/mysql-server/php/php-mysql/rrdtool/gd/net-snmp/php-snmp/net-snmp-utils/net-snmp-devel/mysql-devel/openssl-devel

各个rpm包的作用为:

httpd  WEB服务器apache

mysql-server   数据库mysql

php   cacti使用php来实现

php-mysql  php支持mysql

rrdtool   用来生成cacti图像

gd      rrdtool绘制图像需要的图形库

php-snmp   php支持snmp

net-snmp-utils   一些snmp的扩展命令,如:snmpwalksnmpget等,cacti需要

net-snmp-devel/mysql-devel/openssl-devel   cactid/spine需要

安装rpm包:

#yum  -y install httpd mysql-server php php-mysql gd net-snmp php-snmp net-snmp-utils net-snmp-devel mysql-devel openssl-devel

由于centos的标准组件中是不带rrdtool的,因此我们需要添加一个dagyum源,以安装rrdtool

修改/etc/yum.repos.d/CentOS-Base.repo

#vi /etc/yum.repos.d/CentOS-Base.repo

在其末尾追加

[dag]

name=Dag RPM Repository for Red Hat Enterprise Linux

baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag

gpgcheck=1

gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

enabled=1

更新yum

#yum clean all

#yum list

现在就可以安装rrdtool

#yum install rrdtool

设置开机自启动

#chkconfig httpd on

#chkconfig mysqld on

#chkconfig snmpd on

二、    MySQL数据设置

由于cacti依靠mysql来存储必要的变量,我们有必要对MySQL做些设置。

启动并初始化mysql数据库

#service mysqld start

root用户设置密码(linuxpad为例),并更改登录权限,默认密码为空

#mysql –u root –p      回车后输入密码()

mysql>use mysql;

mysql>update user set password=password(‘linuxpad’) where user=’root’;              

mysql>grant all privileges on *.* to root@localhost identified by ‘linuxpad’ with grant option;

mysql>flush privileges;



添加cacti库和cacti用户,并为其设置权限

mysql>create database cacti default character set utf8;    //数据库字符集设置utf8,否则乱码

mysql>grant all privileges on cacti.* to cacti@localhost identified by ‘linuxpad’ with grant option;

mysql>flush privileges;

三、    安装Cacti

下载cacti-0.8.7e-cn-utf8.tar.gz,地址为http://blogimg.chinaunix.net/blog/upfile2/090815172648.gz (这个链接是tar.gz格式的,请下载后更改文件格式)假设下载目录为/opt/soft,下面相同

#cd /opt/soft

#tar zxvf 090815172648.tar.gz

#mv cacti-0.8.7e-cn-utf8 /var/www/cacti

修改配置文件

#vi /var/www/cacti/include/config.php

修改内容如下

$database_type = "mysql";

$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cacti";

$database_password = "linuxpad";

关于cacti添加用户,网上常见的做法是添加一个cacti的用户,并更改rralog目录属主。经过本人测试这里并不需要添加cacti用户并更改rralog的属主,直接使用root即可。原因是因为官方的安装文档上使用的是FreeBSD,在计划任务那步使用的是:

*/5 * * * * cacti php /var/www/cacti/poller.php &>/dev/null,使用用户cacti来执行任务。

但是centos并不是识别这个cacti参数,因此也就无需使用cacti来执行任务,我们直接使用root来执行任务就OK了,于是不用更改目录权限,crontab内容为

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

还有另外一种的解决方案,就是添加一个cacti用户,更改rralog目录属主为cacti,然后在cacti用户环境下设置crontab,内容为

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

这样就能实现crontab计划是由cacti用户来执行的了。

创建并编辑apachecacti配置文件

#vi /etc/httpd/conf.d/cacti.conf

内容如下:

Alias /cacti /var/www/cacti

<Directory /var/www/cacti>

DirectoryIndex index.php

AllowOverride all

order deny,allow

allow from all

php_flag magic_quotes_gpc on

php_flag track_vars on

</Directory>

导入数据库

#mysql –u root –p cacti < /var/www/cacti/cacti.sql

启动服务,然后访问http://ip/cacti开始安装cacti

#service mysqld start

#service httpd start

#service snmpd start

直接下一步,选择全新安装,来到下面的一个界面,如图1

请确认所有路径都已找到,并选择SNMP应用程序版本为5.xRRDTool版本为1.3.x

完成之后来到登录页面,默认用户名admin,密码admin,登录之后会提示你强制更改密码。

设置计划任务

#crontab –e

追加以下内容

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

添加中文字体支持,否则Cacti图像内会没有任何内容。CentOS下直接yum安装中文支持

#yum install fonts-chinese###这个在centos中安装不了需要单独下载安装

(下载地址http://ftp.tw.debian.org/debian/pool/main/t/ttf-arphic-ukai/ttf-arphic-ukai_0.1.20060928.orig.tar.gz )

打开Cacti,控制面板->配置->设置->路径:

RRDTool默认字体路径设为/usr/share/fonts/chinese/TrueType/ukai.ttf

配置无误,会显示文件已找到。

四、    配置本机snmp

编辑snmp配置文件/etc/snmp/snmp.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

重启snmp服务并测试

#service snmpd restart

# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex 

IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1

IP-MIB::ipAdEntIfIndex.xxx.xxx.xxx.xxx = INTEGER: 2

IP-MIB::ipAdEntIfIndex.xxx.xxx.xxx.xxx = INTEGER: 3

显示以上信息,则snmp配置成功,xxx.xxx.xxx.xxx会根据你本机的IP信息配置而不同。

21089721_1318159420NJHF.png


1

如果配置正确,隔几分钟,我们的cacti就会有数据了,如图2,你也可以手动执行以下命令手动生成rrd图像

#/usr/bin/php /var/www/cacti/poller.php &>/dev/null


五、    安装Spine

由于默认cmd.php来轮询数据,速度会很慢,特别是在监控节点比较多的情况下,cmd.php就更显不足了,因此我们采用Spine来轮询数据。cacti-spine是一个由C语言开发的,用于替代cmd.php的快速获取速度的引擎。

下载地址:http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz

补充地址http://www.cacti.net/downloads/spine/cacti-spine-0.8.8b.tar.gz

安装spine之前请确保它所依赖的包net-snmp-develmysql-developenssl-devel都已安装完毕。

以下是安装步骤

#cd /opt/soft

#wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz

#tar zxvf cacti-spine-0.8.7e.tar.gz

#cd cacti-spine-0.8.7e

#./configure

#make && make install

编辑spine配置文件

#vi /usr/local/spine/etc/spine.conf

修改内容如下:

DB_Host         localhost

DB_Database     cacti

DB_User         cacti

DB_Pass         linuxpad

DB_Port         3306

spine启动并设置开机自启动

#/usr/local/spine/bin/spine

#echo /usr/local/spine/bin/spine >>/etc/rc.d/rc.local

Cacti设置:

Cacti控制面板->配置->设置

路径:将Spine轮询器路径设置为/usr/local/spine/bin/spine

轮询器:轮询器类型选择Spine

到此为止,我们已经成功安装Spine轮询器并使用。

六、    Cacti插件安装之Cacti-plugin 

对于中文版,我们需要下载中文版的更新文件:http://blogimg.chinaunix.net/blog/upfile2/090818213852.gz,下载后需更名cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff.gz,更新前请备份cacti目录及mysql库,以便更新失败后的还原。

Cacti-Plugin安装过程如下:

#cd /opt/soft

#wget http://blogimg.chinaunix.net/blog/upfile2/090818213852.gz

#mv 090818213852.gz cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff.gz

# gunzip cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff.gz

# mv cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff /var/www/cacti/

# patch -p1 -N <cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff

#mysql –u cacti –p cacti < pa.sql

如果你的cacti访问时候是使用http://ip/cacti,你需要修改/var/www/cacti/include/global.php

修改如下:

$database_type = "mysql";

$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cacti";

$database_password = "linuxpad";

$database_port = "3306";

 

$config['url_path'] = '/cacti/';

 

配置Cacti

Cacti控制面板->工具->用户管理->admin->区域权限,选择插件管理

然后我们就能够在控制面板的配置下面看到多出一个插件管理的选项


七、    Cacti插件安装之Monitor

Cacti下面的插件非常多,我们拿Monitor为例,来讲述Cacti插件的安装。

MonitorCacti下面一个监控节点存活性的插件,可以监控各种网络设备,主机的存活性。

Monitor下载地址:http://cactiusers.org/downloads/monitor.tar.gz

Monitor安装过程如下(一步复制文件,一步导入sql文件)

#cd /opt/soft

#wget http://cactiusers.org/downloads/monitor.tar.gz

#tar zxvf monitor.tar.gz

# mv monitor /var/www/cacti/plugins            #复制插件到plugins

# cd /var/www/cacti/plugins/monitor/

# mysql -u cacti -p cacti < monitor.sql          #导入monitor.sql数据

配置global.php

#vi /var/www/cacti/include/global.php

$plugins = array();后添加:

$plugins[] = 'monitor';

刷新Cacti控制面板,我们会在设置下面找到一个新的选项卡”Misc”,同时左上方会多出一个新的选项卡”Monitor”,如图3Monitor监控节点图像如图4

21089721_131815943318i8.png


3

21089721_1318159438QEzt.png


4