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 的整合。