Cacti中文版在Centos5(Rhel5)上的安装

Jan 12th, 2008

转载本站文章请注明,转载自:扶凯[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的高级管理"

1
#yum -y install mysql mysql-server php-mysql httpd php

上面完成一个php,http,mysql的环境,接下来安装要用到的包

1
#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

安装完,启动相关的程式,和设置开机启动

1
2
3
#chkconfig mysqld on
#chkconfig httpd on
#server mysqld start

2.数据库设置

准备数据库,和设置权限,安装cacti。

1
2
3
4
5
#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

1
2
#cd /var/www/cacti
#mysql -u cacti -p cacti < cacti.sql

修改配置文件

1
2
3
4
5
6
7
#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用户

1
2
$useradd cacti -d /var/www/cacti -s /bin/false
$chown -R cacti /var/www/cacti/rra /var/www/cacti/log

这个上面可能添加不行试试:

1
#chown -hR cacti /var/www/cacti/rra /var/www/cacti/log

4. 配置httpd服务器的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
#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的服务,让上面的修改生效

1
#/etc/init.d/httpd restart


5.测试安装是否正常

打开下面的url.
http://server.ip.or.name/cacti
打开网站,点next.选择new install,使用一路回车法.最后完成
最后的用户名为: admin 密码为: admin

6.收尾

让系统每5分钟收集,需要

1
2
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

1
2
3
#tar zxvf ttf-arphic-ukai_0.1.20060928.orig.tar.gz
#cd ttf-arphic-ukai-0.1.20060928/
#cp ukai.ttf /usr/share/fonts/ukai.ttf

安装完成后注意在"设置"中更改下面两个必改项. 常规->RRDTool应用程序版本 改为1.2.x,默认为1.0.x.不改可能图像不能正常显示出来. 路径->RRDTool默认字体路径 改为上面安装的ukai.ttf的文件路径,如/usr/share/fonts/ukai.ttf

8,被监控主机snmp文件设置

被监控主机需要配置snmp.(谢谢网友园园的提醒)

 

1
#vi /etc/snmp/snmpd.conf

更改

1
com2sec notConfigUser default public

改为

1
com2sec notConfigUser 127.0.0.1 public

2、更改

1
access notConfigGroup "" any noauth exact systemview none none

改为

1
access notConfigGroup "" any noauth exact all none none

3、

1
#view all included .1 80

将前面的 # 注释 去掉。 保存退出

 

上面这几个地方很重要,注意了,不然得不到数据

 9.测试snmp是否正常

1
#snmpwalk -c public -v 2c localhost

1
2
3
#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.如果图出不来

1.检查你的主机是不是活的,一定要能测试通过,状态是活的才行,可以用命令来检查是否有输出
2.另外cacti默认选择的rrdtool的版本是RRDTool 1.1.x 的!—-点击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:”的话.那么表明是支持的。

1
2
3
4
5
#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 \
然后再

1
2
3
#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包来安装.

下载地址

net-snmp5.2.src.rpm

这个包中默认就加入了enable-mfd-rewrites.下载后,直接用上面方法中的rpmbuild -bb SPECS/net-snmp.spec编译后安装就行.

这个有时还得不到数据,要注意你的snmpd.conf是否配置对了.其中的如下,read选项要是全部.

1
access  notConfigGroup ""      any       noauth    exact  <strong>all</strong> none none

如果不想编译,可以下载在这下载redhat4的rpm直接安装就行了

http://ftp.freshrpms.net/pub/freshrpms/redhat/testing/EL4/net-snmp/

 

 

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪 ViVi 365Key 网摘 天极网摘 和讯网摘 博拉网 POCO 网摘 饭否 QQ 书签 Digbuzz 我挖网 Mister Wong
  1. 完全按上面所配,图形不能显示
    Mar 14th, 2008 at 14:57
    Reply | Quote | #1

    完全按上面所配,图形不能显示,
    运行/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 |’

  2. yuke
    Mar 20th, 2008 at 16:23
    Reply | Quote | #2

    我的按照这个包装好,也是报这个问题,晕死了,高手能解答下不?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 |’

  3. yuke
    Mar 20th, 2008 at 16:27
    Reply | Quote | #3

    知道原因了

    poller.php文件最顶 一行写入

    #!/usr/bin/php -q

    然后保存,退出,即可搞定!

  4. miladuo
    Mar 20th, 2008 at 17:26
    Reply | Quote | #4

    哥们,按你的文章配置,我最开始的一步都走不下去,帮忙分析一下,谢谢了。
    [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,但是还是不行啊。

  5. 扶凯
    Mar 20th, 2008 at 20:57
    Reply | Quote | #5

    非常不错能自己发现和解决

  6. 扶凯
    Mar 20th, 2008 at 20:58
    Reply | Quote | #6

    Could not retrieve mirrorlist http://apt.sw.be/redhat/el5/en/mirrors-rpmforge error was
    你先看看能不能连接这个网站,要不找个最新的rpmforge

  7. okhwyy
    Mar 31st, 2008 at 11:48
    Reply | Quote | #7

    需要配置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

  8. 游客
    Jun 16th, 2008 at 16:51
    Reply | Quote | #8

    没有apache的安装!!

  9. viva
    Jul 27th, 2008 at 12:09
    Reply | Quote | #9

    感谢搂主太强了,,在当今社会高效率完成任务,才是最好的!!

  10. youporn
    Aug 5th, 2008 at 06:17

    hi great site nice work thanks youporn cim =) site like redtube see u

  11. rinkey
    Oct 20th, 2008 at 14:58

    [root@localhost /]# server mysqld start
    bash: server: command not found
    大虾,这是怎么回事?

  12. admin
    May 27th, 2009 at 09:32

    你们直接运行php当然不行,要在运行的命令前加入php,也就是指定使用 php来运行程序
    #php /var/www/cacti/poller.php

  13. admin
    May 27th, 2009 at 09:33

    httpd就是apache,老兄

  14. storysky
    Oct 18th, 2009 at 15:53

    博主,我有个问题请教,我的cacti现在启动了,而且图片都很正常,
    可就是没有流量,我不知道会是什么原因导致的

  15. admin
    Oct 19th, 2009 at 08:59

    #snmpwalk -c public -v 2c Hostname 这个命令来测试是否能拿到远程的数据

  16. wgkgood
    Feb 3rd, 2010 at 08:05

    博主您好!我在RedHat企业5上面装的cacti,装完后只能监控本机,不能监控其他服务器
    在创建设备点的时候总是出现SNMP error 请您指教!谢谢您 我按照我的博客里面搭建的
    wgkgood.blog.51cto.com