02.07.2013 Views

Cacti 中文版安装配置

Cacti 中文版安装配置

Cacti 中文版安装配置

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Cacti</strong> <strong>中文版安装配置</strong><br />

本人系 LINUX 爱好者,关注开源、网络安全、自动化运维<br />

BLOG:linuxpad.blog.chinaunix.net E-Mail:linuxpad.cn@gmail.com<br />

QQ 交流群:161230409 欢迎加群交流 共同探讨 LINUX 技术<br />

编辑:LinuxPad 日期:2011/10/8<br />

<strong>Cacti</strong> 是一款优秀的开源监控软件,使用 php 实现,它的主要特点是使用 snmp 服务获取数据,然后用 rrdtool 存储和更<br />

新数据,当用户查看数据的时候,rrdtool 生成图表呈现给用户。mysql 数据库用于存储变量并进行调用。mysql 数据库并<br />

不存储 snmp 捕获到的数据,snmp 捕获到的数据,存在于 rrdtool 生成的 rrd 文件中,这些文件位于 cacti 目录下的 rra<br />

目录中。<br />

本文主要介绍 cacti 中文版的安装,配置,cacti 插件的安装,配置。英文版的安装跟中文版大同小异,但是中文版会麻<br />

烦点,所以就以中文版为例。<br />

系统:Centos5.6 x386<br />

软件:cacti-0.8.7e<br />

一、 准备软件的安装<br />

由于 cacti 使用 php 来实现,通过 WEB 来管理,使用 snmp 来捕获数据,使用 rrdtool 来生成图表,使用 mysql 来存储<br />

变量,因此需要先安装这些软件,直接使用 yum 进行安装即可,共需安装以下 rpm 包:<br />

httpd/mysql-server/php/php-mysql/rrdtool/gd/net-snmp/php-snmp/net-snmp-utils/net-snmp-devel/mysql<br />

-devel/openssl-devel<br />

各个 rpm 包的作用为:<br />

httpd WEB 服务器 apache<br />

mysql-server 数据库 mysql


php cacti 使用 php 来实现<br />

php-mysql php 支持 mysql<br />

rrdtool 用来生成 cacti 图像<br />

gd rrdtool 绘制图像需要的图形库<br />

php-snmp php 支持 snmp<br />

net-snmp-utils 一些 snmp 的扩展命令,如:snmpwalk、snmpget 等,cacti 需要<br />

net-snmp-devel/mysql-devel/openssl-devel cactid/spine 需要<br />

安装 rpm 包:<br />

#yum httpd mysql-server php php-mysql gd net-snmp php-snmp net-snmp-utils net-snmp-devel<br />

mysql-devel openssl-devel<br />

由于 centos 的标准组件中是不带 rrdtool 的,因此我们需要添加一个 dag 的 yum 源,以安装 rrdtool。<br />

修改/etc/yum.repos.d/CentOS-Base.repo,<br />

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

在其末尾追加<br />

[dag]<br />

name=Dag RPM Repository for Red Hat Enterprise Linux<br />

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

gpgcheck=1<br />

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

enabled=1<br />

更新 yum<br />

#yum clean all<br />

#yum list<br />

现在就可以安装 rrdtool<br />

#yum install rrdtool<br />

设置开机自启动<br />

#chkconfig httpd on<br />

#chkconfig mysqld on


#chkconfig snmpd on<br />

二、 MySQL 数据设置<br />

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

启动并初始化 mysql 数据库<br />

#service mysqld start<br />

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

#mysql –u root –p 回车后输入密码(空)<br />

mysql>use mysql;<br />

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

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

mysql>flush privileges;<br />

添加 cacti 库和 cacti 用户,并为其设置权限<br />

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

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

mysql>flush privileges;<br />

三、 安装 <strong>Cacti</strong><br />

下载 cacti-0.8.7e-cn-utf8.tar.gz,地址为 http://blogimg.chinaunix.net/blog/upfile2/090815172648.gz (这个链<br />

接是 tar.gz 格式的,请下载后更改文件格式),假设下载目录为/opt/soft,下面相同<br />

#cd /opt/soft<br />

#tar zxvf 090815172648.tar.gz<br />

#mv cacti-0.8.7e-cn-utf8 /var/www/cacti<br />

修改配置文件<br />

#vi /var/www/cacti/include/config.php<br />

修改内容如下<br />

$database_type = "mysql";<br />

$database_default = "cacti";


$database_hostname = "localhost";<br />

$database_username = "cacti";<br />

$database_password = "linuxpad";<br />

关于 cacti 添加用户,网上常见的做法是添加一个 cacti 的用户,并更改 rra 和 log 目录属主。经过本人测试这里并不需要<br />

添加 cacti 用户并更改 rra 和 log 的属主,直接使用 root 即可。原因是因为官方的安装文档上使用的是 FreeBSD,在计划<br />

任务那步使用的是:<br />

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

但是 centos 并不是识别这个 cacti 参数,因此也就无需使用 cacti 来执行任务,我们直接使用 root 来执行任务就 OK 了,<br />

于是不用更改目录权限,crontab 内容为<br />

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

还有另外一种的解决方案,就是添加一个 cacti 用户,更改 rra 和 log 目录属主为 cacti,然后在 cacti 用户环境下设置 crontab,<br />

内容为<br />

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

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

创建并编辑 apache 的 cacti 配置文件<br />

#vi /etc/httpd/conf.d/cacti.conf<br />

内容如下:<br />

Alias /cacti /var/www/cacti<br />

<br />

DirectoryIndex index.php<br />

AllowOverride all<br />

order deny,allow<br />

allow from all<br />

php_flag magic_quotes_gpc on<br />

php_flag track_vars on<br />

<br />

导入数据库<br />

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


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

#service mysqld start<br />

#service httpd start<br />

#service snmpd start<br />

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

请确认所有路径都已找到,并选择 SNMP 应用程序版本为 5.x,RRDTool 版本为 1.3.x。<br />

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

设置计划任务<br />

#crontab –e<br />

追加以下内容<br />

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

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

#yum install fonts-chinese<br />

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

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

配置无误,会显示文件已找到。<br />

四、 配置本机 snmp<br />

编辑 snmp 配置文件/etc/snmp/snmp.conf<br />

修改:<br />

com2sec notConfigUser default public<br />

改为:<br />

com2sec notConfigUser 127.0.0.1 public<br />

修改:<br />

access notConfigGroup "" any noauth exact systemview none none<br />

改为:<br />

access notConfigGroup "" any noauth exact all none none<br />

去掉这句的注释


#view all included .1 80<br />

重启 snmp 服务并测试<br />

#service snmpd restart<br />

# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex<br />

IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1<br />

IP-MIB::ipAdEntIfIndex.xxx.xxx.xxx.xxx = INTEGER: 2<br />

IP-MIB::ipAdEntIfIndex.xxx.xxx.xxx.xxx = INTEGER: 3<br />

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

图 1


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

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

五、 安装 Spine<br />

图 2<br />

由于默认 cmd.php 来轮询数据,速度会很慢,特别是在监控节点比较多的情况下,cmd.php 就更显不足了,因此我们采<br />

用 Spine 来轮询数据。cacti-spine 是一个由 C 语言开发的,用于替代 cmd.php 的快速获取速度的引擎。<br />

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

安装 spine 之前请确保它所依赖的包 net-snmp-devel、mysql-devel、openssl-devel 都已安装完毕。<br />

以下是安装步骤<br />

#cd /opt/soft<br />

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

#tar zxvf cacti-spine-0.8.7e.tar.gz<br />

#cd cacti-spine-0.8.7e<br />

#./configure<br />

#make && make install<br />

编辑 spine 配置文件<br />

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


修改内容如下:<br />

DB_Host localhost<br />

DB_Database cacti<br />

DB_User cacti<br />

DB_Pass linuxpad<br />

DB_Port 3306<br />

将 spine 启动并设置开机自启动<br />

#/usr/local/spine/bin/spine<br />

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

<strong>Cacti</strong> 设置:<br />

<strong>Cacti</strong> 控制面板->配置->设置<br />

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

轮询器:轮询器类型选择 Spine<br />

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

六、 <strong>Cacti</strong> 插件安装之 <strong>Cacti</strong>-plugin<br />

对于中文版,我们需要下载中文版的更新文件:http://blogimg.chinaunix.net/blog/upfile2/090818213852.gz,下<br />

载后需更名为 cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff.gz,更新前请备份 cacti 目录及 mysql 库,以便更新失败后的<br />

还原。<br />

<strong>Cacti</strong>-Plugin 安装过程如下:<br />

#cd /opt/soft<br />

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

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

# gunzip cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff.gz<br />

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

# patch -p1 -N


修改如下:<br />

$database_type = "mysql";<br />

$database_default = "cacti";<br />

$database_hostname = "localhost";<br />

$database_username = "cacti";<br />

$database_password = "linuxpad";<br />

$database_port = "3306";<br />

$config['url_path'] = '/cacti/';<br />

配置 <strong>Cacti</strong><br />

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

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

七、 <strong>Cacti</strong> 插件安装之 Monitor<br />

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

Monitor 是 <strong>Cacti</strong> 下面一个监控节点存活性的插件,可以监控各种网络设备,主机的存活性。<br />

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

Monitor 安装过程如下(一步复制文件,一步导入 sql 文件):<br />

#cd /opt/soft<br />

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

#tar zxvf monitor.tar.gz<br />

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

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


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

配置 global.php<br />

#vi /var/www/cacti/include/global.php<br />

在$plugins = array();后添加:<br />

$plugins[] = 'monitor';<br />

刷新 <strong>Cacti</strong> 控制面板,我们会在设置下面找到一个新的选项卡”Misc”,同时左上方会多出一个新的选项卡”Monitor”,如图<br />

3。Monitor 监控节点图像如图 4。<br />

图 3<br />

图 4


其他插件的安装基本类似,可参考 Monitor 来安装。<br />

我会在稍后的几篇文章内讲述 <strong>Cacti</strong> 的高级应用及 <strong>Cacti</strong> 与 Nagios 的整合。

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!