[Linux 流量管理] Cacti中文版在Centos5(Rhel5)上的安装
转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]
本文链接: http://www.php-oa.com/2008/01/12/centos5-cacti.html
1.基本安装
cacti是运作在apache+php+mysql+net-snmp工具集+rrdtool这样的一个工作环境之下,所以我们先要做一个基本的工作的环境
记的安装前先安装rpm的扩展包,安装方法见我的另外一个文章"rpm的高级管理"
yum -y install mysql mysql-server php-mysql httpd php
上面完成一个php,http,mysql的环境,接下来安装要用到的包
yum -y install php-pdo lm_sensors net-snmp php-snmp net-snmp-utils perl-Net-Daemon perl-PlRPC perl-DBI rrdtool perl-rrdtool perl-DBD-MySQL
安装完,启动相关的程式,和设置开机启动
chkconfig mysqld on chkconfig httpd on server mysqld start
2.数据库设置
准备数据库,和设置权限,安装cacti.
#mysql -uroot -p
mysql>create database cacti default character set utf8;
mysql>GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES, CREATE TEMPORARY TABLES, DROP, REFERENCES ON cacti.* TO cacti@localhost IDENTIFIED BY 'passwd';
mysql>flush privileges;
mysql> \q
3.下载安装
下载中文的cacti,解压到/var/www/cacti.后进入cacti的目录.导入cacti的数据结构
下载地址: cacti-0.8.7e-cn-utf8.tar.gz
cd /var/www/cacti mysql -u cacti -p cacti < cacti.sql
修改配置文件
#vim /var/www/cacti/include/config.php $database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cacti"; $database_password = "passwd"; $database_port = "3306";
添加cacti用户
useradd cacti -d /var/www/cacti -s /bin/false chown -R cacti /var/www/cacti/rra /var/www/cacti/log
这个上面可能添加不行试试:
chown -hR cacti /var/www/cacti/rra /var/www/cacti/log
4. 配置httpd服务器的配置文件
#vim /etc/httpd/conf.d/cacti.conf Alias /cacti /var/www/cacti <Directory /var/www/cacti> DirectoryIndex index.php AllowOverride all order deny,allow deny from all allow from all AddType application/x-httpd-php .php php_flag magic_quotes_gpc on php_flag track_vars on </Directory>
重起httpd的服务,让上面的修改生效
/etc/init.d/httpd restart
5. 测试安装是否正常
打开下面的url.
http://server.ip.or.name/cacti
打开网站,点next.选择new install,使用一路回车法.最后完成
最后的用户名为: admin 密码为: admin
6. 收尾
让系统每5分钟收集,需要
crontab -e */5 * * * * cacti php /var/www/cacti/poller.php &>/dev/null
也可手工跑一次:/var/www/cacti/poller.php
7. 字体在图形中显示不正常的解决方法
下载并安装cjkuni-fonts中文字体,字体名ukai.ttf,
下载地址 http://ftp.tw.debian.org/debian/pool/main/t/ttf-arphic-ukai/ttf-arphic-ukai_0.1.20060928.orig.tar.gz
上面的地址不能使用了,我们如果使用的 RHEL 和 Centos 有更加容易的方法
yum install fonts-chinese
安装完成后注意在"设置"中更改下面两个必改项.
(1. 常规->RRDTool应用程序版本 改为1.2.x,默认为1.0.x.不改可能图像不能正常显示出来.
(2. 路径->RRDTool默认字体路径 改为上面安装的 ukai.ttf 的文件路径,如果是使用的 yum 安装的话,就是 /usr/share/fonts/chinese/TrueType/ukai.ttf
8. 被监控主机snmp文件设置
打开被监控的服务器,我们来做一些必需要修改的 snmp 配置.(谢谢网友园园的提醒)
vim /etc/snmp/snmpd.conf
默认如下
com2sec notConfigUser default public access notConfigGroup "" any noauth exact systemview none none
我们需要更改为下面的样子
com2sec notConfigUser 127.0.0.1 public access notConfigGroup "" any noauth exact all none none
并将g前面的 # 注释 去掉.
#view all included .1 80
保存退出,上面这几个地方很重要,注意了,不然得不到数据
9.测试snmp是否正常
snmpwalk -c public -v 2c localhost # or snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex
会显示输出如下:
IP-MIB::ipAdEntIfIndex.61.xxx.xxx.xxx = INTEGER: 2 IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1 IP-MIB::ipAdEntIfIndex.172.xxx.xxx.xxx = INTEGER: 3
也可以用snmpd -f -Le 命令查看当前有没有出什么错
FQA:
1. 如果磁盘监控不到
请使用Cacti 中自带的模板 ucd/net – Get Monitored Partitions ,然后在被监控的机器的snmpd.conf(/etc/snmp/snmpd.conf)中加入
disk / (比如我们监视根分区)
然后可以用
snmpwalk -v 1 -c public 192.168.0.52 dsktable
这个命令来检查
2. 如果图出不来.显示的是 X
这时,有二个可能,见如下,一个个来检查吧
(1. 检查你的主机是不是活的,一定要能测试通过,状态是活的才行,可以用命令来检查是否有输出
(2. 另外 cacti 默认选择的 rrdtool 的版本是 RRDTool 1.1.x 的!需要修改成 1.2 才能显示
点击 Console-> System Utilities -> Technical Support -> RRDTool Version 选择 RRDTool 1.2.x,不然有可能出不了图.
3.网卡流量达到100M以上图像有问题?
这与snmp的版本有关,snmp1的数据是32位而snmp2c以上是64位(AS4默认是不支持64位的).
(1.首先要确定你使用的是snmp2c或以上,是否支持64位MIB库.如下如果返回的有几行含有“Counter64:”的话.那么表明是支持的.
#snmpwalk -c public -v 2c localhost IF-MIB::ifHCInOctets
IF-MIB::ifHCInOctets.1 = Counter64: 3174458
IF-MIB::ifHCInOctets.2 = Counter64: 1585772167
IF-MIB::ifHCInOctets.3 = Counter64: 35696997927
IF-MIB::ifHCInOctets.4 = Counter64: 0
2.然后点击Cacti的页面:“Console ->; Create New Graphs ->;Data Query”.你在下面看到“Select a graph type:”的下拉菜单(默认是“In/Out bits”),要取64bits的数据所以将其改为“In/Out bits(64-bit Counters)”,然后选择你要监测的网卡即可.另外,该监测点的“Maximum Value”必须设置为100M以上.
3.设备管理中,选择的主机中的SNMP版本,一定要是2.
4.RedHat AS4的(net-snmp5.2以下不支持)snmp不支持64位计数器的解决方法(本方法由嘻嘻哈哈提供 http://www.haw-haw.org/node/654)
可以下载一个src.rpm再在/usr/src/redhat/SPECS/net-snmp.spec文件的configure下加上一句–enable-mfd-rewrites \
然后再
#cd /usr/src/redhat/
#rpmbuild -bb SPECS/net-snmp.spec
生成一堆的x86_64.rpm在/usr/src/redhat/RPMS/x86_64下,如果是32位的就在i386下.在安装就行了.
注 :64位计数器是在net-snmp 5.2上新加入的IF-MIB ,它可以转换更多的 MIB 对象 (e.g. ifXTable with 64-bit ifHC* counters). 所有象RHEL4,Centosd4上,如果使用默认的5.2的src包,就算加入了enable-mfd-rewrites其实也是不行的.所以要下载5.2的src包来安装.
下载地址
这个包中默认就加入了enable-mfd-rewrites.下载后,直接用上面方法中的rpmbuild -bb SPECS/net-snmp.spec编译后安装就行.
这个有时还得不到数据,要注意你的snmpd.conf是否配置对了.其中的如下,read选项要是全部.
access notConfigGroup "" any noauth exact all none none
如果不想编译,可以下载在这下载redhat4的rpm直接安装就行了
http://ftp.freshrpms.net/pub/freshrpms/redhat/testing/EL4/net-snmp/



















完全按上面所配,图形不能显示,
运行/var/www/cacti/poller.php,提示出错.
/var/www/cacti/poller.php: line 1: ?php: 没有那个文件或目录
/var/www/cacti/poller.php: line 2: /bin: is a directory
/var/www/cacti/poller.php: line 3: +—————————————————————– ——–+: command not found
/var/www/cacti/poller.php: line 4: syntax error near unexpected token `|’
/var/www/cacti/poller.php: line 4: ` | Copyright (C) 2004-2007 The Cacti Group |’
我的按照这个包装好,也是报这个问题,晕死了,高手能解答下不?root@www:/var/lib/cacti# /usr/share/cacti/site/poller.php ?
/usr/share/cacti/site/poller.php: line 1: ?php: No such file or directory
/usr/share/cacti/site/poller.php: line 2: /bin: is a directory
/usr/share/cacti/site/poller.php: line 3: +————————————————————————-+: command not found
/usr/share/cacti/site/poller.php: line 4: syntax error near unexpected token `|’
/usr/share/cacti/site/poller.php: line 4: ` | Copyright (C) 2004-2007 The Cacti Group |’
root@www:/var/lib/cacti# /usr/share/cacti/site/poller.php ?
/usr/share/cacti/site/poller.php: line 1: ?php: No such file or directory
/usr/share/cacti/site/poller.php: line 2: /bin: is a directory
/usr/share/cacti/site/poller.php: line 3: +————————————————————————-+: command not found
/usr/share/cacti/site/poller.php: line 4: syntax error near unexpected token `|’
/usr/share/cacti/site/poller.php: line 4: ` | Copyright (C) 2004-2007 The Cacti Group |’
知道原因了
poller.php文件最顶 一行写入
#!/usr/bin/php -q
然后保存,退出,即可搞定!
哥们,按你的文章配置,我最开始的一步都走不下去,帮忙分析一下,谢谢了。
[root@localhost ~]# yum -y install mysql mysql-server php-mysql httpd php
Loading “fastestmirror” plugin
Loading “installonlyn” plugin
Setting up Install Process
Setting up repositories
Could not retrieve mirrorlist http://apt.sw.be/redhat/el5/en/mirrors-rpmforge error was
[Errno 4] IOError:
Error: Cannot find a valid baseurl for repo: rpmforge
我按你的上一篇文章做了,安装了rpmforge-release-0.3.6-1.el5.rf.i386.rpm,但是还是不行啊。
非常不错能自己发现和解决
Could not retrieve mirrorlist http://apt.sw.be/redhat/el5/en/mirrors-rpmforge error was
你先看看能不能连接这个网站,要不找个最新的rpmforge
需要配置snmp
root@Bleach usr]# vi /etc/snmp/snmpd.conf
更改 1、com2sec notConfigUser default public
改为:com2sec notConfigUser 127.0.0.1 public
2、access notConfigGroup “” any noauth exact systemview none none
改为:access notConfigGroup “” any noauth exact all none none
3、#view all included .1 80
将前面的 # 注释 去掉。
保存退出 :wq
php /var/www/cacti/poller.php
没有apache的安装!!
感谢搂主太强了,,在当今社会高效率完成任务,才是最好的!!
hi great site nice work thanks youporn cim =) site like redtube see u
[root@localhost /]# server mysqld start
bash: server: command not found
大虾,这是怎么回事?
你们直接运行php当然不行,要在运行的命令前加入php,也就是指定使用 php来运行程序
#php /var/www/cacti/poller.php
httpd就是apache,老兄
博主,我有个问题请教,我的cacti现在启动了,而且图片都很正常,
可就是没有流量,我不知道会是什么原因导致的
#snmpwalk -c public -v 2c Hostname 这个命令来测试是否能拿到远程的数据
博主您好!我在RedHat企业5上面装的cacti,装完后只能监控本机,不能监控其他服务器
在创建设备点的时候总是出现SNMP error 请您指教!谢谢您 我按照我的博客里面搭建的
wgkgood.blog.51cto.com
安装完以后字体显示乱码,请指点下。
另外,下载的cacti无法./configure编译
步骤一样了,但是图片不显示…求解…
用snmpd -f -Le后,一直卡NET-SNMP version 5.3.2.2